@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
@@ -1,15 +1,36 @@
1
1
  import { sharedStyles } from "./styles.mjs";
2
2
  import { emitEvent } 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 { LitElement, css, html, nothing } from "lit";
5
5
  import { customElement, property } from "lit/decorators.js";
6
-
7
6
  //#region src/ui/dev-wallet-dropdown.ts
8
- let DevWalletDropdown = class DevWalletDropdown$1 extends LitElement {
7
+ let DevWalletDropdown = class DevWalletDropdown extends LitElement {
9
8
  constructor(..._args) {
10
9
  super(..._args);
11
10
  this.open = false;
12
11
  this.fullWidth = false;
12
+ this.#handleDocClick = (e) => {
13
+ if (this.open && !e.composedPath().includes(this)) this.close();
14
+ };
15
+ this.#handleKeydown = (e) => {
16
+ if (!this.open) return;
17
+ if (e.key === "Escape") {
18
+ e.preventDefault();
19
+ this.close();
20
+ this.querySelector("[slot=\"trigger\"]")?.focus();
21
+ return;
22
+ }
23
+ if (e.key === "ArrowDown" || e.key === "ArrowUp") {
24
+ e.preventDefault();
25
+ const items = Array.from(this.querySelectorAll("[slot=\"popover\"] button, [slot=\"popover\"] [role=\"option\"]"));
26
+ if (items.length === 0) return;
27
+ const focused = items.find((el) => el === document.activeElement);
28
+ let index = focused ? items.indexOf(focused) : -1;
29
+ if (e.key === "ArrowDown") index = index < items.length - 1 ? index + 1 : 0;
30
+ else index = index > 0 ? index - 1 : items.length - 1;
31
+ items[index]?.focus();
32
+ }
33
+ };
13
34
  }
