@mysten-incubation/dev-wallet 0.0.1 → 0.2.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 +25 -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 +12 -0
  15. package/dist/adapters/devstack-paths.d.mts.map +1 -0
  16. package/dist/adapters/devstack-paths.mjs +12 -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 +16 -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
@@ -5,7 +5,7 @@ import { css, html, LitElement } from 'lit';
5
5
  import { customElement, property, state } from 'lit/decorators.js';
6
6
 
7
7
  import { dropdownItemStyles, sharedStyles } from './styles.js';
8
- import { NETWORK_COLORS } from './utils.js';
8
+ import { isForkNetwork, NETWORK_COLORS } from './utils.js';
9
9
  import './dev-wallet-dropdown.js';
10
10
 
11
11
  @customElement('dev-wallet-network-badge')
@@ -21,19 +21,50 @@ export class DevWalletNetworkBadge extends LitElement {
21
21
  .badge {
22
22
  display: flex;
23
23
  align-items: center;
24
- gap: 4px;
25
- padding: 3px 8px;
24
+ gap: 6px;
25
+ height: 26px;
26
+ padding: 0 8px;
26
27
  border-radius: 999px;
27
- font-size: 11px;
28
+ border: 1px solid var(--dev-wallet-border);
29
+ font-family: var(--dev-wallet-font-mono);
30
+ font-size: 10.5px;
28
31
  font-weight: var(--dev-wallet-font-weight-medium);
29
- color: var(--dev-wallet-foreground);
30
- background: var(--dev-wallet-secondary);
32
+ color: var(--dev-wallet-text-2);
33
+ background: var(--dev-wallet-bg-3);
31
34
  cursor: pointer;
32
- transition: background 0.15s;
35
+ transition:
36
+ background 120ms,
37
+ border-color 120ms,
38
+ color 120ms;
39
+ }
40
+
41
+ /* Phase 4 P4.17 — amber stripe + fork label when the
42
+ active network is a *-fork variant. The stripe is
43
+ diagonal-hatched so it survives dark + light themes
44
+ without depending on a separate badge background. */
45
+ .badge.fork {
46
+ background-image: repeating-linear-gradient(
47
+ 45deg,
48
+ rgba(234, 179, 8, 0.18),
49
+ rgba(234, 179, 8, 0.18) 4px,
50
+ transparent 4px,
51
+ transparent 8px
52
+ );
53
+ }
54
+
55
+ .fork-tag {
56
+ color: #92400e;
57
+ font-weight: var(--dev-wallet-font-weight-bold);
58
+ font-size: 10px;
59
+ margin-left: 4px;
60
+ text-transform: uppercase;
61
+ letter-spacing: 0.5px;
33
62
  }
34
63
 
35
64
  .badge:hover {
36
- background: var(--dev-wallet-border);
65
+ background: var(--dev-wallet-bg-4);
66
+ border-color: var(--dev-wallet-border-strong);
67
+ color: var(--dev-wallet-foreground);
37
68
  }
38
69
 
39
70
  .dot {
@@ -65,19 +96,27 @@ export class DevWalletNetworkBadge extends LitElement {
65
96
 
66
97
  override render() {
67
98
  const color = NETWORK_COLORS[this.active] ?? NETWORK_COLORS['localnet'];
99
+ const fork = isForkNetwork(this.active);
100
+ // Phase 4 P4.17 — when `meta.runtime: 'forked'` flows through
101
+ // (codegen emits the network literal as e.g. `'mainnet-fork'`),
102
+ // the badge surfaces an amber-hatched stripe + a `(fork)`
103
+ // label so the user can't mistake the wallet panel for one
104
+ // pointed at real upstream funds.
105
+ const baseLabel = fork ? this.active.replace(/-fork$/, '') : this.active;
68
106
 
69
107
  return html`
70
108
  <dev-wallet-dropdown .open=${this._open} @close=${() => (this._open = false)}>
71
109
  <button
72
110
  slot="trigger"
73
- class="badge"
111
+ class=${fork ? 'badge fork' : 'badge'}
74
112
  part="trigger"
75
113
  aria-expanded=${this._open}
76
114
  aria-haspopup="listbox"
115
+ title=${fork ? `sui-fork stack — no real ${baseLabel} funds at risk` : ''}
77
116
  @click=${() => (this._open = !this._open)}
78
117
  >
79
118
  <span class="dot" style="background: ${color}"></span>
80
- ${this.active}
119
+ ${baseLabel} ${fork ? html`<span class="fork-tag">fork</span>` : ''}
81
120
  <svg
82
121
  class="chevron"
83
122
  viewBox="0 0 24 24"
@@ -5,7 +5,19 @@ import { css, html, LitElement, nothing } from 'lit';
5
5
  import { customElement, property, state } from 'lit/decorators.js';
6
6
 
7
7
  import type { SignerAdapter } from '../types.js';
8
- import { actionButtonStyles, sharedStyles, stateStyles } from './styles.js';
8
+ import {
9
+ actionButtonStyles,
10
+ badgeStyles,
11
+ cardItemStyles,
12
+ dialogStyles,
13
+ formInputStyles,
14
+ inlineErrorStyles,
15
+ listContainerStyles,
16
+ monoTruncateStyles,
17
+ sharedStyles,
18
+ subLabelStyles,
19
+ stateStyles,
20
+ } from './styles.js';
9
21
  import {
10
22
  emitEvent,
11
23
  formatAddress,
@@ -29,38 +41,19 @@ export class DevWalletNewAccount extends LitElement {
29
41
  sharedStyles,
30
42
  actionButtonStyles,
31
43
  stateStyles,
44
+ dialogStyles,
45
+ cardItemStyles,
46
+ listContainerStyles,
47
+ formInputStyles,
48
+ monoTruncateStyles,
49
+ badgeStyles,
50
+ inlineErrorStyles,
51
+ subLabelStyles,
32
52
  css`
33
- :host {
34
- display: block;
35
- }
36
-
37
- dialog:not([open]) {
38
- display: none;
39
- }
40
-
41
53
  dialog {
42
54
  width: 320px;
43
- max-width: calc(100vw - 32px);
44
55
  max-height: min(420px, 80vh);
45
- border-radius: var(--dev-wallet-radius-xl);
46
- background: var(--dev-wallet-background);
47
- border: 1px solid var(--dev-wallet-border);
48
- box-shadow: var(--dev-wallet-shadow-lg);
49
56
  padding: 20px;
50
- display: flex;
51
- flex-direction: column;
52
- color: inherit;
53
- }
54
-
55
- dialog::backdrop {
56
- background: color-mix(in oklab, oklch(0 0 0) 50%, transparent);
57
- }
58
-
59
- .dialog-title {
60
- font-size: 16px;
61
- font-weight: var(--dev-wallet-font-weight-semibold);
62
- color: var(--dev-wallet-foreground);
63
- margin-bottom: 16px;
64
57
  }
65
58
 
66
59
  .tabs {
@@ -97,29 +90,15 @@ export class DevWalletNewAccount extends LitElement {
97
90
  margin-bottom: 12px;
98
91
  }
99
92
 
100
- .field-label {
101
- display: block;
102
- font-size: 12px;
103
- font-weight: var(--dev-wallet-font-weight-medium);
104
- color: var(--dev-wallet-muted-foreground);
105
- margin-bottom: 4px;
106
- }
107
-
108
93
  .field-input {
109
- width: 100%;
110
94
  padding: 8px 10px;
111
95
  border-radius: var(--dev-wallet-radius-sm);
112
96
  border: 1px solid var(--dev-wallet-input);
113
97
  background: var(--dev-wallet-secondary);
114
- color: var(--dev-wallet-foreground);
115
98
  font-size: 14px;
116
- font-family: inherit;
117
- outline: none;
118
- box-sizing: border-box;
119
99
  }
120
100
 
121
101
  .field-input:focus {
122
- border-color: var(--dev-wallet-primary);
123
102
  outline: 2px solid color-mix(in oklab, var(--dev-wallet-ring) 50%, transparent);
124
103
  outline-offset: -1px;
125
104
  }
@@ -177,22 +156,14 @@ export class DevWalletNewAccount extends LitElement {
177
156
  }
178
157
 
179
158
  .import-list {
180
- display: flex;
181
- flex-direction: column;
182
- gap: 4px;
183
159
  overflow-y: auto;
184
160
  max-height: 240px;
185
161
  min-height: 60px;
186
162
  }
187
163
 
188
164
  .import-item {
189
- display: flex;
190
- align-items: center;
191
165
  gap: 10px;
192
166
  padding: 8px 10px;
193
- border-radius: var(--dev-wallet-radius-sm);
194
- border: 1px solid var(--dev-wallet-border);
195
- background: var(--dev-wallet-secondary);
196
167
  width: 100%;
197
168
  text-align: left;
198
169
  transition: border-color 0.15s;
@@ -203,7 +174,6 @@ export class DevWalletNewAccount extends LitElement {
203
174
  }
204
175
 
205
176
  .import-item.selected {
206
- border-color: var(--dev-wallet-primary);
207
177
  background: color-mix(in oklab, var(--dev-wallet-primary) 10%, var(--dev-wallet-secondary));
208
178
  }
209
179
 
@@ -244,24 +214,15 @@ export class DevWalletNewAccount extends LitElement {
244
214
 
245
215
  .import-item-address {
246
216
  font-size: 11px;
247
- color: var(--dev-wallet-muted-foreground);
248
- font-family: var(--dev-wallet-font-mono);
249
- overflow: hidden;
250
- text-overflow: ellipsis;
251
- white-space: nowrap;
252
217
  }
253
218
 
254
219
  .import-item-badge {
255
- font-size: 10px;
256
220
  padding: 1px 6px;
257
221
  border-radius: var(--dev-wallet-radius-xs);
258
222
  background: var(--dev-wallet-background);
259
223
  border: 1px solid var(--dev-wallet-border);
260
224
  color: var(--dev-wallet-muted-foreground);
261
- font-weight: var(--dev-wallet-font-weight-medium);
262
- text-transform: uppercase;
263
225
  letter-spacing: 0.3px;
264
- white-space: nowrap;
265
226
  flex-shrink: 0;
266
227
  }
267
228
 
@@ -275,8 +236,6 @@ export class DevWalletNewAccount extends LitElement {
275
236
  }
276
237
 
277
238
  .error {
278
- color: var(--dev-wallet-destructive);
279
- font-size: 12px;
280
239
  margin-top: 8px;
281
240
  }
282
241
  `,
@@ -31,29 +31,54 @@ export class DevWalletObjects extends LitElement {
31
31
  }
32
32
 
33
33
  .object-list {
34
- display: flex;
35
- flex-direction: column;
36
- gap: 4px;
34
+ display: grid;
35
+ grid-template-columns: repeat(2, minmax(0, 1fr));
36
+ gap: 8px;
37
37
  }
38
38
 
39
39
  .object-item {
40
40
  display: flex;
41
41
  gap: 10px;
42
- padding: 10px 12px;
43
- border-radius: var(--dev-wallet-radius-sm);
42
+ padding: 10px;
43
+ border-radius: var(--dev-wallet-radius-lg);
44
44
  border: 1px solid var(--dev-wallet-border);
45
- background: var(--dev-wallet-secondary);
45
+ background: var(--dev-wallet-surface);
46
46
  align-items: flex-start;
47
+ min-width: 0;
48
+ transition:
49
+ background 120ms,
50
+ border-color 120ms;
51
+ }
52
+
53
+ .object-item:hover {
54
+ background: var(--dev-wallet-bg-hover);
55
+ border-color: var(--dev-wallet-border-strong);
47
56
  }
48
57
 
49
58
  .object-thumb {
50
- width: 40px;
51
- height: 40px;
59
+ width: 28px;
60
+ height: 28px;
52
61
  border-radius: var(--dev-wallet-radius-xs);
53
62
  object-fit: cover;
54
63
  flex-shrink: 0;
55
64
  }
56
65
 
66
+ .object-fallback {
67
+ width: 28px;
68
+ height: 28px;
69
+ border-radius: var(--dev-wallet-radius-xs);
70
+ display: inline-flex;
71
+ align-items: center;
72
+ justify-content: center;
73
+ flex-shrink: 0;
74
+ background: linear-gradient(135deg, var(--dev-wallet-bg-4), var(--dev-wallet-bg-2));
75
+ border: 1px solid var(--dev-wallet-border);
76
+ color: var(--dev-wallet-primary);
77
+ font-family: var(--dev-wallet-font-mono);
78
+ font-size: 11px;
79
+ font-weight: var(--dev-wallet-font-weight-semibold);
80
+ }
81
+
57
82
  .object-body {
58
83
  display: flex;
59
84
  flex-direction: column;
@@ -69,9 +94,10 @@ export class DevWalletObjects extends LitElement {
69
94
  }
70
95
 
71
96
  .object-type {
72
- font-size: 13px;
97
+ font-size: 11px;
73
98
  font-weight: var(--dev-wallet-font-weight-medium);
74
99
  color: var(--dev-wallet-foreground);
100
+ font-family: var(--dev-wallet-font-mono);
75
101
  white-space: nowrap;
76
102
  overflow: hidden;
77
103
  text-overflow: ellipsis;
@@ -79,8 +105,10 @@ export class DevWalletObjects extends LitElement {
79
105
 
80
106
  .object-type-badge {
81
107
  font-size: 10px;
82
- color: var(--dev-wallet-muted-foreground);
83
- opacity: 0.8;
108
+ color: var(--dev-wallet-text-3);
109
+ overflow: hidden;
110
+ text-overflow: ellipsis;
111
+ white-space: nowrap;
84
112
  }
85
113
 
86
114
  .object-description {
@@ -92,15 +120,21 @@ export class DevWalletObjects extends LitElement {
92
120
  }
93
121
 
94
122
  .object-version {
95
- font-size: 11px;
96
- color: var(--dev-wallet-muted-foreground);
123
+ height: 16px;
124
+ padding: 0 5px;
125
+ border-radius: 999px;
126
+ border: 1px solid var(--dev-wallet-border);
127
+ background: var(--dev-wallet-bg-3);
128
+ font-family: var(--dev-wallet-font-mono);
129
+ font-size: 9px;
130
+ color: var(--dev-wallet-text-3);
97
131
  flex-shrink: 0;
98
132
  }
99
133
 
100
134
  .object-id {
101
135
  font-size: 11px;
102
136
  font-family: var(--dev-wallet-font-mono);
103
- color: var(--dev-wallet-muted-foreground);
137
+ color: var(--dev-wallet-text-3);
104
138
  cursor: pointer;
105
139
  border-radius: var(--dev-wallet-radius-2xs);
106
140
  padding: 1px 2px;
@@ -119,13 +153,13 @@ export class DevWalletObjects extends LitElement {
119
153
  .load-more {
120
154
  margin-top: 8px;
121
155
  width: 100%;
122
- padding: 8px;
123
- border-radius: var(--dev-wallet-radius-sm);
156
+ height: 30px;
157
+ border-radius: var(--dev-wallet-radius);
124
158
  font-size: 12px;
125
159
  font-weight: var(--dev-wallet-font-weight-medium);
126
160
  color: var(--dev-wallet-primary);
127
161
  background: transparent;
128
- border: 1px solid var(--dev-wallet-border);
162
+ border: 1px solid var(--dev-wallet-border-2);
129
163
  transition: background 0.15s;
130
164
  }
131
165
 
@@ -137,6 +171,12 @@ export class DevWalletObjects extends LitElement {
137
171
  opacity: 0.5;
138
172
  cursor: default;
139
173
  }
174
+
175
+ @media (max-width: 380px) {
176
+ .object-list {
177
+ grid-template-columns: 1fr;
178
+ }
179
+ }
140
180
  `,
141
181
  ];
142
182
 
@@ -184,7 +224,7 @@ export class DevWalletObjects extends LitElement {
184
224
  }
185
225
 
186
226
  return html`
187
- <h3 class="section-header">Objects</h3>
227
+ <h3 class="section-header">Owned Objects</h3>
188
228
  ${this._loading
189
229
  ? html`<div class="loading" part="loading" aria-live="polite">Loading...</div>`
190
230
  : this._error
@@ -206,7 +246,7 @@ export class DevWalletObjects extends LitElement {
206
246
  @error=${(e: Event) =>
207
247
  ((e.target as HTMLImageElement).style.display = 'none')}
208
248
  />`
209
- : nothing}
249
+ : html`<span class="object-fallback">O</span>`}
210
250
  <div class="object-body">
211
251
  <div class="object-top">
212
252
  <span class="object-type"> ${obj.displayName ?? obj.typeName} </span>