14
35
  static {
15
36
  this.styles = [sharedStyles, css`
@@ -26,16 +47,18 @@ let DevWalletDropdown = class DevWalletDropdown$1 extends LitElement {
26
47
  position: absolute;
27
48
  top: 100%;
28
49
  left: 0;
29
- margin-top: 4px;
50
+ margin-top: 6px;
30
51
  min-width: 100%;
31
- background: var(--dev-wallet-background);
32
- border: 1px solid var(--dev-wallet-border);
33
- border-radius: var(--dev-wallet-radius-md);
34
- box-shadow: var(--dev-wallet-shadow-md);
52
+ background: var(--dev-wallet-bg-2);
53
+ border: 1px solid var(--dev-wallet-border-2);
54
+ border-radius: var(--dev-wallet-radius-lg);
55
+ box-shadow: var(--dev-wallet-shadow-lg);
35
56
  z-index: 10;
36
57
  overflow: hidden;
37
58
  max-height: var(--dropdown-max-height, none);
38
59
  overflow-y: auto;
60
+ padding: 4px;
61
+ animation: popin 120ms ease-out;
39
62
  }
40
63
 
41
64
  :host([full-width]) .popover {
@@ -55,40 +78,12 @@ let DevWalletDropdown = class DevWalletDropdown$1 extends LitElement {
55
78
  emitEvent(this, "close");
56
79
  }
57
80
  }
58
- #handleDocClick = (e) => {
59
- if (this.open && !e.composedPath().includes(this)) {
60
- this.close();
61
- }
62
- };
63
- #handleKeydown = (e) => {
64
- if (!this.open) return;
65
- if (e.key === "Escape") {
66
- e.preventDefault();
67
- this.close();
68
- const trigger = this.querySelector("[slot=\"trigger\"]");
69
- trigger?.focus();
70
- return;
71
- }
72
- if (e.key === "ArrowDown" || e.key === "ArrowUp") {
73
- e.preventDefault();
74
- const items = Array.from(this.querySelectorAll("[slot=\"popover\"] button, [slot=\"popover\"] [role=\"option\"]"));
75
- if (items.length === 0) return;
76
- const focused = items.find((el) => el === document.activeElement);
77
- let index = focused ? items.indexOf(focused) : -1;
78
- if (e.key === "ArrowDown") {
79
- index = index < items.length - 1 ? index + 1 : 0;
80
- } else {
81
- index = index > 0 ? index - 1 : items.length - 1;
82
- }
83
- items[index]?.focus();
84
- }
85
- };
81
+ #handleDocClick;
82
+ #handleKeydown;
86
83
  connectedCallback() {
87
84
  super.connectedCallback();
88
85
  this.addEventListener("keydown", this.#handleKeydown);
89
- if (this.open) {
90
- document.addEventListener("click", this.#handleDocClick, true);
91
- }
86
+ if (this.open) document.addEventListener("click", this.#handleDocClick, true);
92
87
  }
93
88
  disconnectedCallback() {
94
89
  super.disconnectedCallback();
@@ -96,13 +91,8 @@ let DevWalletDropdown = class DevWalletDropdown$1 extends LitElement {
96
91
  this.removeEventListener("keydown", this.#handleKeydown);
97
92
  }
98
93
  willUpdate(changed) {
99
- if (changed.has("open")) {
100
- if (this.open) {
101
- document.addEventListener("click", this.#handleDocClick, true);
102
- } else {
103
- document.removeEventListener("click", this.#handleDocClick, true);
104
- }
105
- }
94
+ if (changed.has("open")) if (this.open) document.addEventListener("click", this.#handleDocClick, true);
95
+ else document.removeEventListener("click", this.#handleDocClick, true);
106
96
  }
107
97
  };
108
98
  __decorate([property({
@@ -115,7 +105,7 @@ __decorate([property({
115
105
  attribute: "full-width"
116
106
  })], DevWalletDropdown.prototype, "fullWidth", void 0);
117
107
  DevWalletDropdown = __decorate([customElement("dev-wallet-dropdown")], DevWalletDropdown);
118
-
119
108
  //#endregion
120
109
  export { DevWalletDropdown };
110
+
121
111
  //# sourceMappingURL=dev-wallet-dropdown.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev-wallet-dropdown.mjs","names":["DevWalletDropdown","#handleKeydown","#handleDocClick"],"sources":["../../src/ui/dev-wallet-dropdown.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { css, html, LitElement, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { sharedStyles } from './styles.js';\nimport { emitEvent } from './utils.js';\n\n/**\n * @slot trigger - The element that opens the dropdown (parent handles click to toggle)\n * @slot popover - The dropdown content\n */\n@customElement('dev-wallet-dropdown')\nexport class DevWalletDropdown extends LitElement {\n\tstatic override styles = [\n\t\tsharedStyles,\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tposition: relative;\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\n\t\t\t:host([full-width]) {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t.popover {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 100%;\n\t\t\t\tleft: 0;\n\t\t\t\tmargin-top: 4px;\n\t\t\t\tmin-width: 100%;\n\t\t\t\tbackground: var(--dev-wallet-background);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t\tborder-radius: var(--dev-wallet-radius-md);\n\t\t\t\tbox-shadow: var(--dev-wallet-shadow-md);\n\t\t\t\tz-index: 10;\n\t\t\t\toverflow: hidden;\n\t\t\t\tmax-height: var(--dropdown-max-height, none);\n\t\t\t\toverflow-y: auto;\n\t\t\t}\n\n\t\t\t:host([full-width]) .popover {\n\t\t\t\tright: 0;\n\t\t\t}\n\t\t`,\n\t];\n\n\t@property({ type: Boolean, reflect: true })\n\topen = false;\n\n\t@property({ type: Boolean, reflect: true, attribute: 'full-width' })\n\tfullWidth = false;\n\n\toverride render() {\n\t\treturn html`\n\t\t\t<slot name=\"trigger\"></slot>\n\t\t\t${this.open ? html`<div class=\"popover\"><slot name=\"popover\"></slot></div>` : nothing}\n\t\t`;\n\t}\n\n\tclose() {\n\t\tif (this.open) {\n\t\t\tthis.open = false;\n\t\t\temitEvent(this, 'close');\n\t\t}\n\t}\n\n\t#handleDocClick = (e: Event) => {\n\t\tif (this.open && !e.composedPath().includes(this)) {\n\t\t\tthis.close();\n\t\t}\n\t};\n\n\t#handleKeydown = (e: KeyboardEvent) => {\n\t\tif (!this.open) return;\n\n\t\tif (e.key === 'Escape') {\n\t\t\te.preventDefault();\n\t\t\tthis.close();\n\t\t\tconst trigger = this.querySelector('[slot=\"trigger\"]') as HTMLElement | null;\n\t\t\ttrigger?.focus();\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n\t\t\te.preventDefault();\n\t\t\tconst items = Array.from(\n\t\t\t\tthis.querySelectorAll<HTMLElement>(\n\t\t\t\t\t'[slot=\"popover\"] button, [slot=\"popover\"] [role=\"option\"]',\n\t\t\t\t),\n\t\t\t);\n\t\t\tif (items.length === 0) return;\n\n\t\t\tconst focused = items.find((el) => el === document.activeElement);\n\t\t\tlet index = focused ? items.indexOf(focused) : -1;\n\n\t\t\tif (e.key === 'ArrowDown') {\n\t\t\t\tindex = index < items.length - 1 ? index + 1 : 0;\n\t\t\t} else {\n\t\t\t\tindex = index > 0 ? index - 1 : items.length - 1;\n\t\t\t}\n\n\t\t\titems[index]?.focus();\n\t\t}\n\t};\n\n\toverride connectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.addEventListener('keydown', this.#handleKeydown);\n\t\tif (this.open) {\n\t\t\tdocument.addEventListener('click', this.#handleDocClick, true);\n\t\t}\n\t}\n\n\toverride disconnectedCallback() {\n\t\tsuper.disconnectedCallback();\n\t\tdocument.removeEventListener('click', this.#handleDocClick, true);\n\t\tthis.removeEventListener('keydown', this.#handleKeydown);\n\t}\n\n\toverride willUpdate(changed: Map<string, unknown>) {\n\t\tif (changed.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\tdocument.addEventListener('click', this.#handleDocClick, true);\n\t\t\t} else {\n\t\t\t\tdocument.removeEventListener('click', this.#handleDocClick, true);\n\t\t\t}\n\t\t}\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'dev-wallet-dropdown': DevWalletDropdown;\n\t}\n}\n"],"mappings":";;;;;;;AAcO,8BAAMA,4BAA0B,WAAW;;;cAoC1C;mBAGK;;;gBAtCa,CACxB,cACA,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8BH;;CAQD,AAAS,SAAS;AACjB,SAAO,IAAI;;KAER,KAAK,OAAO,IAAI,4DAA4D,QAAQ;;;CAIxF,QAAQ;AACP,MAAI,KAAK,MAAM;AACd,QAAK,OAAO;AACZ,aAAU,MAAM,QAAQ;;;CAI1B,mBAAmB,MAAa;AAC/B,MAAI,KAAK,QAAQ,CAAC,EAAE,cAAc,CAAC,SAAS,KAAK,EAAE;AAClD,QAAK,OAAO;;;CAId,kBAAkB,MAAqB;AACtC,MAAI,CAAC,KAAK,KAAM;AAEhB,MAAI,EAAE,QAAQ,UAAU;AACvB,KAAE,gBAAgB;AAClB,QAAK,OAAO;GACZ,MAAM,UAAU,KAAK,cAAc,qBAAmB;AACtD,YAAS,OAAO;AAChB;;AAGD,MAAI,EAAE,QAAQ,eAAe,EAAE,QAAQ,WAAW;AACjD,KAAE,gBAAgB;GAClB,MAAM,QAAQ,MAAM,KACnB,KAAK,iBACJ,kEACA,CACD;AACD,OAAI,MAAM,WAAW,EAAG;GAExB,MAAM,UAAU,MAAM,MAAM,OAAO,OAAO,SAAS,cAAc;GACjE,IAAI,QAAQ,UAAU,MAAM,QAAQ,QAAQ,GAAG,CAAC;AAEhD,OAAI,EAAE,QAAQ,aAAa;AAC1B,YAAQ,QAAQ,MAAM,SAAS,IAAI,QAAQ,IAAI;UACzC;AACN,YAAQ,QAAQ,IAAI,QAAQ,IAAI,MAAM,SAAS;;AAGhD,SAAM,QAAQ,OAAO;;;CAIvB,AAAS,oBAAoB;AAC5B,QAAM,mBAAmB;AACzB,OAAK,iBAAiB,WAAW,MAAKC,cAAe;AACrD,MAAI,KAAK,MAAM;AACd,YAAS,iBAAiB,SAAS,MAAKC,gBAAiB,KAAK;;;CAIhE,AAAS,uBAAuB;AAC/B,QAAM,sBAAsB;AAC5B,WAAS,oBAAoB,SAAS,MAAKA,gBAAiB,KAAK;AACjE,OAAK,oBAAoB,WAAW,MAAKD,cAAe;;CAGzD,AAAS,WAAW,SAA+B;AAClD,MAAI,QAAQ,IAAI,OAAO,EAAE;AACxB,OAAI,KAAK,MAAM;AACd,aAAS,iBAAiB,SAAS,MAAKC,gBAAiB,KAAK;UACxD;AACN,aAAS,oBAAoB,SAAS,MAAKA,gBAAiB,KAAK;;;;;YA9EnE,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC;YAG1C,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;CAAc,CAAC;gCAvCpE,cAAc,sBAAsB"}
1
+ {"version":3,"file":"dev-wallet-dropdown.mjs","names":["#handleKeydown","#handleDocClick"],"sources":["../../src/ui/dev-wallet-dropdown.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { css, html, LitElement, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { sharedStyles } from './styles.js';\nimport { emitEvent } from './utils.js';\n\n/**\n * @slot trigger - The element that opens the dropdown (parent handles click to toggle)\n * @slot popover - The dropdown content\n */\n@customElement('dev-wallet-dropdown')\nexport class DevWalletDropdown extends LitElement {\n\tstatic override styles = [\n\t\tsharedStyles,\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tposition: relative;\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\n\t\t\t:host([full-width]) {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t.popover {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 100%;\n\t\t\t\tleft: 0;\n\t\t\t\tmargin-top: 6px;\n\t\t\t\tmin-width: 100%;\n\t\t\t\tbackground: var(--dev-wallet-bg-2);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border-2);\n\t\t\t\tborder-radius: var(--dev-wallet-radius-lg);\n\t\t\t\tbox-shadow: var(--dev-wallet-shadow-lg);\n\t\t\t\tz-index: 10;\n\t\t\t\toverflow: hidden;\n\t\t\t\tmax-height: var(--dropdown-max-height, none);\n\t\t\t\toverflow-y: auto;\n\t\t\t\tpadding: 4px;\n\t\t\t\tanimation: popin 120ms ease-out;\n\t\t\t}\n\n\t\t\t:host([full-width]) .popover {\n\t\t\t\tright: 0;\n\t\t\t}\n\t\t`,\n\t];\n\n\t@property({ type: Boolean, reflect: true })\n\topen = false;\n\n\t@property({ type: Boolean, reflect: true, attribute: 'full-width' })\n\tfullWidth = false;\n\n\toverride render() {\n\t\treturn html`\n\t\t\t<slot name=\"trigger\"></slot>\n\t\t\t${this.open ? html`<div class=\"popover\"><slot name=\"popover\"></slot></div>` : nothing}\n\t\t`;\n\t}\n\n\tclose() {\n\t\tif (this.open) {\n\t\t\tthis.open = false;\n\t\t\temitEvent(this, 'close');\n\t\t}\n\t}\n\n\t#handleDocClick = (e: Event) => {\n\t\tif (this.open && !e.composedPath().includes(this)) {\n\t\t\tthis.close();\n\t\t}\n\t};\n\n\t#handleKeydown = (e: KeyboardEvent) => {\n\t\tif (!this.open) return;\n\n\t\tif (e.key === 'Escape') {\n\t\t\te.preventDefault();\n\t\t\tthis.close();\n\t\t\tconst trigger = this.querySelector('[slot=\"trigger\"]') as HTMLElement | null;\n\t\t\ttrigger?.focus();\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n\t\t\te.preventDefault();\n\t\t\tconst items = Array.from(\n\t\t\t\tthis.querySelectorAll<HTMLElement>(\n\t\t\t\t\t'[slot=\"popover\"] button, [slot=\"popover\"] [role=\"option\"]',\n\t\t\t\t),\n\t\t\t);\n\t\t\tif (items.length === 0) return;\n\n\t\t\tconst focused = items.find((el) => el === document.activeElement);\n\t\t\tlet index = focused ? items.indexOf(focused) : -1;\n\n\t\t\tif (e.key === 'ArrowDown') {\n\t\t\t\tindex = index < items.length - 1 ? index + 1 : 0;\n\t\t\t} else {\n\t\t\t\tindex = index > 0 ? index - 1 : items.length - 1;\n\t\t\t}\n\n\t\t\titems[index]?.focus();\n\t\t}\n\t};\n\n\toverride connectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.addEventListener('keydown', this.#handleKeydown);\n\t\tif (this.open) {\n\t\t\tdocument.addEventListener('click', this.#handleDocClick, true);\n\t\t}\n\t}\n\n\toverride disconnectedCallback() {\n\t\tsuper.disconnectedCallback();\n\t\tdocument.removeEventListener('click', this.#handleDocClick, true);\n\t\tthis.removeEventListener('keydown', this.#handleKeydown);\n\t}\n\n\toverride willUpdate(changed: Map<string, unknown>) {\n\t\tif (changed.has('open')) {\n\t\t\tif (this.open) {\n\t\t\t\tdocument.addEventListener('click', this.#handleDocClick, true);\n\t\t\t} else {\n\t\t\t\tdocument.removeEventListener('click', this.#handleDocClick, true);\n\t\t\t}\n\t\t}\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'dev-wallet-dropdown': DevWalletDropdown;\n\t}\n}\n"],"mappings":";;;;;;AAcO,IAAA,oBAAA,MAAM,0BAA0B,WAAW;;;cAsC1C;mBAGK;0BAgBO,MAAa;AAC/B,OAAI,KAAK,QAAQ,CAAC,EAAE,cAAc,CAAC,SAAS,KAAK,CAChD,MAAK,OAAO;;yBAII,MAAqB;AACtC,OAAI,CAAC,KAAK,KAAM;AAEhB,OAAI,EAAE,QAAQ,UAAU;AACvB,MAAE,gBAAgB;AAClB,SAAK,OAAO;AAEZ,IADgB,KAAK,cAAc,qBACnC,EAAS,OAAO;AAChB;;AAGD,OAAI,EAAE,QAAQ,eAAe,EAAE,QAAQ,WAAW;AACjD,MAAE,gBAAgB;IAClB,MAAM,QAAQ,MAAM,KACnB,KAAK,iBACJ,kEACA,CACD;AACD,QAAI,MAAM,WAAW,EAAG;IAExB,MAAM,UAAU,MAAM,MAAM,OAAO,OAAO,SAAS,cAAc;IACjE,IAAI,QAAQ,UAAU,MAAM,QAAQ,QAAQ,GAAG;AAE/C,QAAI,EAAE,QAAQ,YACb,SAAQ,QAAQ,MAAM,SAAS,IAAI,QAAQ,IAAI;QAE/C,SAAQ,QAAQ,IAAI,QAAQ,IAAI,MAAM,SAAS;AAGhD,UAAM,QAAQ,OAAO;;;;;gBA3FE,CACxB,cACA,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgCH;;CAQD,SAAkB;AACjB,SAAO,IAAI;;KAER,KAAK,OAAO,IAAI,4DAA4D,QAAQ;;;CAIxF,QAAQ;AACP,MAAI,KAAK,MAAM;AACd,QAAK,OAAO;AACZ,aAAU,MAAM,QAAQ;;;CAI1B;CAMA;CAiCA,oBAA6B;AAC5B,QAAM,mBAAmB;AACzB,OAAK,iBAAiB,WAAW,MAAA,cAAoB;AACrD,MAAI,KAAK,KACR,UAAS,iBAAiB,SAAS,MAAA,gBAAsB,KAAK;;CAIhE,uBAAgC;AAC/B,QAAM,sBAAsB;AAC5B,WAAS,oBAAoB,SAAS,MAAA,gBAAsB,KAAK;AACjE,OAAK,oBAAoB,WAAW,MAAA,cAAoB;;CAGzD,WAAoB,SAA+B;AAClD,MAAI,QAAQ,IAAI,OAAO,CACtB,KAAI,KAAK,KACR,UAAS,iBAAiB,SAAS,MAAA,gBAAsB,KAAK;MAE9D,UAAS,oBAAoB,SAAS,MAAA,gBAAsB,KAAK;;;YA9EnE,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,kBAAA,WAAA,QAAA,KAAA,EAAA;YAG1C,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;CAAc,CAAC,CAAA,EAAA,kBAAA,WAAA,aAAA,KAAA,EAAA;gCAzCpE,cAAc,sBAAsB,CAAA,EAAA,kBAAA"}
@@ -0,0 +1,43 @@
1
+ import { ForkRelay } from "../adapters/fork-relay.mjs";
2
+ import * as _$lit from "lit";
3
+ import { LitElement } from "lit";
4
+
5
+ //#region src/ui/dev-wallet-fork-panel.d.ts
6
+ declare class DevWalletForkPanel extends LitElement {
7
+ #private;
8
+ static styles: (_$lit.CSSResult | _$lit.CSSResult[])[];
9
+ /** Fork relay client. Provided by the parent (`wallet-controller`)
10
+ * when the active manifest exposes a forked stack. When `null`,
11
+ * the panel renders an empty state — the tab gating in the
12
+ * controller normally prevents this. */
13
+ relay: ForkRelay | null;
14
+ /** Upstream label (`'mainnet'`, `'testnet'`, …). Surfaced in the
15
+ * banner so the operator can't misread which chain the fork forked. */
16
+ upstream: string;
17
+ private _status;
18
+ private _statusError;
19
+ private _statusLoading;
20
+ private _actionInFlight;
21
+ private _actionError;
22
+ private _slots;
23
+ private _slotsError;
24
+ private _slotToggleInFlight;
25
+ private _clockInputMs;
26
+ private _checkpointInputCount;
27
+ connectedCallback(): void;
28
+ disconnectedCallback(): void;
29
+ willUpdate(changed: Map<string, unknown>): void;
30
+ render(): _$lit.TemplateResult<1>;
31
+ /** Public hook for tests + external consumers (e.g. signing-modal
32
+ * wants to re-read slots after a transaction lands). Resolves once
33
+ * both status + slots have refreshed. */
34
+ refresh(): Promise<void>;
35
+ }
36
+ declare global {
37
+ interface HTMLElementTagNameMap {
38
+ 'dev-wallet-fork-panel': DevWalletForkPanel;
39
+ }
40
+ } //# sourceMappingURL=dev-wallet-fork-panel.d.ts.map
41
+ //#endregion
42
+ export { DevWalletForkPanel };
43
+ //# sourceMappingURL=dev-wallet-fork-panel.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-wallet-fork-panel.d.mts","names":[],"sources":["../../src/ui/dev-wallet-fork-panel.ts"],"mappings":";;;;;cA+Ba,kBAAA,SAA2B,UAAA;EAAA;SACvB,MAAA,GADe,KAAA,CACT,SAAA,GAAA,KAAA,CAAA,SAAA;EADV;;;;EA+KZ,KAAA,EAAO,SAAA;EAAA;;EAKP,QAAA;EAAA,QAGQ,OAAA;EAAA,QAGA,YAAA;EAAA,QAGA,cAAA;EAAA,QAGA,eAAA;EAAA,QAGA,YAAA;EAAA,QAGA,MAAA;EAAA,QAGA,WAAA;EAAA,QAGA,mBAAA;EAAA,QAGA,aAAA;EAAA,QAGA,qBAAA;EAIC,iBAAA,CAAA;EAMA,oBAAA,CAAA;EAKA,UAAA,CAAW,OAAA,EAAS,GAAA;EAYpB,MAAA,CAAA,GAZuB,KAAA,CAYjB,cAAA;EAhDP;;;EAyWF,OAAA,CAAA,GAAW,OAAA;AAAA;AAAA,QAKV,MAAA;EAAA,UACG,qBAAA;IACT,uBAAA,EAAyB,kBAAA;EAAA;AAAA"}