@embarkai/ui-kit 0.4.30 → 0.4.31
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.
- package/dist/iframe/index.html +1 -1
- package/dist/iframe/main.js +28 -21
- package/dist/index.cjs +1222 -1155
- package/dist/index.d.cts +43 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.js +1071 -1002
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -837,31 +837,31 @@ var PageKey, useLayoutDataStore;
|
|
|
837
837
|
var init_useLayoutDataStore = __esm({
|
|
838
838
|
"src/internal/hooks/useLayoutDataStore.ts"() {
|
|
839
839
|
init_constants();
|
|
840
|
-
PageKey = /* @__PURE__ */ ((
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
return
|
|
840
|
+
PageKey = /* @__PURE__ */ ((PageKey3) => {
|
|
841
|
+
PageKey3["AUTH"] = "auth";
|
|
842
|
+
PageKey3["LANGUAGES"] = "languages";
|
|
843
|
+
PageKey3["TERMS_OF_SERVICE"] = "terms-of-service";
|
|
844
|
+
PageKey3["MAIN_MENU"] = "main-menu";
|
|
845
|
+
PageKey3["SETTINGS"] = "settings";
|
|
846
|
+
PageKey3["SEND"] = "send";
|
|
847
|
+
PageKey3["RECEIVE"] = "receive";
|
|
848
|
+
PageKey3["BUY"] = "buy";
|
|
849
|
+
PageKey3["KYC"] = "kyc";
|
|
850
|
+
PageKey3["TRANSACTIONS"] = "transactions";
|
|
851
|
+
PageKey3["ASSETS"] = "assets";
|
|
852
|
+
PageKey3["MANAGE_WALLET"] = "manage-wallet";
|
|
853
|
+
PageKey3["UNLINK_PROVIDER"] = "unlink-provider";
|
|
854
|
+
PageKey3["SECURITY"] = "security";
|
|
855
|
+
PageKey3["KEYSARE_BACKUP"] = "keysare-backup";
|
|
856
|
+
PageKey3["KEYSHARE_RESTORE"] = "keyshare-restore";
|
|
857
|
+
PageKey3["CHAIN"] = "chain";
|
|
858
|
+
PageKey3["CHAIN_SWITCH_REQUEST"] = "chain-switch-request";
|
|
859
|
+
PageKey3["NICKNAME_SETTINGS"] = "nickname-settings";
|
|
860
|
+
PageKey3["DEVICES"] = "devices";
|
|
861
|
+
PageKey3["DEVICE_LINK"] = "device-link";
|
|
862
|
+
PageKey3["DEVICE_MANAGE"] = "device-manage";
|
|
863
|
+
PageKey3["DEVICE_RESTORE"] = "device-restore";
|
|
864
|
+
return PageKey3;
|
|
865
865
|
})(PageKey || {});
|
|
866
866
|
useLayoutDataStore = create((set) => ({
|
|
867
867
|
page: null,
|
|
@@ -5323,6 +5323,7 @@ var init_en = __esm({
|
|
|
5323
5323
|
advanced: "Advanced",
|
|
5324
5324
|
next: "Next",
|
|
5325
5325
|
prev: "Prev",
|
|
5326
|
+
page: "Page",
|
|
5326
5327
|
errors: {
|
|
5327
5328
|
oops: "Oops, something went wrong. Please try again."
|
|
5328
5329
|
}
|
|
@@ -5384,9 +5385,11 @@ var init_en = __esm({
|
|
|
5384
5385
|
labels: {
|
|
5385
5386
|
sender: "Sender",
|
|
5386
5387
|
bridgeAsset: "Bridge {{asset}}",
|
|
5387
|
-
|
|
5388
|
+
selectTokenAndRoute: "Select Token & Route",
|
|
5389
|
+
selectToken: "Select Token",
|
|
5388
5390
|
estimations: "Estimations",
|
|
5389
5391
|
estimatedFee: "Estimated Fee",
|
|
5392
|
+
availableChainPairs: "Available Chain Pairs",
|
|
5390
5393
|
toChain: "To Chain",
|
|
5391
5394
|
fromChain: "From Chain",
|
|
5392
5395
|
optionalRecipient: "Recipient (optional, if empty - destination chain address = sender address on origin chain)",
|
|
@@ -5410,12 +5413,15 @@ var init_en = __esm({
|
|
|
5410
5413
|
bridge: "BRIDGE",
|
|
5411
5414
|
estimateQuote: "ESTIMATE QUOTE",
|
|
5412
5415
|
bridgeAsset: "BRIDGE {{asset}}",
|
|
5416
|
+
selectAsset: "SELECT ASSET",
|
|
5413
5417
|
confirmBridge: "I confirm bridging {{amount}} {{asset}} to {{destinationChain}}"
|
|
5414
5418
|
},
|
|
5415
5419
|
statuses: {
|
|
5416
5420
|
txPrepare: "Preparing transactions...",
|
|
5417
5421
|
txSending: "Sending {{txCount}} transactions...",
|
|
5418
|
-
txSent: "Transactions sent. Delivery to {{destination}}"
|
|
5422
|
+
txSent: "Transactions sent. Delivery to {{destination}}",
|
|
5423
|
+
txWaitingReceipt: "Waiting for receipt...",
|
|
5424
|
+
txPatching: "Patching transaction..."
|
|
5419
5425
|
},
|
|
5420
5426
|
consent: {
|
|
5421
5427
|
recipient: "IMPORTANT! Make sure the address {{address}} exists on the {{destinationChain}} chain and supports receiving bridged {{asset}}!",
|
|
@@ -5423,6 +5429,7 @@ var init_en = __esm({
|
|
|
5423
5429
|
},
|
|
5424
5430
|
errors: {
|
|
5425
5431
|
directWalletWarn: "In order to bridge from your {{originWalletProvider}} wallet, you need to connect it first (since originally it provides embarkAi auth-profile, not a connection). You will be guided through the process in the next steps.",
|
|
5432
|
+
noWarpRoutes: "No bridge routes available",
|
|
5426
5433
|
routeUnavailable: "The route {{originChain}} \u2194 {{destinationChain}} is currently unavailable. Please try again later or select a different route.",
|
|
5427
5434
|
noConnections: "No connections found between {{originChain}} & {{destinationChain}}",
|
|
5428
5435
|
wrongNetwork: " Please switch embarkAi to origin chain to proceed with bridging",
|
|
@@ -5635,6 +5642,7 @@ var init_ru = __esm({
|
|
|
5635
5642
|
advanced: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439",
|
|
5636
5643
|
next: "\u0421\u043B\u0435\u0434",
|
|
5637
5644
|
prev: "\u041F\u0440\u0435\u0434",
|
|
5645
|
+
page: "\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430",
|
|
5638
5646
|
errors: {
|
|
5639
5647
|
oops: "\u0423\u043F\u0441, \u0447\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430."
|
|
5640
5648
|
}
|
|
@@ -5694,10 +5702,13 @@ var init_ru = __esm({
|
|
|
5694
5702
|
bridgeMenu: {
|
|
5695
5703
|
title: "\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0410\u043A\u0442\u0438\u0432",
|
|
5696
5704
|
labels: {
|
|
5705
|
+
sender: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u043B\u044C",
|
|
5697
5706
|
bridgeAsset: "\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C {{asset}}",
|
|
5707
|
+
selectTokenAndRoute: "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0442\u043E\u043A\u0435\u043D \u0438 \u043C\u0430\u0440\u0448\u0440\u0443\u0442",
|
|
5698
5708
|
selectToken: "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u043C\u0430\u0440\u0448\u0440\u0443\u0442 \u0442\u043E\u043A\u0435\u043D\u0430",
|
|
5699
5709
|
estimations: "\u041E\u0446\u0435\u043D\u043A\u0438",
|
|
5700
5710
|
estimatedFee: "\u041E\u0436\u0438\u0434\u0430\u0435\u043C\u0430\u044F \u043A\u043E\u043C\u0438\u0441\u0441\u0438\u044F",
|
|
5711
|
+
availableChainPairs: "\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043F\u0430\u0440\u044B \u0441\u0435\u0442\u0435\u0439",
|
|
5701
5712
|
toChain: "\u0412 \u0441\u0435\u0442\u044C",
|
|
5702
5713
|
fromChain: "\u0418\u0437 \u0441\u0435\u0442\u0438",
|
|
5703
5714
|
optionalRecipient: "\u041F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044C (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E, \u0435\u0441\u043B\u0438 \u043F\u0443\u0441\u0442\u043E \u2014 \u0430\u0434\u0440\u0435\u0441 \u0432 \u0446\u0435\u043B\u0435\u0432\u043E\u0439 \u0441\u0435\u0442\u0438 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u0430\u0434\u0440\u0435\u0441\u043E\u043C \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u043B\u044F \u0432 \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u0439 \u0441\u0435\u0442\u0438)",
|
|
@@ -5713,11 +5724,15 @@ var init_ru = __esm({
|
|
|
5713
5724
|
localFee: "\u041B\u043E\u043A\u0430\u043B\u044C\u043D\u0430\u044F \u043A\u043E\u043C\u0438\u0441\u0441\u0438\u044F",
|
|
5714
5725
|
tokenFee: "\u041A\u043E\u043C\u0438\u0441\u0441\u0438\u044F \u0442\u043E\u043A\u0435\u043D\u0430",
|
|
5715
5726
|
igpSymbol: "\u0421\u0438\u043C\u0432\u043E\u043B IGP",
|
|
5716
|
-
localSymbol: "\u041B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B"
|
|
5727
|
+
localSymbol: "\u041B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B",
|
|
5728
|
+
operationHash: "\u0425\u044D\u0448 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438"
|
|
5717
5729
|
},
|
|
5718
5730
|
actions: {
|
|
5731
|
+
connectWallet: "\u041F\u041E\u0414\u041A\u041B\u042E\u0427\u0418\u0422\u042C \u041A\u041E\u0428\u0415\u041B\u0401\u041A",
|
|
5719
5732
|
bridge: "\u041F\u0415\u0420\u0415\u041C\u0415\u0421\u0422\u0418\u0422\u042C",
|
|
5733
|
+
estimateQuote: "\u0420\u0410\u0421\u0421\u0427\u0418\u0422\u0410\u0422\u042C \u0421\u0422\u041E\u0418\u041C\u041E\u0421\u0422\u042C",
|
|
5720
5734
|
bridgeAsset: "\u041F\u0415\u0420\u0415\u041C\u0415\u0421\u0422\u0418\u0422\u042C {{asset}}",
|
|
5735
|
+
selectAsset: "\u0412\u042B\u0411\u0420\u0410\u0422\u042C \u0410\u041A\u0422\u0418\u0412",
|
|
5721
5736
|
confirmBridge: "\u041F\u041E\u0414\u0422\u0412\u0415\u0420\u0414\u0418\u0422\u042C \u041F\u0415\u0420\u0415\u041C\u0415\u0429\u0415\u041D\u0418\u0415"
|
|
5722
5737
|
},
|
|
5723
5738
|
statuses: {
|
|
@@ -5726,12 +5741,22 @@ var init_ru = __esm({
|
|
|
5726
5741
|
txPrepare: "\u041F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0430 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0439...",
|
|
5727
5742
|
txSending: "\u041E\u0442\u043F\u0440\u0430\u0432\u043A\u0430 {{txCount}} \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0439...",
|
|
5728
5743
|
txSent: "\u0422\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u044B. \u0414\u043E\u0441\u0442\u0430\u0432\u043A\u0430 \u0432 {{destination}}",
|
|
5729
|
-
txExecuting: "\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F..."
|
|
5744
|
+
txExecuting: "\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F...",
|
|
5745
|
+
txWaitingReceipt: "\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F...",
|
|
5746
|
+
txPatching: "\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438..."
|
|
5747
|
+
},
|
|
5748
|
+
consent: {
|
|
5749
|
+
recipient: "\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415! \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0430\u0434\u0440\u0435\u0441 {{address}} \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0441\u0435\u0442\u0438 {{destinationChain}} \u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0451\u043D\u043D\u044B\u0445 {{asset}}!",
|
|
5750
|
+
lostFunds: "\u0412 \u043F\u0440\u043E\u0442\u0438\u0432\u043D\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 \u0432\u0430\u0448\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u043F\u043E\u0442\u0435\u0440\u044F\u043D\u044B."
|
|
5730
5751
|
},
|
|
5731
5752
|
errors: {
|
|
5753
|
+
directWalletWarn: "\u0427\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0438\u0437 \u0432\u0430\u0448\u0435\u0433\u043E \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430 {{originWalletProvider}}, \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0435\u0433\u043E (\u043F\u043E\u0441\u043A\u043E\u043B\u044C\u043A\u0443 \u0438\u0437\u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E \u043E\u043D \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u0440\u043E\u0444\u0438\u043B\u044C \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 embarkAi, \u0430 \u043D\u0435 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435). \u041D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0445 \u0448\u0430\u0433\u0430\u0445 \u0432\u044B \u043F\u0440\u043E\u0439\u0434\u0451\u0442\u0435 \u044D\u0442\u043E\u0442 \u043F\u0440\u043E\u0446\u0435\u0441\u0441.",
|
|
5754
|
+
noWarpRoutes: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442\u044B \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B",
|
|
5732
5755
|
routeUnavailable: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442 {{originChain}} \u2194 {{destinationChain}} \u0432 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443 \u043F\u043E\u0437\u0436\u0435 \u0438\u043B\u0438 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u043E\u0439 \u043C\u0430\u0440\u0448\u0440\u0443\u0442.",
|
|
5733
5756
|
noConnections: "\u0421\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0439 \u043C\u0435\u0436\u0434\u0443 {{originChain}} \u0438 {{destinationChain}} \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E",
|
|
5734
|
-
wrongNetwork: " \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0435 EmbarkAI \u043D\u0430 \u0438\u0441\u0445\u043E\u0434\u043D\u0443\u044E \u0441\u0435\u0442\u044C \u0434\u043B\u044F \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F"
|
|
5757
|
+
wrongNetwork: " \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0435 EmbarkAI \u043D\u0430 \u0438\u0441\u0445\u043E\u0434\u043D\u0443\u044E \u0441\u0435\u0442\u044C \u0434\u043B\u044F \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F",
|
|
5758
|
+
noHistory: "\u0418\u0441\u0442\u043E\u0440\u0438\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0439 \u043F\u0443\u0441\u0442\u0430. \u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u0432\u0430\u0448\u0438 \u0430\u043A\u0442\u0438\u0432\u044B, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0437\u0434\u0435\u0441\u044C.",
|
|
5759
|
+
unsupportedNetwork: "\u041F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435 \u0438\u0437 \u0441\u0435\u0442\u0438 {{originChain}} \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0434\u043B\u044F {{sender}}. \u041F\u043E\u043C\u0435\u043D\u044F\u0439\u0442\u0435 \u0441\u0435\u0442\u0438 \u043C\u0435\u0441\u0442\u0430\u043C\u0438, \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u043E\u0439 \u043C\u0430\u0440\u0448\u0440\u0443\u0442 \u0442\u043E\u043A\u0435\u043D\u0430 \u0438\u043B\u0438 \u0441\u043C\u0435\u043D\u0438\u0442\u0435 \u043A\u043E\u0448\u0435\u043B\u0451\u043A \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u0435\u043B\u044F"
|
|
5735
5760
|
}
|
|
5736
5761
|
},
|
|
5737
5762
|
receiveMenu: {
|
|
@@ -5939,6 +5964,7 @@ var init_zh = __esm({
|
|
|
5939
5964
|
advanced: "\u9AD8\u7EA7",
|
|
5940
5965
|
next: "\u4E0B\u4E00\u6B65",
|
|
5941
5966
|
prev: "\u4E0A\u4E00\u6B65",
|
|
5967
|
+
page: "\u9875\u9762",
|
|
5942
5968
|
errors: {
|
|
5943
5969
|
oops: "\u54CE\u5440\uFF0C\u51FA\u4E86\u70B9\u95EE\u9898\u3002\u8BF7\u518D\u8BD5\u4E00\u6B21\u3002"
|
|
5944
5970
|
}
|
|
@@ -5998,10 +6024,13 @@ var init_zh = __esm({
|
|
|
5998
6024
|
bridgeMenu: {
|
|
5999
6025
|
title: "\u8DE8\u94FE\u8D44\u4EA7",
|
|
6000
6026
|
labels: {
|
|
6027
|
+
sender: "\u53D1\u9001\u65B9",
|
|
6001
6028
|
bridgeAsset: "\u8DE8\u94FE {{asset}}",
|
|
6029
|
+
selectTokenAndRoute: "\u9009\u62E9\u4EE3\u5E01\u548C\u8DEF\u7531",
|
|
6002
6030
|
selectToken: "\u9009\u62E9\u4EE3\u5E01\u8DEF\u7531",
|
|
6003
6031
|
estimations: "\u9884\u4F30",
|
|
6004
6032
|
estimatedFee: "\u9884\u4F30\u624B\u7EED\u8D39",
|
|
6033
|
+
availableChainPairs: "\u53EF\u7528\u94FE\u5BF9",
|
|
6005
6034
|
toChain: "\u76EE\u6807\u94FE",
|
|
6006
6035
|
fromChain: "\u6E90\u94FE",
|
|
6007
6036
|
optionalRecipient: "\u63A5\u6536\u4EBA\uFF08\u53EF\u9009\uFF0C\u82E5\u4E3A\u7A7A\u5219\u76EE\u6807\u94FE\u5730\u5740\u7B49\u4E8E\u6E90\u94FE\u4E0A\u7684\u53D1\u9001\u65B9\u5730\u5740\uFF09",
|
|
@@ -6017,11 +6046,15 @@ var init_zh = __esm({
|
|
|
6017
6046
|
localFee: "\u672C\u5730\u8D39\u7528",
|
|
6018
6047
|
tokenFee: "\u4EE3\u5E01\u8D39\u7528",
|
|
6019
6048
|
igpSymbol: "IGP \u7B26\u53F7",
|
|
6020
|
-
localSymbol: "\u672C\u5730\u7B26\u53F7"
|
|
6049
|
+
localSymbol: "\u672C\u5730\u7B26\u53F7",
|
|
6050
|
+
operationHash: "\u64CD\u4F5C\u54C8\u5E0C"
|
|
6021
6051
|
},
|
|
6022
6052
|
actions: {
|
|
6053
|
+
connectWallet: "\u8FDE\u63A5\u9489\u5305",
|
|
6023
6054
|
bridge: "\u8DE8\u94FE",
|
|
6055
|
+
estimateQuote: "\u4F30\u7B97\u62A5\u4EF7",
|
|
6024
6056
|
bridgeAsset: "\u8DE8\u94FE {{asset}}",
|
|
6057
|
+
selectAsset: "\u9009\u62E9\u8D44\u4EA7",
|
|
6025
6058
|
confirmBridge: "\u786E\u8BA4\u8DE8\u94FE"
|
|
6026
6059
|
},
|
|
6027
6060
|
statuses: {
|
|
@@ -6030,12 +6063,22 @@ var init_zh = __esm({
|
|
|
6030
6063
|
txPrepare: "\u6B63\u5728\u51C6\u5907\u4EA4\u6613...",
|
|
6031
6064
|
txSending: "\u6B63\u5728\u53D1\u9001 {{txCount}} \u7B14\u4EA4\u6613...",
|
|
6032
6065
|
txSent: "\u4EA4\u6613\u5DF2\u53D1\u9001\u3002\u6B63\u5728\u4F20\u8F93\u81F3 {{destination}}",
|
|
6033
|
-
txExecuting: "\u6B63\u5728\u6267\u884C\u8DE8\u94FE..."
|
|
6066
|
+
txExecuting: "\u6B63\u5728\u6267\u884C\u8DE8\u94FE...",
|
|
6067
|
+
txWaitingReceipt: "\u7B49\u5F85\u6536\u636E...",
|
|
6068
|
+
txPatching: "\u66F4\u65B0\u4EA4\u6613..."
|
|
6069
|
+
},
|
|
6070
|
+
consent: {
|
|
6071
|
+
recipient: "\u91CD\u8981\u63D0\u793A\uFF01\u8BF7\u786E\u4FDD {{address}} \u5730\u5740\u5728 {{destinationChain}} \u94FE\u4E0A\u5B58\u5728\uFF0C\u5E76\u652F\u6301\u63A5\u6536\u8DE8\u94FE\u7684 {{asset}}\uFF01",
|
|
6072
|
+
lostFunds: "\u5426\u5219\u60A8\u7684\u8D44\u91D1\u53EF\u80FD\u4E22\u5931\u3002"
|
|
6034
6073
|
},
|
|
6035
6074
|
errors: {
|
|
6075
|
+
directWalletWarn: "\u8981\u4ECE\u60A8\u7684 {{originWalletProvider}} \u9489\u5305\u8FDB\u884C\u8DE8\u94FE\uFF0C\u60A8\u9700\u8981\u5148\u8FDE\u63A5\u5B83\uFF08\u56E0\u4E3A\u5B83\u6700\u521D\u63D0\u4F9B\u7684\u662F embarkAi \u8EAB\u4EFD\u9A8C\u8BC1\u914D\u7F6E\u6587\u4EF6\uFF0C\u800C\u4E0D\u662F\u8FDE\u63A5\uFF09\u3002\u63A5\u4E0B\u6765\u7684\u6B65\u9AA4\u5C06\u5F15\u5BFC\u60A8\u5B8C\u6210\u6B64\u8FC7\u7A0B\u3002",
|
|
6076
|
+
noWarpRoutes: "\u65E0\u53EF\u7528\u6865\u63A5\u8DEF\u7531",
|
|
6036
6077
|
routeUnavailable: "\u8DEF\u7531 {{originChain}} \u2194 {{destinationChain}} \u5F53\u524D\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u6216\u9009\u62E9\u5176\u4ED6\u8DEF\u7531\u3002",
|
|
6037
6078
|
noConnections: "\u672A\u627E\u5230 {{originChain}} \u4E0E {{destinationChain}} \u4E4B\u95F4\u7684\u8FDE\u63A5",
|
|
6038
|
-
wrongNetwork: " \u8BF7\u5C06 EmbarkAI \u5207\u6362\u81F3\u6E90\u94FE\u4EE5\u7EE7\u7EED\u8DE8\u94FE\u64CD\u4F5C"
|
|
6079
|
+
wrongNetwork: " \u8BF7\u5C06 EmbarkAI \u5207\u6362\u81F3\u6E90\u94FE\u4EE5\u7EE7\u7EED\u8DE8\u94FE\u64CD\u4F5C",
|
|
6080
|
+
noHistory: "\u6682\u65E0\u8DE8\u94FE\u8BB0\u5F55\u3002\u8DE8\u94FE\u60A8\u7684\u8D44\u4EA7\u540E\uFF0C\u5386\u53F2\u8BB0\u5F55\u5C06\u663E\u793A\u5728\u6B64\u5904\u3002",
|
|
6081
|
+
unsupportedNetwork: "{{sender}} \u5C1A\u4E0D\u652F\u6301\u4ECE {{originChain}} \u8DE8\u94FE\u3002\u8BF7\u5207\u6362\u7F51\u7EDC\u5BF9\u3001\u9009\u62E9\u4E0D\u540C\u7684\u4EE3\u5E01\u8DEF\u7531\u6216\u66F4\u6362\u53D1\u9001\u9489\u5305"
|
|
6039
6082
|
}
|
|
6040
6083
|
},
|
|
6041
6084
|
receiveMenu: {
|
|
@@ -11487,61 +11530,34 @@ var init_BaseIcon = __esm({
|
|
|
11487
11530
|
}
|
|
11488
11531
|
});
|
|
11489
11532
|
|
|
11490
|
-
// src/internal/assets/networks/
|
|
11533
|
+
// src/internal/assets/networks/BscIcon.tsx
|
|
11491
11534
|
import { jsx as jsx46, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
11492
|
-
function
|
|
11535
|
+
function BSCIcon(props) {
|
|
11536
|
+
const { width = 28, height = 28, className } = props;
|
|
11493
11537
|
return /* @__PURE__ */ jsxs39(
|
|
11494
11538
|
"svg",
|
|
11495
11539
|
{
|
|
11496
11540
|
width,
|
|
11497
11541
|
height,
|
|
11498
|
-
viewBox: "0 0
|
|
11542
|
+
viewBox: "0 0 32 32",
|
|
11499
11543
|
fill: "none",
|
|
11500
11544
|
xmlns: "http://www.w3.org/2000/svg",
|
|
11501
11545
|
className,
|
|
11502
11546
|
children: [
|
|
11503
|
-
/* @__PURE__ */ jsx46("circle", { cx: "
|
|
11504
|
-
/* @__PURE__ */ jsx46(
|
|
11505
|
-
"path",
|
|
11506
|
-
{
|
|
11507
|
-
d: "M14 6L11.09 8.91L14 11.82L16.91 8.91L14 6Z",
|
|
11508
|
-
fill: "white"
|
|
11509
|
-
}
|
|
11510
|
-
),
|
|
11511
|
-
/* @__PURE__ */ jsx46(
|
|
11512
|
-
"path",
|
|
11513
|
-
{
|
|
11514
|
-
d: "M8.18 11.82L5.27 14.73L8.18 17.64L11.09 14.73L8.18 11.82Z",
|
|
11515
|
-
fill: "white"
|
|
11516
|
-
}
|
|
11517
|
-
),
|
|
11518
|
-
/* @__PURE__ */ jsx46(
|
|
11519
|
-
"path",
|
|
11520
|
-
{
|
|
11521
|
-
d: "M14 14.73L11.09 17.64L14 20.55L16.91 17.64L14 14.73Z",
|
|
11522
|
-
fill: "white"
|
|
11523
|
-
}
|
|
11524
|
-
),
|
|
11525
|
-
/* @__PURE__ */ jsx46(
|
|
11526
|
-
"path",
|
|
11527
|
-
{
|
|
11528
|
-
d: "M19.82 11.82L16.91 14.73L19.82 17.64L22.73 14.73L19.82 11.82Z",
|
|
11529
|
-
fill: "white"
|
|
11530
|
-
}
|
|
11531
|
-
),
|
|
11547
|
+
/* @__PURE__ */ jsx46("circle", { cx: "16", cy: "16", r: "16", fill: "#F3BA2F" }),
|
|
11532
11548
|
/* @__PURE__ */ jsx46(
|
|
11533
11549
|
"path",
|
|
11534
11550
|
{
|
|
11535
|
-
|
|
11536
|
-
|
|
11551
|
+
fill: "#FFF",
|
|
11552
|
+
d: "M12.116 14.404L16 10.52l3.886 3.886 2.26-2.26L16 6l-6.144 6.144 2.26 2.26zM6 16l2.26-2.26L10.52 16l-2.26 2.26L6 16zm6.116 1.596L16 21.48l3.886-3.886 2.26 2.259L16 26l-6.144-6.144-.003-.003 2.263-2.257zM21.48 16l2.26-2.26L26 16l-2.26 2.26L21.48 16zm-3.188-.002h.002V16L16 18.294l-2.291-2.29-.004-.004.004-.003.401-.402.195-.195L16 13.706l2.293 2.293z"
|
|
11537
11553
|
}
|
|
11538
11554
|
)
|
|
11539
11555
|
]
|
|
11540
11556
|
}
|
|
11541
11557
|
);
|
|
11542
11558
|
}
|
|
11543
|
-
var
|
|
11544
|
-
"src/internal/assets/networks/
|
|
11559
|
+
var init_BscIcon = __esm({
|
|
11560
|
+
"src/internal/assets/networks/BscIcon.tsx"() {
|
|
11545
11561
|
}
|
|
11546
11562
|
});
|
|
11547
11563
|
|
|
@@ -11682,7 +11698,7 @@ var init_networks3 = __esm({
|
|
|
11682
11698
|
"src/config/networks.ts"() {
|
|
11683
11699
|
init_ArbitrumIcon();
|
|
11684
11700
|
init_BaseIcon();
|
|
11685
|
-
|
|
11701
|
+
init_BscIcon();
|
|
11686
11702
|
init_EthereumIcon();
|
|
11687
11703
|
init_LumiaIcon2();
|
|
11688
11704
|
NETWORK_OPTIONS = [
|
|
@@ -11711,7 +11727,7 @@ var init_networks3 = __esm({
|
|
|
11711
11727
|
chainId: BSC_TESTNET_CHAIN_ID3,
|
|
11712
11728
|
name: "BSC Testnet",
|
|
11713
11729
|
badge: "TESTNET",
|
|
11714
|
-
Icon:
|
|
11730
|
+
Icon: BSCIcon,
|
|
11715
11731
|
isActive: true
|
|
11716
11732
|
},
|
|
11717
11733
|
{
|
|
@@ -19266,9 +19282,9 @@ import { bsc, mainnet as ethereum } from "wagmi/chains";
|
|
|
19266
19282
|
var CHAINS_UI_META;
|
|
19267
19283
|
var init_chains = __esm({
|
|
19268
19284
|
"src/internal/components/SendMenu/hyperbridge/lib/chains.ts"() {
|
|
19269
|
-
init_BnbIcon2();
|
|
19270
19285
|
init_EthereumIcon();
|
|
19271
19286
|
init_LumiaIcon2();
|
|
19287
|
+
init_BscIcon();
|
|
19272
19288
|
CHAINS_UI_META = {
|
|
19273
19289
|
lumiaprism: {
|
|
19274
19290
|
chainID: lumiaprism.id,
|
|
@@ -19277,18 +19293,16 @@ var init_chains = __esm({
|
|
|
19277
19293
|
// exact hyperlane registry chain name
|
|
19278
19294
|
Icon: LumiaIcon2,
|
|
19279
19295
|
explorerUrl: lumiaprism.blockExplorers.default.url,
|
|
19280
|
-
chain: lumiaprism
|
|
19281
|
-
nativeCurrency: lumiaprism.nativeCurrency.symbol
|
|
19296
|
+
chain: lumiaprism
|
|
19282
19297
|
},
|
|
19283
19298
|
bsc: {
|
|
19284
19299
|
chainID: bsc.id,
|
|
19285
19300
|
chainLabel: bsc.name,
|
|
19286
19301
|
chainName: "bsc",
|
|
19287
19302
|
// exact hyperlane registry chain name
|
|
19288
|
-
Icon:
|
|
19303
|
+
Icon: BSCIcon,
|
|
19289
19304
|
explorerUrl: bsc.blockExplorers.default.url,
|
|
19290
|
-
chain: bsc
|
|
19291
|
-
nativeCurrency: bsc.nativeCurrency.symbol
|
|
19305
|
+
chain: bsc
|
|
19292
19306
|
},
|
|
19293
19307
|
ethereum: {
|
|
19294
19308
|
chainID: ethereum.id,
|
|
@@ -19297,15 +19311,8 @@ var init_chains = __esm({
|
|
|
19297
19311
|
// exact hyperlane registry chain name
|
|
19298
19312
|
Icon: EthereumIcon,
|
|
19299
19313
|
explorerUrl: ethereum.blockExplorers.default.url,
|
|
19300
|
-
chain: ethereum
|
|
19301
|
-
|
|
19302
|
-
}
|
|
19303
|
-
// base: {
|
|
19304
|
-
// chainID: base.id,
|
|
19305
|
-
// chainLabel: base.name,
|
|
19306
|
-
// chainName: 'ethereum', // exact hyperlane registry chain name
|
|
19307
|
-
// Icon: EthereumIcon
|
|
19308
|
-
// },
|
|
19314
|
+
chain: ethereum
|
|
19315
|
+
}
|
|
19309
19316
|
};
|
|
19310
19317
|
}
|
|
19311
19318
|
});
|
|
@@ -19326,7 +19333,6 @@ var init_useBridgeStore = __esm({
|
|
|
19326
19333
|
amount: "",
|
|
19327
19334
|
quote: null,
|
|
19328
19335
|
isQuoteEstimating: false,
|
|
19329
|
-
lastTxHashes: [],
|
|
19330
19336
|
bridgeHistoryItem: null
|
|
19331
19337
|
};
|
|
19332
19338
|
useBridgeStore = create8()(
|
|
@@ -19336,6 +19342,7 @@ var init_useBridgeStore = __esm({
|
|
|
19336
19342
|
recipient: null,
|
|
19337
19343
|
originChain: null,
|
|
19338
19344
|
destinationChain: null,
|
|
19345
|
+
bridgeAssetSymbol: null,
|
|
19339
19346
|
...RESETABLE_STATES,
|
|
19340
19347
|
setBridgeStep: (bridgeStep) => {
|
|
19341
19348
|
useFlowSelectorStore.getState().setRenderKey(`bridge-${bridgeStep}-${Date.now()}`);
|
|
@@ -19343,6 +19350,7 @@ var init_useBridgeStore = __esm({
|
|
|
19343
19350
|
},
|
|
19344
19351
|
setBridgeSender: (bridgeSender) => set({ bridgeSender }),
|
|
19345
19352
|
setBridgeSenders: (bridgeSenders) => set({ bridgeSenders }),
|
|
19353
|
+
setBridgeAssetSymbol: (bridgeAssetSymbol) => set({ bridgeAssetSymbol }),
|
|
19346
19354
|
setBridgeTxStatus: (bridgeTxStatus) => set({ bridgeTxStatus }),
|
|
19347
19355
|
setOriginChain: (v) => set({ originChain: v }),
|
|
19348
19356
|
setDestinationChain: (v) => set({ destinationChain: v }),
|
|
@@ -19350,7 +19358,6 @@ var init_useBridgeStore = __esm({
|
|
|
19350
19358
|
setAmount: (v) => set({ amount: v }),
|
|
19351
19359
|
setQuote: (quote) => set({ quote }),
|
|
19352
19360
|
setIsQuoteEstimating: (isQuoteEstimating) => set({ isQuoteEstimating }),
|
|
19353
|
-
setLastTxHashes: (lastTxHashes) => set({ lastTxHashes }),
|
|
19354
19361
|
setRecipient: (recipient) => set({ recipient }),
|
|
19355
19362
|
setBridgeHistoryItem: (bridgeHistoryItem) => set({ bridgeHistoryItem }),
|
|
19356
19363
|
// Compound actions
|
|
@@ -19370,6 +19377,7 @@ var init_useBridgeStore = __esm({
|
|
|
19370
19377
|
{
|
|
19371
19378
|
name: "hyperlane-bridge-store",
|
|
19372
19379
|
partialize: (state) => ({
|
|
19380
|
+
bridgeAssetSymbol: state.bridgeAssetSymbol,
|
|
19373
19381
|
hyperRoute: state.hyperRoute,
|
|
19374
19382
|
recipient: state.recipient,
|
|
19375
19383
|
originChain: state.originChain,
|
|
@@ -19393,7 +19401,6 @@ function SenderSelector() {
|
|
|
19393
19401
|
const { signMessageAsync } = useSignMessage();
|
|
19394
19402
|
const { openConnectModal } = useConnectModal();
|
|
19395
19403
|
const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
|
|
19396
|
-
const directWalletChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
19397
19404
|
const directWalletIsConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
19398
19405
|
const pendingWalletRef = useRef17(null);
|
|
19399
19406
|
const { profiles } = useLinkedProfiles();
|
|
@@ -19418,10 +19425,6 @@ function SenderSelector() {
|
|
|
19418
19425
|
setWalletMessage("Invalid wallet profile. Please try connecting your wallet again.");
|
|
19419
19426
|
return;
|
|
19420
19427
|
}
|
|
19421
|
-
const isWalletChainMatchOriginChain = directWalletChainId === CHAINS_UI_META[originChain].chainID;
|
|
19422
|
-
if (!isWalletChainMatchOriginChain) {
|
|
19423
|
-
throw new Error(`External wallet required to be on ${CHAINS_UI_META[originChain].chainLabel} network.`);
|
|
19424
|
-
}
|
|
19425
19428
|
const projectName = config.current?.projectId ? await fetchProjectName(config.current.projectId) : "EmbarkAI";
|
|
19426
19429
|
const signingWalletAddress = walletProfile2?.externalId;
|
|
19427
19430
|
const message = createLoginMessage(signingWalletAddress, projectName);
|
|
@@ -19555,241 +19558,6 @@ var init_SenderSelector = __esm({
|
|
|
19555
19558
|
}
|
|
19556
19559
|
});
|
|
19557
19560
|
|
|
19558
|
-
// src/internal/components/SendMenu/hyperbridge/components/ResolveChainIcon.tsx
|
|
19559
|
-
import { jsx as jsx92 } from "react/jsx-runtime";
|
|
19560
|
-
function ResolveChainIcon(props) {
|
|
19561
|
-
const Icon2 = CHAINS_UI_META[props.chainName]?.Icon || TOKENS_ICONS.EMBARKAI;
|
|
19562
|
-
return /* @__PURE__ */ jsx92(Icon2, { className: props.className || "w-4 h-4" });
|
|
19563
|
-
}
|
|
19564
|
-
var init_ResolveChainIcon = __esm({
|
|
19565
|
-
"src/internal/components/SendMenu/hyperbridge/components/ResolveChainIcon.tsx"() {
|
|
19566
|
-
init_tokens();
|
|
19567
|
-
init_chains();
|
|
19568
|
-
}
|
|
19569
|
-
});
|
|
19570
|
-
|
|
19571
|
-
// src/internal/components/SendMenu/hyperbridge/utils.ts
|
|
19572
|
-
import { formatUnits as formatUnits6 } from "viem";
|
|
19573
|
-
function isNftAsset2(asset) {
|
|
19574
|
-
if (!asset) return false;
|
|
19575
|
-
return asset.type === "erc721" || asset.type === "erc1155";
|
|
19576
|
-
}
|
|
19577
|
-
function getAssetBalance(asset) {
|
|
19578
|
-
if (!asset) return 0;
|
|
19579
|
-
if (isNftAsset2(asset)) return 1;
|
|
19580
|
-
return Number(formatUnits6(BigInt(asset.balance || "0"), asset.decimals || 18));
|
|
19581
|
-
}
|
|
19582
|
-
function isOririnChainEmbarkSupported(originChain) {
|
|
19583
|
-
const supportedChain = NETWORK_OPTIONS.map((c) => c.chainId);
|
|
19584
|
-
return supportedChain.includes(CHAINS_UI_META[originChain].chainID);
|
|
19585
|
-
}
|
|
19586
|
-
var init_utils8 = __esm({
|
|
19587
|
-
"src/internal/components/SendMenu/hyperbridge/utils.ts"() {
|
|
19588
|
-
init_networks3();
|
|
19589
|
-
init_chains();
|
|
19590
|
-
}
|
|
19591
|
-
});
|
|
19592
|
-
|
|
19593
|
-
// src/internal/components/SendMenu/hyperbridge/components/TokenHyperlaneRouteSelector.tsx
|
|
19594
|
-
import { ArrowLeftRightIcon } from "lucide-react";
|
|
19595
|
-
import { Fragment as Fragment36 } from "react";
|
|
19596
|
-
import { jsx as jsx93, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
19597
|
-
function TokenHyperlaneRouteSelector(props) {
|
|
19598
|
-
const { hyperlaneWarpRoutes } = props;
|
|
19599
|
-
const hyperRouteID = useBridgeStore((st) => st.hyperRoute);
|
|
19600
|
-
const originChain = useBridgeStore((st) => st.originChain);
|
|
19601
|
-
const destinationChain = useBridgeStore((st) => st.destinationChain);
|
|
19602
|
-
const activeRoute = hyperlaneWarpRoutes.find((route) => {
|
|
19603
|
-
const { routeId, chainPair } = route;
|
|
19604
|
-
const chainPairNames = chainPair.map((c) => c.chainName);
|
|
19605
|
-
return routeId === hyperRouteID && chainPairNames.includes(originChain) && chainPairNames.includes(destinationChain);
|
|
19606
|
-
});
|
|
19607
|
-
return /* @__PURE__ */ jsx93("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: hyperlaneWarpRoutes.map((hyperRoute, routeIdx) => {
|
|
19608
|
-
const RouteIcon = TOKENS_ICONS[(hyperRoute?.symbol || "null_icon").toUpperCase()] || TOKENS_ICONS.EMBARKAI;
|
|
19609
|
-
return /* @__PURE__ */ jsxs85(
|
|
19610
|
-
Button,
|
|
19611
|
-
{
|
|
19612
|
-
size: "large",
|
|
19613
|
-
variant: activeRoute?.id === hyperRoute.id ? "default" : "outline",
|
|
19614
|
-
className: "justify-between",
|
|
19615
|
-
onClick: () => {
|
|
19616
|
-
const { setHyperRoute, setBridgeStep, setOriginChain, setDestinationChain } = useBridgeStore.getState();
|
|
19617
|
-
let originChainIndex = 0;
|
|
19618
|
-
let destinationChainIndex = 1;
|
|
19619
|
-
if (useBridgeStore.getState().bridgeSender === "embarkai-wallet") {
|
|
19620
|
-
const foundIdx = hyperRoute.chainPair.findIndex(
|
|
19621
|
-
(chain) => isOririnChainEmbarkSupported(chain.chainName)
|
|
19622
|
-
);
|
|
19623
|
-
if (foundIdx !== -1) {
|
|
19624
|
-
originChainIndex = foundIdx;
|
|
19625
|
-
destinationChainIndex = foundIdx === 0 ? 1 : 0;
|
|
19626
|
-
}
|
|
19627
|
-
}
|
|
19628
|
-
setOriginChain(hyperRoute.chainPair[originChainIndex].chainName);
|
|
19629
|
-
setDestinationChain(hyperRoute.chainPair[destinationChainIndex].chainName);
|
|
19630
|
-
setHyperRoute(hyperRoute.routeId);
|
|
19631
|
-
setBridgeStep("select");
|
|
19632
|
-
},
|
|
19633
|
-
children: [
|
|
19634
|
-
/* @__PURE__ */ jsxs85("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
19635
|
-
/* @__PURE__ */ jsx93(RouteIcon, { className: "w-6 h-6" }),
|
|
19636
|
-
/* @__PURE__ */ jsx93("span", { children: hyperRoute.symbol.toUpperCase() })
|
|
19637
|
-
] }),
|
|
19638
|
-
/* @__PURE__ */ jsx93("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: hyperRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ jsxs85(Fragment36, { children: [
|
|
19639
|
-
chIdx > 0 && /* @__PURE__ */ jsx93(ArrowLeftRightIcon, { className: "w-4 h-4" }),
|
|
19640
|
-
/* @__PURE__ */ jsx93(ResolveChainIcon, { chainName: chain.chainName, className: "w-4 h-4" })
|
|
19641
|
-
] }, `${hyperRoute.routeId}-icon-${chain.chainID}-${chIdx}`)) })
|
|
19642
|
-
]
|
|
19643
|
-
},
|
|
19644
|
-
`hyperlane-route-${hyperRoute.id}-${routeIdx}`
|
|
19645
|
-
);
|
|
19646
|
-
}) });
|
|
19647
|
-
}
|
|
19648
|
-
var init_TokenHyperlaneRouteSelector = __esm({
|
|
19649
|
-
"src/internal/components/SendMenu/hyperbridge/components/TokenHyperlaneRouteSelector.tsx"() {
|
|
19650
|
-
init_tokens();
|
|
19651
|
-
init_button();
|
|
19652
|
-
init_ResolveChainIcon();
|
|
19653
|
-
init_useBridgeStore();
|
|
19654
|
-
init_utils8();
|
|
19655
|
-
}
|
|
19656
|
-
});
|
|
19657
|
-
|
|
19658
|
-
// src/clients/bundler/getUserOperationByHash.ts
|
|
19659
|
-
import { bundlerRpc } from "@embarkai/core";
|
|
19660
|
-
import { getChainConfig as getChainConfig8 } from "@embarkai/core/read";
|
|
19661
|
-
async function getUserOperationByHash(userOpHash, chainId) {
|
|
19662
|
-
const targetChainId = chainId ?? requireActiveChainId();
|
|
19663
|
-
const chainConfig = getChainConfig8(targetChainId);
|
|
19664
|
-
if (!chainConfig) {
|
|
19665
|
-
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
19666
|
-
}
|
|
19667
|
-
if (!chainConfig.bundlerUrl) {
|
|
19668
|
-
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
19669
|
-
}
|
|
19670
|
-
if (!userOpHash) {
|
|
19671
|
-
throw new Error("Operation hash is required");
|
|
19672
|
-
}
|
|
19673
|
-
try {
|
|
19674
|
-
const result = await bundlerRpc("eth_getUserOperationByHash", [userOpHash], chainConfig.bundlerUrl);
|
|
19675
|
-
if (!result) {
|
|
19676
|
-
return null;
|
|
19677
|
-
}
|
|
19678
|
-
console.log("[getUserOperationByHash] Receipt:", JSON.stringify(result, null, 2));
|
|
19679
|
-
return {
|
|
19680
|
-
entryPoint: result.entryPoint,
|
|
19681
|
-
userOperation: result.userOperation,
|
|
19682
|
-
transactionHash: result.transactionHash,
|
|
19683
|
-
blockNumber: result.blockNumber,
|
|
19684
|
-
blockHash: result.blockHash
|
|
19685
|
-
};
|
|
19686
|
-
} catch (error) {
|
|
19687
|
-
console.warn("[getUserOperationByHash] Failed to get user operation:", error);
|
|
19688
|
-
return null;
|
|
19689
|
-
}
|
|
19690
|
-
}
|
|
19691
|
-
var init_getUserOperationByHash = __esm({
|
|
19692
|
-
"src/clients/bundler/getUserOperationByHash.ts"() {
|
|
19693
|
-
init_SessionContext();
|
|
19694
|
-
}
|
|
19695
|
-
});
|
|
19696
|
-
|
|
19697
|
-
// src/clients/bundler/getUserOperationReceipt.ts
|
|
19698
|
-
import { bundlerRpc as bundlerRpc2 } from "@embarkai/core";
|
|
19699
|
-
import { getChainConfig as getChainConfig9 } from "@embarkai/core/read";
|
|
19700
|
-
async function getUserOperationReceipt(userOpHash, chainId) {
|
|
19701
|
-
const targetChainId = chainId ?? requireActiveChainId();
|
|
19702
|
-
const chainConfig = getChainConfig9(targetChainId);
|
|
19703
|
-
if (!chainConfig) {
|
|
19704
|
-
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
19705
|
-
}
|
|
19706
|
-
if (!chainConfig.bundlerUrl) {
|
|
19707
|
-
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
19708
|
-
}
|
|
19709
|
-
if (!userOpHash) {
|
|
19710
|
-
throw new Error("Operation hash is required");
|
|
19711
|
-
}
|
|
19712
|
-
try {
|
|
19713
|
-
const result = await bundlerRpc2("eth_getUserOperationReceipt", [userOpHash], chainConfig.bundlerUrl);
|
|
19714
|
-
if (!result) {
|
|
19715
|
-
return null;
|
|
19716
|
-
}
|
|
19717
|
-
console.log("[getUserOperationReceipt] Receipt:", JSON.stringify(result, null, 2));
|
|
19718
|
-
return {
|
|
19719
|
-
userOpHash: result.userOpHash,
|
|
19720
|
-
entryPoint: result.entryPoint,
|
|
19721
|
-
sender: result.sender,
|
|
19722
|
-
nonce: result.nonce,
|
|
19723
|
-
success: result.success,
|
|
19724
|
-
actualGasCost: result.actualGasCost,
|
|
19725
|
-
actualGasUsed: result.actualGasUsed,
|
|
19726
|
-
paymaster: result.paymaster,
|
|
19727
|
-
receipt: result.receipt,
|
|
19728
|
-
logs: result.logs,
|
|
19729
|
-
reason: result.reason
|
|
19730
|
-
};
|
|
19731
|
-
} catch (error) {
|
|
19732
|
-
console.warn("[getUserOperationReceipt] Failed to get receipt:", error);
|
|
19733
|
-
return null;
|
|
19734
|
-
}
|
|
19735
|
-
}
|
|
19736
|
-
var init_getUserOperationReceipt = __esm({
|
|
19737
|
-
"src/clients/bundler/getUserOperationReceipt.ts"() {
|
|
19738
|
-
init_SessionContext();
|
|
19739
|
-
}
|
|
19740
|
-
});
|
|
19741
|
-
|
|
19742
|
-
// src/clients/bundler/waitForUserOperationReceipt.ts
|
|
19743
|
-
async function waitForUserOperationReceipt(userOpHash, options) {
|
|
19744
|
-
const pollIntervalMs = options?.pollIntervalMs ?? 1e3;
|
|
19745
|
-
const maxPollTimeMs = options?.maxPollTimeMs ?? 6e4;
|
|
19746
|
-
const targetChainId = options?.chainId ?? requireActiveChainId();
|
|
19747
|
-
const startTime = Date.now();
|
|
19748
|
-
while (true) {
|
|
19749
|
-
const elapsed = Date.now() - startTime;
|
|
19750
|
-
if (elapsed >= maxPollTimeMs) {
|
|
19751
|
-
throw new UserOperationTimeoutError(userOpHash, targetChainId, maxPollTimeMs);
|
|
19752
|
-
}
|
|
19753
|
-
const receipt = await getUserOperationReceipt(userOpHash, targetChainId);
|
|
19754
|
-
if (receipt) {
|
|
19755
|
-
return receipt;
|
|
19756
|
-
}
|
|
19757
|
-
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
19758
|
-
}
|
|
19759
|
-
}
|
|
19760
|
-
var UserOperationTimeoutError;
|
|
19761
|
-
var init_waitForUserOperationReceipt = __esm({
|
|
19762
|
-
"src/clients/bundler/waitForUserOperationReceipt.ts"() {
|
|
19763
|
-
init_SessionContext();
|
|
19764
|
-
init_getUserOperationReceipt();
|
|
19765
|
-
UserOperationTimeoutError = class extends Error {
|
|
19766
|
-
constructor(userOpHash, chainId, timeoutMs) {
|
|
19767
|
-
super(`Timeout waiting for UserOperation receipt after ${timeoutMs}ms (hash: ${userOpHash}, chainId: ${chainId})`);
|
|
19768
|
-
this.name = "UserOperationTimeoutError";
|
|
19769
|
-
this.userOpHash = userOpHash;
|
|
19770
|
-
this.chainId = chainId;
|
|
19771
|
-
this.timeoutMs = timeoutMs;
|
|
19772
|
-
}
|
|
19773
|
-
};
|
|
19774
|
-
}
|
|
19775
|
-
});
|
|
19776
|
-
|
|
19777
|
-
// src/clients/bundler/index.ts
|
|
19778
|
-
var init_bundler = __esm({
|
|
19779
|
-
"src/clients/bundler/index.ts"() {
|
|
19780
|
-
init_getUserOperationByHash();
|
|
19781
|
-
init_getUserOperationReceipt();
|
|
19782
|
-
init_waitForUserOperationReceipt();
|
|
19783
|
-
}
|
|
19784
|
-
});
|
|
19785
|
-
|
|
19786
|
-
// src/clients/index.ts
|
|
19787
|
-
var init_clients2 = __esm({
|
|
19788
|
-
"src/clients/index.ts"() {
|
|
19789
|
-
init_bundler();
|
|
19790
|
-
}
|
|
19791
|
-
});
|
|
19792
|
-
|
|
19793
19561
|
// src/internal/components/SendMenu/hyperbridge/api.ts
|
|
19794
19562
|
function iframe3() {
|
|
19795
19563
|
const accessToken = jwtTokenManager2.getAccessToken();
|
|
@@ -19809,6 +19577,9 @@ async function estimateHyperlaneQuote(payload) {
|
|
|
19809
19577
|
accessToken,
|
|
19810
19578
|
payload
|
|
19811
19579
|
});
|
|
19580
|
+
if ("error" in quote && "message" in quote) {
|
|
19581
|
+
throw new Error(quote.message);
|
|
19582
|
+
}
|
|
19812
19583
|
return quote;
|
|
19813
19584
|
}
|
|
19814
19585
|
async function bridgeHyperlaneAsset(payload) {
|
|
@@ -19820,7 +19591,6 @@ async function bridgeHyperlaneAsset(payload) {
|
|
|
19820
19591
|
return response;
|
|
19821
19592
|
}
|
|
19822
19593
|
async function getHyperlaneBridgeHistory(payload) {
|
|
19823
|
-
const { page, pageSize } = payload || {};
|
|
19824
19594
|
const { iframeManager, accessToken } = iframe3();
|
|
19825
19595
|
const history = await iframeManager.sendMessage("HYPERLANE_TRANSACTIONS_HISTORY_QUERY", {
|
|
19826
19596
|
accessToken,
|
|
@@ -19828,25 +19598,33 @@ async function getHyperlaneBridgeHistory(payload) {
|
|
|
19828
19598
|
});
|
|
19829
19599
|
return history;
|
|
19830
19600
|
}
|
|
19831
|
-
var
|
|
19601
|
+
var patchInitiatedBridgeTxStatus, patchInitiatedBridgeTxOpHashes;
|
|
19832
19602
|
var init_api4 = __esm({
|
|
19833
19603
|
"src/internal/components/SendMenu/hyperbridge/api.ts"() {
|
|
19834
19604
|
init_auth();
|
|
19835
19605
|
init_iframe_manager();
|
|
19836
|
-
|
|
19606
|
+
patchInitiatedBridgeTxStatus = async (payload) => {
|
|
19607
|
+
const { iframeManager, accessToken } = iframe3();
|
|
19608
|
+
const response = await iframeManager.sendMessage("HYPERLANE_PATCH_TRANSACTION_STATUS_QUERY", {
|
|
19609
|
+
accessToken,
|
|
19610
|
+
payload
|
|
19611
|
+
});
|
|
19612
|
+
return response;
|
|
19613
|
+
};
|
|
19614
|
+
patchInitiatedBridgeTxOpHashes = async (payload) => {
|
|
19837
19615
|
const { iframeManager, accessToken } = iframe3();
|
|
19838
|
-
const
|
|
19616
|
+
const response = await iframeManager.sendMessage("HYPERLANE_PATCH_TRANSACTION_OP_HASHES_QUERY", {
|
|
19839
19617
|
accessToken,
|
|
19840
19618
|
payload
|
|
19841
19619
|
});
|
|
19842
|
-
return
|
|
19620
|
+
return response;
|
|
19843
19621
|
};
|
|
19844
19622
|
}
|
|
19845
19623
|
});
|
|
19846
19624
|
|
|
19847
19625
|
// src/internal/components/SendMenu/hyperbridge/lib/executeWarpTxs.ts
|
|
19848
19626
|
import { createPublicClient, http as http2 } from "viem";
|
|
19849
|
-
async function executeWarpTransactions(
|
|
19627
|
+
async function executeWarpTransactions(txs, walletClient) {
|
|
19850
19628
|
const originChain = useBridgeStore.getState().originChain;
|
|
19851
19629
|
const session = useSession.getState().session;
|
|
19852
19630
|
const bridgeSender = useBridgeStore.getState().bridgeSender;
|
|
@@ -19901,12 +19679,8 @@ async function executeWarpTransactions(bridgeTxId, txs, walletClient) {
|
|
|
19901
19679
|
}
|
|
19902
19680
|
}
|
|
19903
19681
|
if (errorsStack.length > 0) {
|
|
19904
|
-
console.error("[HYPERLANE] Errors occurred during transaction execution:"
|
|
19905
|
-
|
|
19906
|
-
txId: bridgeTxId,
|
|
19907
|
-
txStatus: "REJECTED",
|
|
19908
|
-
txHashes: hashes
|
|
19909
|
-
});
|
|
19682
|
+
console.error("[HYPERLANE] Errors occurred during transaction execution:");
|
|
19683
|
+
console.table(errorsStack.map((e) => e.message));
|
|
19910
19684
|
}
|
|
19911
19685
|
return hashes;
|
|
19912
19686
|
}
|
|
@@ -19914,62 +19688,52 @@ var init_executeWarpTxs = __esm({
|
|
|
19914
19688
|
"src/internal/components/SendMenu/hyperbridge/lib/executeWarpTxs.ts"() {
|
|
19915
19689
|
init_SessionContext();
|
|
19916
19690
|
init_account2();
|
|
19917
|
-
init_api4();
|
|
19918
19691
|
init_useBridgeStore();
|
|
19919
19692
|
init_chains();
|
|
19920
19693
|
}
|
|
19921
19694
|
});
|
|
19922
19695
|
|
|
19923
|
-
// src/internal/components/SendMenu/hyperbridge/
|
|
19924
|
-
import {
|
|
19925
|
-
|
|
19926
|
-
|
|
19927
|
-
|
|
19928
|
-
const page = useLayoutDataStore((st) => st.page);
|
|
19929
|
-
const flow = useFlowSelectorStore((st) => st.flow);
|
|
19930
|
-
const [currentPage, setCurrentPage] = useState26(1);
|
|
19931
|
-
const query = useQuery20({
|
|
19932
|
-
retry: false,
|
|
19933
|
-
enabled: !!address && page === "send" /* SEND */ && flow === "bridge",
|
|
19934
|
-
queryKey: [HYPERLANE_HISTORY_QUERY_KEY, address, currentPage],
|
|
19935
|
-
queryFn: async () => await getHyperlaneBridgeHistory({ page: currentPage, pageSize: TX_HISTORY_PAGE_SIZE })
|
|
19936
|
-
});
|
|
19937
|
-
return {
|
|
19938
|
-
...query,
|
|
19939
|
-
currentPage,
|
|
19940
|
-
setCurrentPage
|
|
19941
|
-
};
|
|
19696
|
+
// src/internal/components/SendMenu/hyperbridge/utils.ts
|
|
19697
|
+
import { formatUnits as formatUnits6 } from "viem";
|
|
19698
|
+
function isNftAsset2(asset) {
|
|
19699
|
+
if (!asset) return false;
|
|
19700
|
+
return asset.type === "erc721" || asset.type === "erc1155";
|
|
19942
19701
|
}
|
|
19943
|
-
|
|
19944
|
-
|
|
19945
|
-
|
|
19946
|
-
|
|
19947
|
-
|
|
19948
|
-
|
|
19949
|
-
|
|
19950
|
-
|
|
19951
|
-
|
|
19952
|
-
|
|
19953
|
-
|
|
19954
|
-
|
|
19955
|
-
|
|
19956
|
-
|
|
19957
|
-
|
|
19958
|
-
|
|
19702
|
+
function getAssetBalance(asset) {
|
|
19703
|
+
if (!asset) return 0;
|
|
19704
|
+
if (isNftAsset2(asset)) return 1;
|
|
19705
|
+
return Number(formatUnits6(BigInt(asset.balance || "0"), asset.decimals || 18));
|
|
19706
|
+
}
|
|
19707
|
+
function isOririnChainEmbarkSupported(originChain) {
|
|
19708
|
+
const supportedChain = NETWORK_OPTIONS.map((c) => c.chainId);
|
|
19709
|
+
return supportedChain.includes(CHAINS_UI_META[originChain].chainID);
|
|
19710
|
+
}
|
|
19711
|
+
var init_utils8 = __esm({
|
|
19712
|
+
"src/internal/components/SendMenu/hyperbridge/utils.ts"() {
|
|
19713
|
+
init_networks3();
|
|
19714
|
+
init_chains();
|
|
19715
|
+
}
|
|
19716
|
+
});
|
|
19717
|
+
|
|
19718
|
+
// src/internal/components/SendMenu/hyperbridge/hooks/useOperationHashesStore.ts
|
|
19719
|
+
import { create as create9 } from "zustand";
|
|
19720
|
+
var useOperationHashesStore;
|
|
19721
|
+
var init_useOperationHashesStore = __esm({
|
|
19959
19722
|
"src/internal/components/SendMenu/hyperbridge/hooks/useOperationHashesStore.ts"() {
|
|
19960
|
-
useOperationHashesStore = create9(
|
|
19723
|
+
useOperationHashesStore = create9((set) => ({
|
|
19724
|
+
hyperlaneDatabaseTx: null,
|
|
19961
19725
|
operationHashes: [],
|
|
19962
|
-
|
|
19726
|
+
setHyperlaneDatabaseTx: (hyperlaneDatabaseTx) => set({ hyperlaneDatabaseTx }),
|
|
19727
|
+
setOperationHashes: (operationHashes) => set({ operationHashes })
|
|
19963
19728
|
}));
|
|
19964
19729
|
}
|
|
19965
19730
|
});
|
|
19966
19731
|
|
|
19967
19732
|
// src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts
|
|
19968
|
-
import { useMutation as useMutation19
|
|
19733
|
+
import { useMutation as useMutation19 } from "@tanstack/react-query";
|
|
19969
19734
|
import { useCallback as useCallback22 } from "react";
|
|
19970
19735
|
import { useSwitchChain, useWalletClient } from "wagmi";
|
|
19971
19736
|
function useBridge() {
|
|
19972
|
-
const qc = useQueryClient23();
|
|
19973
19737
|
const { t } = useT();
|
|
19974
19738
|
const address = useSession((st) => st.address);
|
|
19975
19739
|
const { data: walletClient } = useWalletClient();
|
|
@@ -20066,8 +19830,7 @@ function useBridge() {
|
|
|
20066
19830
|
amount,
|
|
20067
19831
|
quote,
|
|
20068
19832
|
recipient,
|
|
20069
|
-
setBridgeTxStatus
|
|
20070
|
-
setLastTxHashes
|
|
19833
|
+
setBridgeTxStatus
|
|
20071
19834
|
} = useBridgeStore.getState();
|
|
20072
19835
|
const bridgeSender = useBridgeStore.getState().bridgeSenders.find((s) => s.type === useBridgeStore.getState().bridgeSender);
|
|
20073
19836
|
const embarkChainId = useSession.getState().activeChainId;
|
|
@@ -20078,7 +19841,9 @@ function useBridge() {
|
|
|
20078
19841
|
case "direct-wallet":
|
|
20079
19842
|
if (directWalletChainId !== CHAINS_UI_META[originChain].chainID) {
|
|
20080
19843
|
console.log("[HYPERLANE SDK] External wallet on wrong chain:", directWalletChainId, "; switching...");
|
|
20081
|
-
switchChainAsync({ chainId: CHAINS_UI_META[originChain].chainID }).
|
|
19844
|
+
await switchChainAsync({ chainId: CHAINS_UI_META[originChain].chainID }).then(() => {
|
|
19845
|
+
console.log("[HYPERLANE SDK] External wallet chain switched to:", CHAINS_UI_META[originChain].chainID);
|
|
19846
|
+
}).catch((err) => {
|
|
20082
19847
|
useFlowSelectorStore.getState().setError(
|
|
20083
19848
|
`Failed switch ${directWalletConnectorName} to ${CHAINS_UI_META[originChain].chainLabel}
|
|
20084
19849
|
${err?.message || "Failed to switch to the correct network"}`
|
|
@@ -20097,9 +19862,9 @@ function useBridge() {
|
|
|
20097
19862
|
useFlowSelectorStore.getState().setError(null);
|
|
20098
19863
|
useOperationHashesStore.getState().setOperationHashes([]);
|
|
20099
19864
|
setBridgeTxStatus(null);
|
|
20100
|
-
setLastTxHashes([]);
|
|
20101
19865
|
setBridgeTxStatus(t("passport:bridgeMenu.statuses.txPrepare"));
|
|
20102
19866
|
const { txs: warpTxs, hyperlaneDbTx } = await bridgeHyperlaneAsset({
|
|
19867
|
+
txSender: bridgeSender.type === "embarkai-wallet" ? "EMBARKAI_WALLET" : "EXTERNAL_WALLET",
|
|
20103
19868
|
warpRouteId: hyperRoute,
|
|
20104
19869
|
address: bridgeSender.address,
|
|
20105
19870
|
originChain,
|
|
@@ -20108,54 +19873,37 @@ function useBridge() {
|
|
|
20108
19873
|
amountToBridge: amount,
|
|
20109
19874
|
quote
|
|
20110
19875
|
});
|
|
19876
|
+
useOperationHashesStore.getState().setHyperlaneDatabaseTx(hyperlaneDbTx);
|
|
20111
19877
|
const operationHashes = await executeWarpTransactions(
|
|
20112
|
-
hyperlaneDbTx.id,
|
|
20113
19878
|
warpTxs,
|
|
20114
19879
|
bridgeSender.type === "direct-wallet" ? walletClient : null
|
|
20115
|
-
)
|
|
20116
|
-
|
|
20117
|
-
|
|
20118
|
-
|
|
20119
|
-
|
|
20120
|
-
|
|
20121
|
-
operationHashes.map(async (opHash) => {
|
|
20122
|
-
switch (bridgeSender.type) {
|
|
20123
|
-
case "embarkai-wallet":
|
|
20124
|
-
return await waitForUserOperationReceipt(opHash, {
|
|
20125
|
-
chainId: CHAINS_UI_META[originChain].chainID
|
|
20126
|
-
}).then((d) => d.receipt.transactionHash);
|
|
20127
|
-
case "direct-wallet":
|
|
20128
|
-
return null;
|
|
20129
|
-
}
|
|
20130
|
-
})
|
|
20131
|
-
).then(async (txHashes) => {
|
|
20132
|
-
const filteredTxHashes = txHashes.filter((hash) => hash !== null);
|
|
20133
|
-
console.log("[HYPERLANE SDK] txHashes received, patching...", hyperlaneDbTx.id, filteredTxHashes);
|
|
20134
|
-
setLastTxHashes(filteredTxHashes);
|
|
20135
|
-
await patchInitiatedBridgeTx({
|
|
20136
|
-
txId: hyperlaneDbTx.id,
|
|
20137
|
-
txStatus: "SENT",
|
|
20138
|
-
txHashes: filteredTxHashes
|
|
20139
|
-
});
|
|
20140
|
-
await qc.invalidateQueries({ queryKey: [HYPERLANE_HISTORY_QUERY_KEY, address, 1] });
|
|
20141
|
-
useFlowSelectorStore.getState().setRenderKey(`bridge-txHashes-patched-${Date.now()}`);
|
|
20142
|
-
}).catch((error) => {
|
|
20143
|
-
console.error("[HYPERLANE SDK] Error while waiting for transaction receipts & patching DB:", error?.message);
|
|
20144
|
-
});
|
|
19880
|
+
);
|
|
19881
|
+
await Promise.all([
|
|
19882
|
+
patchInitiatedBridgeTxOpHashes({ txId: hyperlaneDbTx.id, txOpHashes: operationHashes }),
|
|
19883
|
+
patchInitiatedBridgeTxStatus({ txId: hyperlaneDbTx.id, txStatus: "SENDING" })
|
|
19884
|
+
]);
|
|
19885
|
+
return operationHashes;
|
|
20145
19886
|
},
|
|
20146
|
-
onSuccess: () => {
|
|
19887
|
+
onSuccess: (operationHashes) => {
|
|
20147
19888
|
const { setBridgeStep, setBridgeTxStatus, destinationChain } = useBridgeStore.getState();
|
|
20148
19889
|
setBridgeTxStatus(
|
|
20149
19890
|
// @ts-expect-error i18n typing
|
|
20150
19891
|
t("passport:bridgeMenu.statuses.txSent", { destination: destinationChain })
|
|
20151
19892
|
);
|
|
19893
|
+
useOperationHashesStore.getState().setOperationHashes(operationHashes);
|
|
20152
19894
|
useLayoutStore.getState().setIsDialogForced(false);
|
|
20153
19895
|
useFlowSelectorStore.getState().setIsUiLocked(false);
|
|
20154
19896
|
setBridgeStep("success");
|
|
20155
19897
|
},
|
|
20156
19898
|
onError: (error) => {
|
|
20157
|
-
console.error("[HYPERLANE SDK] Bridge execution error", error);
|
|
20158
19899
|
const { setBridgeTxStatus } = useBridgeStore.getState();
|
|
19900
|
+
console.error("[HYPERLANE SDK] Bridge execution error", error);
|
|
19901
|
+
const hyperlaneDbTx = useOperationHashesStore.getState().hyperlaneDatabaseTx;
|
|
19902
|
+
if (hyperlaneDbTx?.id) {
|
|
19903
|
+
patchInitiatedBridgeTxStatus({ txId: hyperlaneDbTx.id, txStatus: "REJECTED" }).then(({ ok }) => {
|
|
19904
|
+
console.log("[HYPERLANE SDK] initiated tx patched as REJECTED: ", hyperlaneDbTx.id, "ok: ", ok);
|
|
19905
|
+
});
|
|
19906
|
+
}
|
|
20159
19907
|
setBridgeTxStatus(null);
|
|
20160
19908
|
useLayoutStore.getState().setIsDialogForced(false);
|
|
20161
19909
|
useFlowSelectorStore.getState().setIsUiLocked(false);
|
|
@@ -20171,7 +19919,6 @@ function useBridge() {
|
|
|
20171
19919
|
}
|
|
20172
19920
|
var init_useBridge = __esm({
|
|
20173
19921
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts"() {
|
|
20174
|
-
init_clients2();
|
|
20175
19922
|
init_SessionContext();
|
|
20176
19923
|
init_i18n();
|
|
20177
19924
|
init_useExternalWalletStore();
|
|
@@ -20182,13 +19929,12 @@ var init_useBridge = __esm({
|
|
|
20182
19929
|
init_executeWarpTxs();
|
|
20183
19930
|
init_useBridgeStore();
|
|
20184
19931
|
init_utils8();
|
|
20185
|
-
init_useHyperlaneHistory();
|
|
20186
19932
|
init_useOperationHashesStore();
|
|
20187
19933
|
}
|
|
20188
19934
|
});
|
|
20189
19935
|
|
|
20190
19936
|
// src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneRoutes.ts
|
|
20191
|
-
import { useQuery as
|
|
19937
|
+
import { useQuery as useQuery20 } from "@tanstack/react-query";
|
|
20192
19938
|
import { useEffect as useEffect36 } from "react";
|
|
20193
19939
|
function useHyperlaneRoutes() {
|
|
20194
19940
|
const address = useSession((st) => st.address);
|
|
@@ -20199,7 +19945,7 @@ function useHyperlaneRoutes() {
|
|
|
20199
19945
|
data: hyperlaneWarpRoutes = [],
|
|
20200
19946
|
isLoading: isLoadingWarpRoutes,
|
|
20201
19947
|
error: errorWarpRoutes
|
|
20202
|
-
} =
|
|
19948
|
+
} = useQuery20({
|
|
20203
19949
|
retry: false,
|
|
20204
19950
|
enabled: !!address && page === "send" /* SEND */ && flow === "bridge",
|
|
20205
19951
|
queryKey: [HYPERLANE_WARP_ROUTES_QUERY_KEY, address],
|
|
@@ -20252,7 +19998,7 @@ import { useEffect as useEffect37 } from "react";
|
|
|
20252
19998
|
function useMenuTitle(warpRoutes) {
|
|
20253
19999
|
const { t } = useT();
|
|
20254
20000
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
20255
|
-
const hyperRouteMeta = useBridgeStore((st) => (warpRoutes || [])
|
|
20001
|
+
const hyperRouteMeta = useBridgeStore((st) => (warpRoutes || [])?.find((route) => route.routeId === st.hyperRoute)) || null;
|
|
20256
20002
|
useEffect37(() => {
|
|
20257
20003
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
20258
20004
|
switch (true) {
|
|
@@ -20260,7 +20006,7 @@ function useMenuTitle(warpRoutes) {
|
|
|
20260
20006
|
updateMenuTitle(t("passport:bridgeMenu.labels.sender"));
|
|
20261
20007
|
break;
|
|
20262
20008
|
case bridgeStep === "select-token":
|
|
20263
|
-
updateMenuTitle(t("passport:bridgeMenu.labels.
|
|
20009
|
+
updateMenuTitle(t("passport:bridgeMenu.labels.selectTokenAndRoute"));
|
|
20264
20010
|
break;
|
|
20265
20011
|
case bridgeStep === "confirm":
|
|
20266
20012
|
updateMenuTitle(t("passport:bridgeMenu.labels.confirm"));
|
|
@@ -20289,11 +20035,24 @@ var init_useMenuTitle = __esm({
|
|
|
20289
20035
|
}
|
|
20290
20036
|
});
|
|
20291
20037
|
|
|
20038
|
+
// src/internal/components/SendMenu/hyperbridge/components/ResolveChainIcon.tsx
|
|
20039
|
+
import { jsx as jsx92 } from "react/jsx-runtime";
|
|
20040
|
+
function ResolveChainIcon(props) {
|
|
20041
|
+
const Icon2 = CHAINS_UI_META[props.chainName]?.Icon || TOKENS_ICONS.EMBARKAI;
|
|
20042
|
+
return /* @__PURE__ */ jsx92(Icon2, { className: props.className || "w-4 h-4" });
|
|
20043
|
+
}
|
|
20044
|
+
var init_ResolveChainIcon = __esm({
|
|
20045
|
+
"src/internal/components/SendMenu/hyperbridge/components/ResolveChainIcon.tsx"() {
|
|
20046
|
+
init_tokens();
|
|
20047
|
+
init_chains();
|
|
20048
|
+
}
|
|
20049
|
+
});
|
|
20050
|
+
|
|
20292
20051
|
// src/internal/assets/wallets/MetaMaskIcon.tsx
|
|
20293
|
-
import { jsx as
|
|
20052
|
+
import { jsx as jsx93, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
20294
20053
|
function MetaMaskIcon(props) {
|
|
20295
20054
|
const { width = "24", height = "24", ...svgProps } = props;
|
|
20296
|
-
return /* @__PURE__ */
|
|
20055
|
+
return /* @__PURE__ */ jsxs85(
|
|
20297
20056
|
"svg",
|
|
20298
20057
|
{
|
|
20299
20058
|
...svgProps,
|
|
@@ -20307,49 +20066,49 @@ function MetaMaskIcon(props) {
|
|
|
20307
20066
|
viewBox: "0 0 142 136.878",
|
|
20308
20067
|
xmlSpace: "preserve",
|
|
20309
20068
|
children: [
|
|
20310
|
-
/* @__PURE__ */
|
|
20069
|
+
/* @__PURE__ */ jsx93(
|
|
20311
20070
|
"path",
|
|
20312
20071
|
{
|
|
20313
20072
|
fill: "#FF5C16",
|
|
20314
20073
|
d: "M132.682,132.192l-30.583-9.106l-23.063,13.787l-16.092-0.007l-23.077-13.78l-30.569,9.106L0,100.801\n l9.299-34.839L0,36.507L9.299,0l47.766,28.538h27.85L132.682,0l9.299,36.507l-9.299,29.455l9.299,34.839L132.682,132.192\n L132.682,132.192z"
|
|
20315
20074
|
}
|
|
20316
20075
|
),
|
|
20317
|
-
/* @__PURE__ */
|
|
20076
|
+
/* @__PURE__ */ jsx93(
|
|
20318
20077
|
"path",
|
|
20319
20078
|
{
|
|
20320
20079
|
fill: "#FF5C16",
|
|
20321
20080
|
d: "M9.305,0l47.767,28.558l-1.899,19.599L9.305,0z M39.875,100.814l21.017,16.01l-21.017,6.261\n C39.875,123.085,39.875,100.814,39.875,100.814z M59.212,74.345l-4.039-26.174L29.317,65.97l-0.014-0.007v0.013l0.08,18.321\n l10.485-9.951L59.212,74.345L59.212,74.345z M132.682,0L84.915,28.558l1.893,19.599L132.682,0z M102.113,100.814l-21.018,16.01\n l21.018,6.261V100.814z M112.678,65.975h0.007H112.678v-0.013l-0.006,0.007L86.815,48.171l-4.039,26.174h19.336l10.492,9.95\n C112.604,84.295,112.678,65.975,112.678,65.975z"
|
|
20322
20081
|
}
|
|
20323
20082
|
),
|
|
20324
|
-
/* @__PURE__ */
|
|
20083
|
+
/* @__PURE__ */ jsx93(
|
|
20325
20084
|
"path",
|
|
20326
20085
|
{
|
|
20327
20086
|
fill: "#E34807",
|
|
20328
20087
|
d: "M39.868,123.085l-30.569,9.106L0,100.814h39.868C39.868,100.814,39.868,123.085,39.868,123.085z\n M59.205,74.338l5.839,37.84l-8.093-21.04L29.37,84.295l10.491-9.956h19.344L59.205,74.338z M102.112,123.085l30.57,9.106\n l9.299-31.378h-39.869C102.112,100.814,102.112,123.085,102.112,123.085z M82.776,74.338l-5.839,37.84l8.092-21.04l27.583-6.843\n l-10.498-9.956H82.776V74.338z"
|
|
20329
20088
|
}
|
|
20330
20089
|
),
|
|
20331
|
-
/* @__PURE__ */
|
|
20090
|
+
/* @__PURE__ */ jsx93(
|
|
20332
20091
|
"path",
|
|
20333
20092
|
{
|
|
20334
20093
|
fill: "#FF8D5D",
|
|
20335
20094
|
d: "M0,100.801l9.299-34.839h19.997l0.073,18.327l27.584,6.843l8.092,21.039l-4.16,4.633l-21.017-16.01H0\n V100.801z M141.981,100.801l-9.299-34.839h-19.998l-0.073,18.327l-27.582,6.843l-8.093,21.039l4.159,4.633l21.018-16.01h39.868\n V100.801z M84.915,28.538h-27.85l-1.891,19.599l9.872,64.013h11.891l9.878-64.013L84.915,28.538z"
|
|
20336
20095
|
}
|
|
20337
20096
|
),
|
|
20338
|
-
/* @__PURE__ */
|
|
20097
|
+
/* @__PURE__ */ jsx93(
|
|
20339
20098
|
"path",
|
|
20340
20099
|
{
|
|
20341
20100
|
fill: "#661800",
|
|
20342
20101
|
d: "M9.299,0L0,36.507l9.299,29.455h19.997l25.87-17.804L9.299,0z M53.426,81.938h-9.059l-4.932,4.835\n l17.524,4.344l-3.533-9.186V81.938z M132.682,0l9.299,36.507l-9.299,29.455h-19.998L86.815,48.158L132.682,0z M88.568,81.938h9.072\n l4.932,4.841l-17.544,4.353l3.54-9.201V81.938z M79.029,124.385l2.067-7.567l-4.16-4.633h-11.9l-4.159,4.633l2.066,7.567"
|
|
20343
20102
|
}
|
|
20344
20103
|
),
|
|
20345
|
-
/* @__PURE__ */
|
|
20104
|
+
/* @__PURE__ */ jsx93(
|
|
20346
20105
|
"path",
|
|
20347
20106
|
{
|
|
20348
20107
|
fill: "#C0C4CD",
|
|
20349
20108
|
d: "M79.029,124.384v12.495H62.945v-12.495L79.029,124.384L79.029,124.384z"
|
|
20350
20109
|
}
|
|
20351
20110
|
),
|
|
20352
|
-
/* @__PURE__ */
|
|
20111
|
+
/* @__PURE__ */ jsx93(
|
|
20353
20112
|
"path",
|
|
20354
20113
|
{
|
|
20355
20114
|
fill: "#E7EBF6",
|
|
@@ -20365,13 +20124,16 @@ var init_MetaMaskIcon = __esm({
|
|
|
20365
20124
|
}
|
|
20366
20125
|
});
|
|
20367
20126
|
|
|
20368
|
-
// src/internal/assets/wallets/index.
|
|
20127
|
+
// src/internal/assets/wallets/index.tsx
|
|
20128
|
+
import { Wallet2Icon } from "lucide-react";
|
|
20129
|
+
import { jsx as jsx94 } from "react/jsx-runtime";
|
|
20369
20130
|
var WALLET_ICONS;
|
|
20370
20131
|
var init_wallets = __esm({
|
|
20371
|
-
"src/internal/assets/wallets/index.
|
|
20132
|
+
"src/internal/assets/wallets/index.tsx"() {
|
|
20372
20133
|
init_MetaMaskIcon();
|
|
20373
20134
|
WALLET_ICONS = {
|
|
20374
|
-
metamask: MetaMaskIcon
|
|
20135
|
+
metamask: MetaMaskIcon,
|
|
20136
|
+
default: (props) => /* @__PURE__ */ jsx94(Wallet2Icon, { ...props })
|
|
20375
20137
|
};
|
|
20376
20138
|
}
|
|
20377
20139
|
});
|
|
@@ -20388,7 +20150,7 @@ function useAvailableSenders() {
|
|
|
20388
20150
|
const sendersAccumulator = [
|
|
20389
20151
|
{
|
|
20390
20152
|
type: "embarkai-wallet",
|
|
20391
|
-
name: "
|
|
20153
|
+
name: "embarkAI",
|
|
20392
20154
|
chainId: activeChainId,
|
|
20393
20155
|
address,
|
|
20394
20156
|
Icon: TOKENS_ICONS["EMBARKAI"]
|
|
@@ -20401,7 +20163,7 @@ function useAvailableSenders() {
|
|
|
20401
20163
|
name: wProfile?.meta?.walletName || "External wallet",
|
|
20402
20164
|
chainId: null,
|
|
20403
20165
|
address: wProfile?.externalId,
|
|
20404
|
-
Icon: WALLET_ICONS[wProfile?.meta?.walletName?.toLowerCase()] ||
|
|
20166
|
+
Icon: WALLET_ICONS[wProfile?.meta?.walletName?.toLowerCase()] || WALLET_ICONS["default"]
|
|
20405
20167
|
});
|
|
20406
20168
|
});
|
|
20407
20169
|
}
|
|
@@ -20425,12 +20187,12 @@ var init_useAvailableSenders = __esm({
|
|
|
20425
20187
|
});
|
|
20426
20188
|
|
|
20427
20189
|
// src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts
|
|
20428
|
-
import { useQuery as
|
|
20190
|
+
import { useQuery as useQuery21, useQueryClient as useQueryClient23 } from "@tanstack/react-query";
|
|
20429
20191
|
import { useCallback as useCallback23, useEffect as useEffect39 } from "react";
|
|
20430
20192
|
import { createPublicClient as createPublicClient2, erc20Abi as erc20Abi2, formatUnits as formatUnits7, http as http3 } from "viem";
|
|
20431
20193
|
import { useBalance, useSwitchChain as useSwitchChain2 } from "wagmi";
|
|
20432
20194
|
function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
20433
|
-
const qc =
|
|
20195
|
+
const qc = useQueryClient23();
|
|
20434
20196
|
const { t } = useT();
|
|
20435
20197
|
const address = useSession((st) => st.address);
|
|
20436
20198
|
const directWalletAddress = useExternalWalletStore((st) => st.externalAddress);
|
|
@@ -20440,12 +20202,12 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
|
20440
20202
|
const bridgeSender = useBridgeStore((st) => st.bridgeSender);
|
|
20441
20203
|
const originChain = useBridgeStore((st) => st.originChain);
|
|
20442
20204
|
const isEmbarkSender = bridgeSender === "embarkai-wallet";
|
|
20443
|
-
const selectedWarpRoute = hyperlaneWarpRoutes.find((route) => {
|
|
20205
|
+
const selectedWarpRoute = hyperlaneWarpRoutes.length > 0 ? hyperlaneWarpRoutes.find((route) => {
|
|
20444
20206
|
const { routeId, chainPair } = route;
|
|
20445
20207
|
const chainPairNames = chainPair.map((c) => c.chainName);
|
|
20446
20208
|
return routeId === hyperRoute && chainPairNames.includes(useBridgeStore.getState().originChain) && chainPairNames.includes(useBridgeStore.getState().destinationChain);
|
|
20447
|
-
});
|
|
20448
|
-
const routeTokenAddress = selectedWarpRoute?.chainPair.find((c) => c.chainName === originChain)?.routeTokenAddress;
|
|
20209
|
+
}) : null;
|
|
20210
|
+
const routeTokenAddress = selectedWarpRoute?.chainPair.find((c) => c.chainName === originChain)?.routeTokenAddress || null;
|
|
20449
20211
|
const {
|
|
20450
20212
|
assets = [],
|
|
20451
20213
|
refreshBalances,
|
|
@@ -20456,8 +20218,8 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
|
20456
20218
|
});
|
|
20457
20219
|
const embarkTokenBalanace = assets.find((a) => a.symbol === selectedWarpRoute?.symbol);
|
|
20458
20220
|
const originChainMeta = CHAINS_UI_META[originChain];
|
|
20459
|
-
const isSelectedTokenNative = selectedWarpRoute?.symbol?.toUpperCase() === originChainMeta
|
|
20460
|
-
const { data: externalBalanceData, isLoading: isExternalBalanceLoading } =
|
|
20221
|
+
const isSelectedTokenNative = selectedWarpRoute?.symbol?.toUpperCase() === originChainMeta?.chain?.nativeCurrency?.symbol?.toUpperCase();
|
|
20222
|
+
const { data: externalBalanceData, isLoading: isExternalBalanceLoading } = useQuery21({
|
|
20461
20223
|
enabled: bridgeSender === "direct-wallet" && !isSelectedTokenNative && !!directWalletAddress && !!routeTokenAddress && !!originChain,
|
|
20462
20224
|
retry: false,
|
|
20463
20225
|
queryKey: [EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, originChain, directWalletAddress, routeTokenAddress],
|
|
@@ -20573,9 +20335,9 @@ var init_useBridgeBalance = __esm({
|
|
|
20573
20335
|
});
|
|
20574
20336
|
|
|
20575
20337
|
// src/internal/components/SendMenu/hyperbridge/steps/SelectStep.tsx
|
|
20576
|
-
import { ArrowLeftRightIcon
|
|
20577
|
-
import { Fragment as
|
|
20578
|
-
import { Fragment as
|
|
20338
|
+
import { ArrowLeftRightIcon, ArrowRightLeftIcon, LoaderIcon as LoaderIcon10, Wallet2Icon as Wallet2Icon2, XIcon } from "lucide-react";
|
|
20339
|
+
import { Fragment as Fragment36 } from "react";
|
|
20340
|
+
import { Fragment as Fragment37, jsx as jsx95, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
20579
20341
|
function SelectStep(props) {
|
|
20580
20342
|
const { swapChains, hyperlaneWarpRoutes, isLoadingWarpRoutes, handleQuoteEstimation } = props;
|
|
20581
20343
|
const { t } = useT();
|
|
@@ -20584,7 +20346,7 @@ function SelectStep(props) {
|
|
|
20584
20346
|
destinationChain,
|
|
20585
20347
|
hyperRoute,
|
|
20586
20348
|
amount,
|
|
20587
|
-
bridgeSenders,
|
|
20349
|
+
// bridgeSenders,
|
|
20588
20350
|
isQuoteEstimating,
|
|
20589
20351
|
recipient,
|
|
20590
20352
|
setBridgeStep,
|
|
@@ -20604,63 +20366,61 @@ function SelectStep(props) {
|
|
|
20604
20366
|
if (isLoadingWarpRoutes) {
|
|
20605
20367
|
return /* @__PURE__ */ jsx95("div", { className: "w-full flex items-center justify-center p-[var(--ui-kit-pd)]", children: /* @__PURE__ */ jsx95(LoaderIcon10, { className: "w-4 h-4 animate-spin" }) });
|
|
20606
20368
|
}
|
|
20607
|
-
return /* @__PURE__ */
|
|
20608
|
-
/* @__PURE__ */
|
|
20609
|
-
|
|
20610
|
-
|
|
20611
|
-
|
|
20612
|
-
|
|
20613
|
-
|
|
20614
|
-
|
|
20615
|
-
|
|
20616
|
-
|
|
20617
|
-
|
|
20618
|
-
|
|
20619
|
-
|
|
20620
|
-
|
|
20621
|
-
|
|
20622
|
-
|
|
20623
|
-
|
|
20624
|
-
|
|
20625
|
-
|
|
20626
|
-
|
|
20627
|
-
|
|
20628
|
-
|
|
20629
|
-
|
|
20630
|
-
children: [
|
|
20631
|
-
/* @__PURE__ */
|
|
20632
|
-
|
|
20633
|
-
|
|
20634
|
-
|
|
20635
|
-
selectedSender
|
|
20636
|
-
|
|
20637
|
-
|
|
20638
|
-
|
|
20639
|
-
|
|
20640
|
-
|
|
20641
|
-
|
|
20642
|
-
|
|
20643
|
-
] }),
|
|
20644
|
-
/* @__PURE__ */ jsxs87("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)] text-[10px]", children: [
|
|
20369
|
+
return /* @__PURE__ */ jsxs86("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)] items-center", children: [
|
|
20370
|
+
/* @__PURE__ */ jsxs86("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
20371
|
+
/* @__PURE__ */ jsx95(
|
|
20372
|
+
"div",
|
|
20373
|
+
{
|
|
20374
|
+
className: cn(
|
|
20375
|
+
"flex items-center justify-between gap-[var(--ui-kit-gap)]",
|
|
20376
|
+
"text-[10px] text-[var(--ui-kit-fg-muted)] leading-4"
|
|
20377
|
+
),
|
|
20378
|
+
children: /* @__PURE__ */ jsx95("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:bridgeMenu.labels.sender") })
|
|
20379
|
+
}
|
|
20380
|
+
),
|
|
20381
|
+
/* @__PURE__ */ jsxs86(
|
|
20382
|
+
Button,
|
|
20383
|
+
{
|
|
20384
|
+
disabled: !hyperlaneWarpRoutes.length || isQuoteEstimating,
|
|
20385
|
+
variant: "default",
|
|
20386
|
+
className: "w-full justify-between",
|
|
20387
|
+
onClick: () => {
|
|
20388
|
+
useFlowSelectorStore.getState().setError(null);
|
|
20389
|
+
setBridgeStep("sender-selector");
|
|
20390
|
+
},
|
|
20391
|
+
children: [
|
|
20392
|
+
/* @__PURE__ */ jsxs86("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
20393
|
+
selectedSender?.Icon && /* @__PURE__ */ jsx95(selectedSender.Icon, { className: "w-6 h-6" }),
|
|
20394
|
+
/* @__PURE__ */ jsx95("span", { children: selectedSender?.name || "N / A" })
|
|
20395
|
+
] }),
|
|
20396
|
+
selectedSender?.address && /* @__PURE__ */ jsxs86("span", { className: "block text-[10px] font-mono!", children: [
|
|
20397
|
+
selectedSender.address.slice(0, 6),
|
|
20398
|
+
"...",
|
|
20399
|
+
selectedSender.address.slice(-4)
|
|
20400
|
+
] })
|
|
20401
|
+
]
|
|
20402
|
+
}
|
|
20403
|
+
),
|
|
20404
|
+
/* @__PURE__ */ jsxs86("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)] text-[10px]", children: [
|
|
20645
20405
|
/* @__PURE__ */ jsx95("span", { className: "text-[var(--ui-kit-fg-muted)]", children: t("passport:bridgeMenu.labels.selectToken") }),
|
|
20646
20406
|
/* @__PURE__ */ jsx95("span", { className: "w-4 h-4" }),
|
|
20647
|
-
/* @__PURE__ */
|
|
20407
|
+
/* @__PURE__ */ jsxs86("span", { className: "flex items-center gap-[var(--ui-kit-gap)] leading-4", children: [
|
|
20648
20408
|
isRouteTokenBalanceLoading && /* @__PURE__ */ jsx95(LoaderIcon10, { className: "w-4 h-4 animate-spin" }),
|
|
20649
|
-
/* @__PURE__ */
|
|
20409
|
+
/* @__PURE__ */ jsxs86("span", { className: "text-[var(--ui-kit-fg-muted)]", children: [
|
|
20650
20410
|
t("passport:common.balance"),
|
|
20651
20411
|
": "
|
|
20652
20412
|
] }),
|
|
20653
|
-
!isRouteTokenBalanceLoading && /* @__PURE__ */
|
|
20413
|
+
!isRouteTokenBalanceLoading && /* @__PURE__ */ jsxs86("span", { className: "font-semibold", children: [
|
|
20654
20414
|
formatPrice(Number(routeTokenBalance || 0)),
|
|
20655
20415
|
" ",
|
|
20656
20416
|
selectedWarpRoute?.symbol
|
|
20657
20417
|
] })
|
|
20658
20418
|
] })
|
|
20659
20419
|
] }),
|
|
20660
|
-
/* @__PURE__ */
|
|
20420
|
+
/* @__PURE__ */ jsxs86(
|
|
20661
20421
|
Button,
|
|
20662
20422
|
{
|
|
20663
|
-
disabled: isQuoteEstimating,
|
|
20423
|
+
disabled: !hyperlaneWarpRoutes.length || isQuoteEstimating,
|
|
20664
20424
|
variant: "default",
|
|
20665
20425
|
className: "w-full justify-between",
|
|
20666
20426
|
onClick: () => {
|
|
@@ -20668,18 +20428,29 @@ function SelectStep(props) {
|
|
|
20668
20428
|
setBridgeStep("select-token");
|
|
20669
20429
|
},
|
|
20670
20430
|
children: [
|
|
20671
|
-
selectedWarpRoute
|
|
20431
|
+
selectedWarpRoute ? /* @__PURE__ */ jsxs86("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
20672
20432
|
/* @__PURE__ */ jsx95(SelectedWarpRoteIcon, { className: "w-6 h-6" }),
|
|
20673
20433
|
/* @__PURE__ */ jsx95("span", { children: selectedWarpRoute.symbol })
|
|
20434
|
+
] }) : /* @__PURE__ */ jsxs86("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
20435
|
+
/* @__PURE__ */ jsx95(ArrowLeftRightIcon, { className: "w-6 h-6" }),
|
|
20436
|
+
/* @__PURE__ */ jsx95("span", { children: hyperlaneWarpRoutes.length ? t("passport:bridgeMenu.labels.selectToken") : t("passport:bridgeMenu.errors.noWarpRoutes") })
|
|
20674
20437
|
] }),
|
|
20675
|
-
|
|
20676
|
-
|
|
20677
|
-
|
|
20678
|
-
|
|
20438
|
+
!!selectedWarpRoute?.chainPair && /* @__PURE__ */ jsx95(
|
|
20439
|
+
Badge,
|
|
20440
|
+
{
|
|
20441
|
+
variant: "outline",
|
|
20442
|
+
size: "medium",
|
|
20443
|
+
className: "bg-[var(--ui-kit-bg)] flex items-center gap-[var(--ui-kit-gap)]",
|
|
20444
|
+
children: selectedWarpRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ jsxs86(Fragment36, { children: [
|
|
20445
|
+
chIdx > 0 && /* @__PURE__ */ jsx95(ArrowLeftRightIcon, { className: "w-4 h-4 " }),
|
|
20446
|
+
/* @__PURE__ */ jsx95(ResolveChainIcon, { chainName: chain.chainName, className: "w-4 h-4" })
|
|
20447
|
+
] }, `${selectedWarpRoute.id}-icon-${chain.chainID}-${chIdx}`))
|
|
20448
|
+
}
|
|
20449
|
+
)
|
|
20679
20450
|
]
|
|
20680
20451
|
}
|
|
20681
20452
|
),
|
|
20682
|
-
/* @__PURE__ */
|
|
20453
|
+
/* @__PURE__ */ jsxs86(
|
|
20683
20454
|
"div",
|
|
20684
20455
|
{
|
|
20685
20456
|
className: cn(
|
|
@@ -20692,27 +20463,27 @@ function SelectStep(props) {
|
|
|
20692
20463
|
]
|
|
20693
20464
|
}
|
|
20694
20465
|
),
|
|
20695
|
-
/* @__PURE__ */
|
|
20696
|
-
/* @__PURE__ */
|
|
20697
|
-
|
|
20698
|
-
|
|
20699
|
-
] }),
|
|
20466
|
+
/* @__PURE__ */ jsxs86("div", { className: "w-full flex items-center justify-center", children: [
|
|
20467
|
+
/* @__PURE__ */ jsx95(Badge, { variant: "outline", size: "large", className: "block flex-1 flex gap-[var(--ui-kit-gap)] justify-center", children: originChain ? /* @__PURE__ */ jsxs86(Fragment37, { children: [
|
|
20468
|
+
/* @__PURE__ */ jsx95(ResolveChainIcon, { chainName: originChain, className: "w-6 h-6" }),
|
|
20469
|
+
/* @__PURE__ */ jsx95("span", { className: "block max-w-[100px] truncate", children: CHAINS_UI_META[originChain]?.chainLabel })
|
|
20470
|
+
] }) : /* @__PURE__ */ jsx95("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "N/A" }) }),
|
|
20700
20471
|
/* @__PURE__ */ jsx95(
|
|
20701
20472
|
Button,
|
|
20702
20473
|
{
|
|
20703
20474
|
size: "icon",
|
|
20704
|
-
disabled: isQuoteEstimating,
|
|
20475
|
+
disabled: !hyperlaneWarpRoutes.length || isQuoteEstimating,
|
|
20705
20476
|
variant: "ghost",
|
|
20706
20477
|
onClick: swapChains,
|
|
20707
20478
|
children: /* @__PURE__ */ jsx95(ArrowRightLeftIcon, { className: "w-4 h-4 " })
|
|
20708
20479
|
}
|
|
20709
20480
|
),
|
|
20710
|
-
/* @__PURE__ */
|
|
20711
|
-
|
|
20712
|
-
|
|
20713
|
-
] })
|
|
20481
|
+
/* @__PURE__ */ jsx95(Badge, { variant: "outline", size: "large", className: "block flex-1 flex gap-[var(--ui-kit-gap)] justify-center", children: destinationChain ? /* @__PURE__ */ jsxs86(Fragment37, { children: [
|
|
20482
|
+
/* @__PURE__ */ jsx95(ResolveChainIcon, { chainName: destinationChain, className: "w-6 h-6" }),
|
|
20483
|
+
/* @__PURE__ */ jsx95("span", { className: "block max-w-[100px] truncate", children: CHAINS_UI_META[destinationChain]?.chainLabel })
|
|
20484
|
+
] }) : /* @__PURE__ */ jsx95("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "N/A" }) })
|
|
20714
20485
|
] }),
|
|
20715
|
-
/* @__PURE__ */
|
|
20486
|
+
/* @__PURE__ */ jsxs86(
|
|
20716
20487
|
"div",
|
|
20717
20488
|
{
|
|
20718
20489
|
className: cn(
|
|
@@ -20750,7 +20521,7 @@ function SelectStep(props) {
|
|
|
20750
20521
|
]
|
|
20751
20522
|
}
|
|
20752
20523
|
),
|
|
20753
|
-
/* @__PURE__ */
|
|
20524
|
+
/* @__PURE__ */ jsxs86(
|
|
20754
20525
|
"div",
|
|
20755
20526
|
{
|
|
20756
20527
|
className: cn(
|
|
@@ -20768,7 +20539,7 @@ function SelectStep(props) {
|
|
|
20768
20539
|
disabled: isQuoteEstimating || !originChain || !destinationChain || !hyperRoute,
|
|
20769
20540
|
placeholder: t("passport:bridgeMenu.labels.optionalRecipient") + " (ex: 0x...)",
|
|
20770
20541
|
value: recipient || "",
|
|
20771
|
-
Icon:
|
|
20542
|
+
Icon: Wallet2Icon2,
|
|
20772
20543
|
onChange: (e) => {
|
|
20773
20544
|
useFlowSelectorStore.getState().setError(null);
|
|
20774
20545
|
setRecipient(e.target.value);
|
|
@@ -20777,7 +20548,7 @@ function SelectStep(props) {
|
|
|
20777
20548
|
Button,
|
|
20778
20549
|
{
|
|
20779
20550
|
size: "icon",
|
|
20780
|
-
disabled: isQuoteEstimating,
|
|
20551
|
+
disabled: !hyperlaneWarpRoutes.length || isQuoteEstimating,
|
|
20781
20552
|
variant: "ghost",
|
|
20782
20553
|
onClick: (e) => {
|
|
20783
20554
|
e.stopPropagation();
|
|
@@ -20792,14 +20563,14 @@ function SelectStep(props) {
|
|
|
20792
20563
|
}
|
|
20793
20564
|
)
|
|
20794
20565
|
] }),
|
|
20795
|
-
!isError && /* @__PURE__ */
|
|
20566
|
+
!isError && /* @__PURE__ */ jsxs86(
|
|
20796
20567
|
Button,
|
|
20797
20568
|
{
|
|
20798
20569
|
size: "large",
|
|
20799
20570
|
variant: "default",
|
|
20800
20571
|
className: "w-full",
|
|
20801
20572
|
onClick: () => handleQuoteEstimation(amount),
|
|
20802
|
-
disabled: isQuoteEstimating || !selectedSender || !amount || !Number(amount) || !originChain || !destinationChain || !hyperRoute,
|
|
20573
|
+
disabled: isQuoteEstimating || !hyperlaneWarpRoutes.length || !selectedSender || !amount || !Number(amount) || !originChain || !destinationChain || !hyperRoute,
|
|
20803
20574
|
children: [
|
|
20804
20575
|
isQuoteEstimating && /* @__PURE__ */ jsx95(LoaderIcon10, { className: "h-4 w-4 animate-spin" }),
|
|
20805
20576
|
/* @__PURE__ */ jsx95("span", { children: t("passport:bridgeMenu.actions.estimateQuote") })
|
|
@@ -20858,11 +20629,11 @@ var init_checkbox = __esm({
|
|
|
20858
20629
|
|
|
20859
20630
|
// src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx
|
|
20860
20631
|
import { LoaderIcon as LoaderIcon11 } from "lucide-react";
|
|
20861
|
-
import { useState as
|
|
20862
|
-
import { jsx as jsx97, jsxs as
|
|
20632
|
+
import { useState as useState26 } from "react";
|
|
20633
|
+
import { jsx as jsx97, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
20863
20634
|
function ConfirmStep(props) {
|
|
20864
20635
|
const { isAssetBridging, bridgeAsset, hyperlaneWarpRoutes } = props;
|
|
20865
|
-
const [userConsent, setUserConsent] =
|
|
20636
|
+
const [userConsent, setUserConsent] = useState26(false);
|
|
20866
20637
|
const { t } = useT();
|
|
20867
20638
|
const address = useSession((st) => st.address);
|
|
20868
20639
|
const bridgeSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
|
|
@@ -20878,54 +20649,54 @@ function ConfirmStep(props) {
|
|
|
20878
20649
|
const chainPairNames = chainPair.map((c) => c.chainName);
|
|
20879
20650
|
return routeId === hyperRoute && chainPairNames.includes(originChain) && chainPairNames.includes(destinationChain);
|
|
20880
20651
|
});
|
|
20881
|
-
return /* @__PURE__ */
|
|
20882
|
-
/* @__PURE__ */
|
|
20883
|
-
/* @__PURE__ */
|
|
20652
|
+
return /* @__PURE__ */ jsxs87("div", { className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20653
|
+
/* @__PURE__ */ jsxs87(Highlight, { type: "info", className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20654
|
+
/* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20884
20655
|
/* @__PURE__ */ jsx97("span", { children: t("passport:common.asset") }),
|
|
20885
20656
|
/* @__PURE__ */ jsx97("strong", { children: selectedWarpRoute.symbol })
|
|
20886
20657
|
] }),
|
|
20887
|
-
/* @__PURE__ */
|
|
20658
|
+
/* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20888
20659
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.sender") }),
|
|
20889
20660
|
/* @__PURE__ */ jsx97("strong", { children: bridgeSender.name + " (" + (bridgeSender?.address || "").slice(0, 6) + "..." + (bridgeSender?.address || "").slice(-4) + ")" })
|
|
20890
20661
|
] }),
|
|
20891
|
-
/* @__PURE__ */
|
|
20662
|
+
/* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20892
20663
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.labels.fromChain") }),
|
|
20893
20664
|
/* @__PURE__ */ jsx97("strong", { children: CHAINS_UI_META[originChain].chainLabel })
|
|
20894
20665
|
] }),
|
|
20895
|
-
/* @__PURE__ */
|
|
20666
|
+
/* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20896
20667
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.labels.toChain") }),
|
|
20897
20668
|
/* @__PURE__ */ jsx97("strong", { children: CHAINS_UI_META[destinationChain].chainLabel })
|
|
20898
20669
|
] }),
|
|
20899
|
-
/* @__PURE__ */
|
|
20670
|
+
/* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20900
20671
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.amount") }),
|
|
20901
20672
|
/* @__PURE__ */ jsx97("strong", { children: formatPrice(Number(quote.amount)) })
|
|
20902
20673
|
] }),
|
|
20903
|
-
/* @__PURE__ */
|
|
20674
|
+
/* @__PURE__ */ jsxs87("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
20904
20675
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.igpFee") }),
|
|
20905
|
-
/* @__PURE__ */
|
|
20676
|
+
/* @__PURE__ */ jsxs87("strong", { children: [
|
|
20906
20677
|
/* @__PURE__ */ jsx97("span", { children: formatPrice(Number(quote.igpFee)) }),
|
|
20907
|
-
/* @__PURE__ */
|
|
20678
|
+
/* @__PURE__ */ jsxs87("span", { children: [
|
|
20908
20679
|
" ",
|
|
20909
20680
|
quote.igpSymbol
|
|
20910
20681
|
] })
|
|
20911
20682
|
] })
|
|
20912
20683
|
] }),
|
|
20913
|
-
/* @__PURE__ */
|
|
20684
|
+
/* @__PURE__ */ jsxs87("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
20914
20685
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.localFee") }),
|
|
20915
|
-
/* @__PURE__ */
|
|
20686
|
+
/* @__PURE__ */ jsxs87("strong", { children: [
|
|
20916
20687
|
/* @__PURE__ */ jsx97("span", { children: formatPrice(Number(quote.localFee)) }),
|
|
20917
|
-
/* @__PURE__ */
|
|
20688
|
+
/* @__PURE__ */ jsxs87("span", { children: [
|
|
20918
20689
|
" ",
|
|
20919
20690
|
quote.localSymbol
|
|
20920
20691
|
] })
|
|
20921
20692
|
] })
|
|
20922
20693
|
] }),
|
|
20923
|
-
quote.tokenFee && /* @__PURE__ */
|
|
20694
|
+
quote.tokenFee && /* @__PURE__ */ jsxs87("p", { className: P_CN, children: [
|
|
20924
20695
|
/* @__PURE__ */ jsx97("span", { children: t("passport:bridgeMenu.quote.tokenFee") }),
|
|
20925
20696
|
/* @__PURE__ */ jsx97("strong", { children: formatPrice(Number(quote.tokenFee)) })
|
|
20926
20697
|
] })
|
|
20927
20698
|
] }),
|
|
20928
|
-
/* @__PURE__ */
|
|
20699
|
+
/* @__PURE__ */ jsxs87(Highlight, { type: "warning", className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20929
20700
|
/* @__PURE__ */ jsx97("strong", { className: "text-xs", children: t("passport:bridgeMenu.quote.recipient") }),
|
|
20930
20701
|
/* @__PURE__ */ jsx97(
|
|
20931
20702
|
"span",
|
|
@@ -20945,7 +20716,7 @@ function ConfirmStep(props) {
|
|
|
20945
20716
|
asset: selectedWarpRoute.symbol
|
|
20946
20717
|
}) }),
|
|
20947
20718
|
/* @__PURE__ */ jsx97("strong", { className: "text-xs text-[var(--ui-kit-bg-error)]", children: t("passport:bridgeMenu.consent.lostFunds") }),
|
|
20948
|
-
/* @__PURE__ */
|
|
20719
|
+
/* @__PURE__ */ jsxs87("label", { className: "flex items-center gap-[var(--ui-kit-gap)] text-xs cursor-pointer", children: [
|
|
20949
20720
|
/* @__PURE__ */ jsx97(Checkbox, { checked: userConsent, onCheckedChange: () => setUserConsent((prev) => !prev) }),
|
|
20950
20721
|
/* @__PURE__ */ jsx97("strong", { children: t("passport:bridgeMenu.actions.confirmBridge", {
|
|
20951
20722
|
amount: quote.amount,
|
|
@@ -20954,7 +20725,7 @@ function ConfirmStep(props) {
|
|
|
20954
20725
|
}) })
|
|
20955
20726
|
] })
|
|
20956
20727
|
] }),
|
|
20957
|
-
!isError && /* @__PURE__ */
|
|
20728
|
+
!isError && /* @__PURE__ */ jsxs87(
|
|
20958
20729
|
Button,
|
|
20959
20730
|
{
|
|
20960
20731
|
size: "large",
|
|
@@ -20988,42 +20759,58 @@ var init_ConfirmStep = __esm({
|
|
|
20988
20759
|
});
|
|
20989
20760
|
|
|
20990
20761
|
// src/internal/components/SendMenu/hyperbridge/steps/SuccessStep.tsx
|
|
20991
|
-
import {
|
|
20762
|
+
import { jsx as jsx98, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
20992
20763
|
function SuccessStep() {
|
|
20993
20764
|
const { t } = useT();
|
|
20994
20765
|
const address = useSession((st) => st.address);
|
|
20766
|
+
const operationHashes = useOperationHashesStore((st) => st.operationHashes);
|
|
20767
|
+
const bridgeSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
|
|
20995
20768
|
const amount = useBridgeStore((st) => st.amount);
|
|
20996
20769
|
const originChain = useBridgeStore((st) => st.originChain);
|
|
20997
20770
|
const destinationChain = useBridgeStore((st) => st.destinationChain);
|
|
20998
20771
|
const recipient = useBridgeStore((st) => st.recipient);
|
|
20999
|
-
const lastTxHashes = useBridgeStore((st) => st.lastTxHashes);
|
|
21000
20772
|
const bridgeTxStatus = useBridgeStore((st) => st.bridgeTxStatus);
|
|
21001
20773
|
const recipientAddress = (recipient || address).slice(0, 6) + "..." + (recipient || address).slice(-4);
|
|
21002
|
-
return /* @__PURE__ */
|
|
21003
|
-
/* @__PURE__ */
|
|
21004
|
-
/* @__PURE__ */
|
|
21005
|
-
|
|
21006
|
-
|
|
21007
|
-
|
|
21008
|
-
/* @__PURE__ */
|
|
21009
|
-
|
|
21010
|
-
|
|
21011
|
-
|
|
21012
|
-
/* @__PURE__ */
|
|
21013
|
-
|
|
21014
|
-
|
|
21015
|
-
|
|
21016
|
-
/* @__PURE__ */
|
|
21017
|
-
|
|
21018
|
-
|
|
21019
|
-
|
|
21020
|
-
/* @__PURE__ */
|
|
21021
|
-
|
|
21022
|
-
|
|
21023
|
-
|
|
21024
|
-
/* @__PURE__ */ jsx98("
|
|
21025
|
-
|
|
20774
|
+
return /* @__PURE__ */ jsxs88(Highlight, { className: "flex flex-col gap-1 text-xs leading-4", children: [
|
|
20775
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20776
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.quote.status") }),
|
|
20777
|
+
/* @__PURE__ */ jsx98("strong", { children: bridgeTxStatus })
|
|
20778
|
+
] }),
|
|
20779
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20780
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.quote.sender") }),
|
|
20781
|
+
/* @__PURE__ */ jsx98("strong", { children: bridgeSender.name + " (" + (bridgeSender?.address || "").slice(0, 6) + "..." + (bridgeSender?.address || "").slice(-4) + ")" })
|
|
20782
|
+
] }),
|
|
20783
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20784
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.quote.recipient") }),
|
|
20785
|
+
/* @__PURE__ */ jsx98("strong", { children: recipientAddress })
|
|
20786
|
+
] }),
|
|
20787
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20788
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.labels.fromChain") }),
|
|
20789
|
+
/* @__PURE__ */ jsx98("strong", { children: CHAINS_UI_META[originChain].chainLabel })
|
|
20790
|
+
] }),
|
|
20791
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20792
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.labels.toChain") }),
|
|
20793
|
+
/* @__PURE__ */ jsx98("strong", { children: CHAINS_UI_META[destinationChain].chainLabel })
|
|
20794
|
+
] }),
|
|
20795
|
+
/* @__PURE__ */ jsxs88("p", { className: P_CN2, children: [
|
|
20796
|
+
/* @__PURE__ */ jsx98("span", { children: t("passport:bridgeMenu.quote.amount") }),
|
|
20797
|
+
/* @__PURE__ */ jsx98("strong", { children: formatPrice(Number(amount)) })
|
|
21026
20798
|
] }),
|
|
20799
|
+
operationHashes.length && /* @__PURE__ */ jsxs88(
|
|
20800
|
+
"div",
|
|
20801
|
+
{
|
|
20802
|
+
className: cn(
|
|
20803
|
+
"w-full",
|
|
20804
|
+
"flex flex-col items-end",
|
|
20805
|
+
"p-[var(--ui-kit-pd)] bg-[var(--ui-kit-bg)]",
|
|
20806
|
+
"rounded-[var(--ui-kit-el-bdrs)]"
|
|
20807
|
+
),
|
|
20808
|
+
children: [
|
|
20809
|
+
/* @__PURE__ */ jsx98("p", { className: "w-full text-left", children: t("passport:bridgeMenu.labels.bridgeTransactions") + ":" }),
|
|
20810
|
+
operationHashes.map((hash) => /* @__PURE__ */ jsx98("p", { className: "flex-none font-mono! text-xs leading-5 w-fit", children: hash.slice(0, 8) + "..." + hash.slice(-8) }, hash))
|
|
20811
|
+
]
|
|
20812
|
+
}
|
|
20813
|
+
),
|
|
21027
20814
|
/* @__PURE__ */ jsx98(
|
|
21028
20815
|
Button,
|
|
21029
20816
|
{
|
|
@@ -21032,8 +20819,11 @@ function SuccessStep() {
|
|
|
21032
20819
|
className: "w-full",
|
|
21033
20820
|
onClick: () => {
|
|
21034
20821
|
useFlowSelectorStore.getState().setError(null);
|
|
20822
|
+
useOperationHashesStore.getState().setOperationHashes([]);
|
|
20823
|
+
useOperationHashesStore.getState().setHyperlaneDatabaseTx(null);
|
|
21035
20824
|
useBridgeStore.getState().setBridgeTxStatus(null);
|
|
21036
|
-
useBridgeStore.getState().
|
|
20825
|
+
useBridgeStore.getState().setQuote(null);
|
|
20826
|
+
useBridgeStore.getState().setAmount("");
|
|
21037
20827
|
useBridgeStore.getState().setBridgeStep("select");
|
|
21038
20828
|
},
|
|
21039
20829
|
children: /* @__PURE__ */ jsx98("span", { children: `${t("passport:common.continue")}`.toUpperCase() })
|
|
@@ -21044,77 +20834,115 @@ function SuccessStep() {
|
|
|
21044
20834
|
var P_CN2;
|
|
21045
20835
|
var init_SuccessStep = __esm({
|
|
21046
20836
|
"src/internal/components/SendMenu/hyperbridge/steps/SuccessStep.tsx"() {
|
|
20837
|
+
init_utils2();
|
|
21047
20838
|
init_SessionContext();
|
|
21048
20839
|
init_i18n();
|
|
21049
20840
|
init_priceFormatter();
|
|
21050
20841
|
init_button();
|
|
21051
20842
|
init_highlight();
|
|
21052
20843
|
init_useFlowSelector();
|
|
20844
|
+
init_useOperationHashesStore();
|
|
21053
20845
|
init_chains();
|
|
21054
20846
|
init_useBridgeStore();
|
|
21055
|
-
P_CN2 = "w-full flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]";
|
|
20847
|
+
P_CN2 = "w-full flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)] leading-4";
|
|
20848
|
+
}
|
|
20849
|
+
});
|
|
20850
|
+
|
|
20851
|
+
// src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts
|
|
20852
|
+
import { useQuery as useQuery22 } from "@tanstack/react-query";
|
|
20853
|
+
import { useState as useState27 } from "react";
|
|
20854
|
+
function useHyperlaneHistory() {
|
|
20855
|
+
const address = useSession((st) => st.address);
|
|
20856
|
+
const page = useLayoutDataStore((st) => st.page);
|
|
20857
|
+
const flow = useFlowSelectorStore((st) => st.flow);
|
|
20858
|
+
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
20859
|
+
const [currentPage, setCurrentPage] = useState27(1);
|
|
20860
|
+
const query = useQuery22({
|
|
20861
|
+
retry: false,
|
|
20862
|
+
refetchInterval: TX_HISTORY_POLLING_INTERVAL,
|
|
20863
|
+
enabled: bridgeStep === "tx-history" && !!address && page === "send" /* SEND */ && flow === "bridge",
|
|
20864
|
+
queryKey: [HYPERLANE_HISTORY_QUERY_KEY, address, currentPage],
|
|
20865
|
+
queryFn: async () => await getHyperlaneBridgeHistory({ page: currentPage, pageSize: TX_HISTORY_PAGE_SIZE })
|
|
20866
|
+
});
|
|
20867
|
+
return {
|
|
20868
|
+
...query,
|
|
20869
|
+
currentPage,
|
|
20870
|
+
setCurrentPage
|
|
20871
|
+
};
|
|
20872
|
+
}
|
|
20873
|
+
var HYPERLANE_HISTORY_QUERY_KEY, TX_HISTORY_PAGE_SIZE, TX_HISTORY_POLLING_INTERVAL;
|
|
20874
|
+
var init_useHyperlaneHistory = __esm({
|
|
20875
|
+
"src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts"() {
|
|
20876
|
+
init_SessionContext();
|
|
20877
|
+
init_useLayoutDataStore();
|
|
20878
|
+
init_useFlowSelector();
|
|
20879
|
+
init_api4();
|
|
20880
|
+
init_useBridgeStore();
|
|
20881
|
+
HYPERLANE_HISTORY_QUERY_KEY = "hyperlane-tx-history-query-key";
|
|
20882
|
+
TX_HISTORY_PAGE_SIZE = 3;
|
|
20883
|
+
TX_HISTORY_POLLING_INTERVAL = 1e3 * 45;
|
|
21056
20884
|
}
|
|
21057
20885
|
});
|
|
21058
20886
|
|
|
21059
20887
|
// src/internal/components/SendMenu/hyperbridge/steps/HistoryStep.tsx
|
|
21060
|
-
import { useQueryClient as
|
|
20888
|
+
import { useQueryClient as useQueryClient24 } from "@tanstack/react-query";
|
|
21061
20889
|
import dayjs7 from "dayjs";
|
|
21062
|
-
import { ArrowRightIcon, ExternalLinkIcon as ExternalLinkIcon2 } from "lucide-react";
|
|
21063
|
-
import { jsx as jsx99, jsxs as
|
|
20890
|
+
import { ArrowRightIcon, ExternalLinkIcon as ExternalLinkIcon2, LoaderIcon as LoaderIcon12 } from "lucide-react";
|
|
20891
|
+
import { jsx as jsx99, jsxs as jsxs89 } from "react/jsx-runtime";
|
|
21064
20892
|
function HistoryDetailsStep() {
|
|
21065
20893
|
const { t } = useT();
|
|
21066
20894
|
const item = useBridgeStore((st) => st.bridgeHistoryItem);
|
|
21067
20895
|
const destinationAdress = item.recipient || item.address;
|
|
21068
|
-
return /* @__PURE__ */
|
|
21069
|
-
/* @__PURE__ */
|
|
20896
|
+
return /* @__PURE__ */ jsxs89(Highlight, { type: "info", className: "flex flex-col gap-[var(--ui-kit-gap)] w-full", children: [
|
|
20897
|
+
/* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21070
20898
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.sender") }),
|
|
21071
|
-
/* @__PURE__ */
|
|
20899
|
+
/* @__PURE__ */ jsxs89("strong", { children: [
|
|
21072
20900
|
item.address.slice(0, 6),
|
|
21073
20901
|
"...",
|
|
21074
20902
|
item.address.slice(-4)
|
|
21075
20903
|
] })
|
|
21076
20904
|
] }),
|
|
21077
|
-
/* @__PURE__ */
|
|
20905
|
+
/* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21078
20906
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.recipient") }),
|
|
21079
|
-
/* @__PURE__ */
|
|
20907
|
+
/* @__PURE__ */ jsxs89("strong", { children: [
|
|
21080
20908
|
destinationAdress.slice(0, 6),
|
|
21081
20909
|
"...",
|
|
21082
20910
|
destinationAdress.slice(-4)
|
|
21083
20911
|
] })
|
|
21084
20912
|
] }),
|
|
21085
|
-
/* @__PURE__ */
|
|
20913
|
+
/* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21086
20914
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.labels.fromChain") }),
|
|
21087
20915
|
/* @__PURE__ */ jsx99("strong", { children: CHAINS_UI_META[item.originChain].chainLabel })
|
|
21088
20916
|
] }),
|
|
21089
|
-
/* @__PURE__ */
|
|
20917
|
+
/* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21090
20918
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.labels.toChain") }),
|
|
21091
20919
|
/* @__PURE__ */ jsx99("strong", { children: CHAINS_UI_META[item.destinationChain].chainLabel })
|
|
21092
20920
|
] }),
|
|
21093
|
-
/* @__PURE__ */
|
|
20921
|
+
/* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21094
20922
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.amount") }),
|
|
21095
20923
|
/* @__PURE__ */ jsx99("strong", { children: formatPrice(Number(item.quote.amount)) })
|
|
21096
20924
|
] }),
|
|
21097
|
-
/* @__PURE__ */
|
|
20925
|
+
/* @__PURE__ */ jsxs89("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
21098
20926
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.igpFee") }),
|
|
21099
|
-
/* @__PURE__ */
|
|
20927
|
+
/* @__PURE__ */ jsxs89("strong", { children: [
|
|
21100
20928
|
/* @__PURE__ */ jsx99("span", { children: formatPrice(Number(item.quote.igpFee)) }),
|
|
21101
|
-
/* @__PURE__ */
|
|
20929
|
+
/* @__PURE__ */ jsxs89("span", { children: [
|
|
21102
20930
|
" ",
|
|
21103
20931
|
item.quote.igpSymbol
|
|
21104
20932
|
] })
|
|
21105
20933
|
] })
|
|
21106
20934
|
] }),
|
|
21107
|
-
/* @__PURE__ */
|
|
20935
|
+
/* @__PURE__ */ jsxs89("p", { className: "flex-1 flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
21108
20936
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.localFee") }),
|
|
21109
|
-
/* @__PURE__ */
|
|
20937
|
+
/* @__PURE__ */ jsxs89("strong", { children: [
|
|
21110
20938
|
/* @__PURE__ */ jsx99("span", { children: formatPrice(Number(item.quote.localFee)) }),
|
|
21111
|
-
/* @__PURE__ */
|
|
20939
|
+
/* @__PURE__ */ jsxs89("span", { children: [
|
|
21112
20940
|
" ",
|
|
21113
20941
|
item.quote.localSymbol
|
|
21114
20942
|
] })
|
|
21115
20943
|
] })
|
|
21116
20944
|
] }),
|
|
21117
|
-
item.quote.tokenFee && /* @__PURE__ */
|
|
20945
|
+
item.quote.tokenFee && /* @__PURE__ */ jsxs89("p", { className: P_CN3, children: [
|
|
21118
20946
|
/* @__PURE__ */ jsx99("span", { children: t("passport:bridgeMenu.quote.tokenFee") }),
|
|
21119
20947
|
/* @__PURE__ */ jsx99("strong", { children: formatPrice(Number(item.quote.tokenFee)) })
|
|
21120
20948
|
] }),
|
|
@@ -21125,7 +20953,7 @@ function HistoryDetailsStep() {
|
|
|
21125
20953
|
target: "_blank",
|
|
21126
20954
|
rel: "noopener noreferrer",
|
|
21127
20955
|
className: "w-full block",
|
|
21128
|
-
children: /* @__PURE__ */
|
|
20956
|
+
children: /* @__PURE__ */ jsxs89(Badge, { variant: "outline", size: "default", className: "block flex-1 flex gap-[var(--ui-kit-gap)] justify-center", children: [
|
|
21129
20957
|
/* @__PURE__ */ jsx99(ExternalLinkIcon2, { className: "w-4 h-4" }),
|
|
21130
20958
|
txHash ? `${txHash.slice(0, 10)}...${txHash.slice(-4)}` : "N/A"
|
|
21131
20959
|
] })
|
|
@@ -21174,7 +21002,7 @@ function HistoryItem(props) {
|
|
|
21174
21002
|
updatedAt,
|
|
21175
21003
|
txStatus
|
|
21176
21004
|
} = props;
|
|
21177
|
-
const qc =
|
|
21005
|
+
const qc = useQueryClient24();
|
|
21178
21006
|
const address = useSession((st) => st.address);
|
|
21179
21007
|
const warpRoutes = qc.getQueryData([HYPERLANE_WARP_ROUTES_QUERY_KEY, address]);
|
|
21180
21008
|
const assetWarpRoute = warpRoutes?.find((route) => {
|
|
@@ -21184,7 +21012,7 @@ function HistoryItem(props) {
|
|
|
21184
21012
|
});
|
|
21185
21013
|
const AssetIcon = TOKENS_ICONS[(assetWarpRoute?.symbol || "n/a").toUpperCase()] || TOKENS_ICONS["DEFAULT"];
|
|
21186
21014
|
const destinationAdress = recipient || fromAddress;
|
|
21187
|
-
return /* @__PURE__ */
|
|
21015
|
+
return /* @__PURE__ */ jsxs89(
|
|
21188
21016
|
"div",
|
|
21189
21017
|
{
|
|
21190
21018
|
onClick: () => {
|
|
@@ -21194,38 +21022,39 @@ function HistoryItem(props) {
|
|
|
21194
21022
|
},
|
|
21195
21023
|
className: cn(
|
|
21196
21024
|
"w-full cursor-pointer",
|
|
21197
|
-
// 'flex items-start',
|
|
21198
21025
|
"flex flex-col gap-1",
|
|
21026
|
+
// gap-[var(--ui-kit-gap)]
|
|
21199
21027
|
"bg-[var(--ui-kit-secondary)]",
|
|
21200
21028
|
"border border-[var(--ui-kit-bd)]",
|
|
21201
|
-
"
|
|
21029
|
+
"p-2 rounded-[var(--ui-kit-el-bdrs)]",
|
|
21030
|
+
// p-[var(--ui-kit-pd)]
|
|
21202
21031
|
"hover:bg-[var(--ui-kit-secondary-h)] active:bg-[var(--ui-kit-secondary-a)]",
|
|
21203
21032
|
"transition-colors duration-200"
|
|
21204
21033
|
),
|
|
21205
21034
|
children: [
|
|
21206
|
-
/* @__PURE__ */
|
|
21207
|
-
/* @__PURE__ */
|
|
21035
|
+
/* @__PURE__ */ jsxs89("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between", children: [
|
|
21036
|
+
/* @__PURE__ */ jsxs89("span", { className: "font-bold text-lg leading-6 flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
21208
21037
|
/* @__PURE__ */ jsx99(AssetIcon, { className: "w-6 h-6 flex-none" }),
|
|
21209
21038
|
/* @__PURE__ */ jsx99("span", { children: formatPrice(Number(quote.amount)) }),
|
|
21210
21039
|
/* @__PURE__ */ jsx99("span", { children: assetWarpRoute?.symbol || "" })
|
|
21211
21040
|
] }),
|
|
21212
21041
|
/* @__PURE__ */ jsx99(Badge, { variant: resolveStatusBadgeVariant(txStatus), children: resolveStatusBadgeCaptions(txStatus) })
|
|
21213
21042
|
] }),
|
|
21214
|
-
/* @__PURE__ */
|
|
21215
|
-
/* @__PURE__ */
|
|
21043
|
+
/* @__PURE__ */ jsxs89("div", { className: "w-full flex items-center justify-center", children: [
|
|
21044
|
+
/* @__PURE__ */ jsxs89(
|
|
21216
21045
|
"div",
|
|
21217
21046
|
{
|
|
21218
21047
|
className: cn(
|
|
21219
|
-
"max-w-[calc(50%-
|
|
21048
|
+
"max-w-[calc(50%-8px)]",
|
|
21220
21049
|
"flex flex-col flex-1 items-end p-2 bg-[var(--ui-kit-bg)]",
|
|
21221
21050
|
"border border-[var(--ui-kit-bd)] rounded-[var(--ui-kit-el-bdrs)]"
|
|
21222
21051
|
),
|
|
21223
21052
|
children: [
|
|
21224
|
-
/* @__PURE__ */
|
|
21053
|
+
/* @__PURE__ */ jsxs89("div", { className: "flex w-full items-center justify-between gap-[var(--ui-kit-gap)] leading-5", children: [
|
|
21225
21054
|
/* @__PURE__ */ jsx99(ResolveChainIcon, { chainName: originChain, className: "w-6 h-6 flex-none" }),
|
|
21226
21055
|
/* @__PURE__ */ jsx99("span", { className: "block flex-1 text-xs truncate", children: CHAINS_UI_META[originChain]?.chainLabel || "N/A" })
|
|
21227
21056
|
] }),
|
|
21228
|
-
/* @__PURE__ */
|
|
21057
|
+
/* @__PURE__ */ jsxs89("strong", { className: "text-[10px] leading-5", children: [
|
|
21229
21058
|
fromAddress.slice(0, 6),
|
|
21230
21059
|
"...",
|
|
21231
21060
|
fromAddress.slice(-4)
|
|
@@ -21234,20 +21063,20 @@ function HistoryItem(props) {
|
|
|
21234
21063
|
}
|
|
21235
21064
|
),
|
|
21236
21065
|
/* @__PURE__ */ jsx99(ArrowRightIcon, { className: "w-4 h-4 flex-none" }),
|
|
21237
|
-
/* @__PURE__ */
|
|
21066
|
+
/* @__PURE__ */ jsxs89(
|
|
21238
21067
|
"div",
|
|
21239
21068
|
{
|
|
21240
21069
|
className: cn(
|
|
21241
|
-
"max-w-[calc(50%-
|
|
21070
|
+
"max-w-[calc(50%-8px)]",
|
|
21242
21071
|
"flex flex-col flex-1 items-start p-2 bg-[var(--ui-kit-bg)]",
|
|
21243
21072
|
"border border-[var(--ui-kit-bd)] rounded-[var(--ui-kit-el-bdrs)]"
|
|
21244
21073
|
),
|
|
21245
21074
|
children: [
|
|
21246
|
-
/* @__PURE__ */
|
|
21075
|
+
/* @__PURE__ */ jsxs89("div", { className: "flex w-full items-center justify-between gap-[var(--ui-kit-gap)] leading-5", children: [
|
|
21247
21076
|
/* @__PURE__ */ jsx99("span", { className: "block flex-1 text-xs truncate", children: CHAINS_UI_META[destinationChain]?.chainLabel || "N/A" }),
|
|
21248
21077
|
/* @__PURE__ */ jsx99(ResolveChainIcon, { chainName: destinationChain, className: "w-6 h-6 flex-none" })
|
|
21249
21078
|
] }),
|
|
21250
|
-
/* @__PURE__ */
|
|
21079
|
+
/* @__PURE__ */ jsxs89("strong", { className: "text-[10px] leading-5", children: [
|
|
21251
21080
|
destinationAdress.slice(0, 6),
|
|
21252
21081
|
"...",
|
|
21253
21082
|
destinationAdress.slice(-4)
|
|
@@ -21256,19 +21085,34 @@ function HistoryItem(props) {
|
|
|
21256
21085
|
}
|
|
21257
21086
|
)
|
|
21258
21087
|
] }),
|
|
21259
|
-
/* @__PURE__ */ jsx99("span", { className: "block w-full text-[10px] text-[var(--ui-kit-fg-muted)]", children: dayjs7(updatedAt).format("MMMM D, YYYY [at] HH:mm") })
|
|
21088
|
+
/* @__PURE__ */ jsx99("span", { className: "block w-full text-[10px] text-[var(--ui-kit-fg-muted)] leading-4", children: dayjs7(updatedAt).format("MMMM D, YYYY [at] HH:mm") })
|
|
21260
21089
|
]
|
|
21261
21090
|
}
|
|
21262
21091
|
);
|
|
21263
21092
|
}
|
|
21264
|
-
function HistoryStep(
|
|
21265
|
-
const { historyQuery } = props;
|
|
21093
|
+
function HistoryStep() {
|
|
21266
21094
|
const { t } = useT();
|
|
21267
|
-
const {
|
|
21268
|
-
|
|
21269
|
-
|
|
21270
|
-
|
|
21271
|
-
|
|
21095
|
+
const { setCurrentPage, ...historyQuery } = useHyperlaneHistory();
|
|
21096
|
+
const { data: historyItemsData, isLoading: isHistoryLoading } = historyQuery || {};
|
|
21097
|
+
const { data: historyItems = [], page, pageCount } = historyItemsData || {};
|
|
21098
|
+
if (!isHistoryLoading && historyItems.length === 0) {
|
|
21099
|
+
return /* @__PURE__ */ jsx99(Highlight, { type: "info", className: "w-full text-center text-[10px] text-[var(--ui-kit-fg-muted)] leading-4", children: t("passport:bridgeMenu.errors.noHistory") });
|
|
21100
|
+
}
|
|
21101
|
+
return /* @__PURE__ */ jsxs89("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
21102
|
+
isHistoryLoading && /* @__PURE__ */ jsx99("div", { className: "w-full flex items-center justify-center p-[var(--ui-kit-pd)]", children: /* @__PURE__ */ jsx99(LoaderIcon12, { className: "w-4 h-4 animate-spin" }) }),
|
|
21103
|
+
!isHistoryLoading && !!historyItems.length && /* @__PURE__ */ jsxs89("div", { className: "w-full flex items-center justify-between px-[var(--ui-kit-pd)]", children: [
|
|
21104
|
+
/* @__PURE__ */ jsx99(Button, { variant: "outline", size: "medium", onClick: () => setCurrentPage(page - 1), disabled: page <= 1, children: t("passport:common.prev") }),
|
|
21105
|
+
/* @__PURE__ */ jsxs89("span", { className: "text-xs white-space-nowrap leading-4", children: [
|
|
21106
|
+
/* @__PURE__ */ jsx99("span", { className: " text-[var(--ui-kit-fg-muted)]", children: t("passport:common.page") }),
|
|
21107
|
+
/* @__PURE__ */ jsx99("span", { children: ": " }),
|
|
21108
|
+
/* @__PURE__ */ jsx99("strong", { children: page }),
|
|
21109
|
+
/* @__PURE__ */ jsx99("span", { children: " / " }),
|
|
21110
|
+
/* @__PURE__ */ jsx99("span", { className: " text-[var(--ui-kit-fg-muted)]", children: pageCount })
|
|
21111
|
+
] }),
|
|
21112
|
+
/* @__PURE__ */ jsx99(Button, { variant: "outline", size: "medium", onClick: () => setCurrentPage(page + 1), disabled: page >= pageCount, children: t("passport:common.next") })
|
|
21113
|
+
] }),
|
|
21114
|
+
!isHistoryLoading && historyItems.map((item) => /* @__PURE__ */ jsx99(HistoryItem, { ...item }, item.id))
|
|
21115
|
+
] });
|
|
21272
21116
|
}
|
|
21273
21117
|
var P_CN3;
|
|
21274
21118
|
var init_HistoryStep = __esm({
|
|
@@ -21279,8 +21123,10 @@ var init_HistoryStep = __esm({
|
|
|
21279
21123
|
init_priceFormatter();
|
|
21280
21124
|
init_utils2();
|
|
21281
21125
|
init_badge();
|
|
21126
|
+
init_button();
|
|
21282
21127
|
init_highlight();
|
|
21283
21128
|
init_ResolveChainIcon();
|
|
21129
|
+
init_useHyperlaneHistory();
|
|
21284
21130
|
init_useHyperlaneRoutes();
|
|
21285
21131
|
init_chains();
|
|
21286
21132
|
init_useBridgeStore();
|
|
@@ -21288,6 +21134,124 @@ var init_HistoryStep = __esm({
|
|
|
21288
21134
|
}
|
|
21289
21135
|
});
|
|
21290
21136
|
|
|
21137
|
+
// src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx
|
|
21138
|
+
import { ArrowLeftRightIcon as ArrowLeftRightIcon2 } from "lucide-react";
|
|
21139
|
+
import { useMemo as useMemo7, useState as useState28 } from "react";
|
|
21140
|
+
import { Fragment as Fragment38, jsx as jsx100, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
21141
|
+
function SelectAssetRoute(props) {
|
|
21142
|
+
const { hyperlaneWarpRoutes } = props;
|
|
21143
|
+
const { t } = useT();
|
|
21144
|
+
const [isTokenSymbolSelector, setIsTokenSymbolSelector] = useState28(false);
|
|
21145
|
+
const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
|
|
21146
|
+
const tokenList = useMemo7(() => {
|
|
21147
|
+
const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
|
|
21148
|
+
const uniqueTokens = Array.from(new Set(tokens));
|
|
21149
|
+
return uniqueTokens.map((symbol) => ({
|
|
21150
|
+
symbol: symbol.toUpperCase(),
|
|
21151
|
+
Icon: TOKENS_ICONS[symbol.toUpperCase()] || TOKENS_ICONS.EMBARKAI
|
|
21152
|
+
}));
|
|
21153
|
+
}, [hyperlaneWarpRoutes]);
|
|
21154
|
+
if (isTokenSymbolSelector) {
|
|
21155
|
+
return /* @__PURE__ */ jsx100("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: tokenList.map((asset, assetIdx) => /* @__PURE__ */ jsxs90(
|
|
21156
|
+
Button,
|
|
21157
|
+
{
|
|
21158
|
+
variant: selectedAssetSymbol === asset.symbol ? "default" : "outline",
|
|
21159
|
+
className: "w-full",
|
|
21160
|
+
onClick: () => {
|
|
21161
|
+
useBridgeStore.getState().setBridgeAssetSymbol(asset.symbol);
|
|
21162
|
+
setIsTokenSymbolSelector(false);
|
|
21163
|
+
useFlowSelectorStore.getState().setRenderKey(`hyperlane-route-token-${asset.symbol}-${Date.now()}`);
|
|
21164
|
+
},
|
|
21165
|
+
children: [
|
|
21166
|
+
/* @__PURE__ */ jsx100(asset.Icon, { className: "w-6 h-6" }),
|
|
21167
|
+
asset.symbol
|
|
21168
|
+
]
|
|
21169
|
+
},
|
|
21170
|
+
`hyperlane-route-token-${asset.symbol}-${assetIdx}`
|
|
21171
|
+
)) });
|
|
21172
|
+
}
|
|
21173
|
+
const selectedAsset = tokenList.find((t2) => t2.symbol === selectedAssetSymbol);
|
|
21174
|
+
const availableChainPairs = hyperlaneWarpRoutes.filter((route) => route.symbol.toUpperCase() === selectedAssetSymbol).map((route) => route.chainPair);
|
|
21175
|
+
return /* @__PURE__ */ jsxs90("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
21176
|
+
/* @__PURE__ */ jsx100("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:bridgeMenu.labels.selectToken") }),
|
|
21177
|
+
/* @__PURE__ */ jsx100(
|
|
21178
|
+
Button,
|
|
21179
|
+
{
|
|
21180
|
+
variant: "default",
|
|
21181
|
+
className: "w-full",
|
|
21182
|
+
onClick: () => {
|
|
21183
|
+
setIsTokenSymbolSelector(true);
|
|
21184
|
+
useFlowSelectorStore.getState().setRenderKey(`hyperlane-route-asset-selector-${Date.now()}`);
|
|
21185
|
+
},
|
|
21186
|
+
children: selectedAsset ? /* @__PURE__ */ jsxs90(Fragment38, { children: [
|
|
21187
|
+
/* @__PURE__ */ jsx100(selectedAsset.Icon, { className: "w-6 h-6" }),
|
|
21188
|
+
selectedAsset.symbol
|
|
21189
|
+
] }) : t("passport:bridgeMenu.actions.selectAsset")
|
|
21190
|
+
}
|
|
21191
|
+
),
|
|
21192
|
+
availableChainPairs.length > 0 && /* @__PURE__ */ jsxs90(Fragment38, { children: [
|
|
21193
|
+
/* @__PURE__ */ jsx100("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:bridgeMenu.labels.availableChainPairs") }),
|
|
21194
|
+
/* @__PURE__ */ jsx100("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: availableChainPairs.map(([fromChain, toChain]) => /* @__PURE__ */ jsxs90(
|
|
21195
|
+
Button,
|
|
21196
|
+
{
|
|
21197
|
+
variant: "outline",
|
|
21198
|
+
className: "w-full",
|
|
21199
|
+
onClick: () => {
|
|
21200
|
+
const targetWarpRoute = hyperlaneWarpRoutes.find((route) => {
|
|
21201
|
+
const { symbol, chainPair } = route;
|
|
21202
|
+
const chainPairNames = chainPair.map((c) => c.chainName);
|
|
21203
|
+
return symbol === selectedAssetSymbol && chainPairNames.includes(fromChain.chainName) && chainPairNames.includes(toChain.chainName);
|
|
21204
|
+
});
|
|
21205
|
+
if (!targetWarpRoute) {
|
|
21206
|
+
console.error("No matching warp route found for selected asset and chain pair");
|
|
21207
|
+
return;
|
|
21208
|
+
}
|
|
21209
|
+
const { setOriginChain, setDestinationChain, setHyperRoute, setBridgeStep } = useBridgeStore.getState();
|
|
21210
|
+
let originChainIndex = 0;
|
|
21211
|
+
let destinationChainIndex = 1;
|
|
21212
|
+
if (useBridgeStore.getState().bridgeSender === "embarkai-wallet") {
|
|
21213
|
+
const foundIdx = targetWarpRoute.chainPair.findIndex(
|
|
21214
|
+
(chain) => isOririnChainEmbarkSupported(chain.chainName)
|
|
21215
|
+
);
|
|
21216
|
+
if (foundIdx !== -1) {
|
|
21217
|
+
originChainIndex = foundIdx;
|
|
21218
|
+
destinationChainIndex = foundIdx === 0 ? 1 : 0;
|
|
21219
|
+
}
|
|
21220
|
+
}
|
|
21221
|
+
setOriginChain(targetWarpRoute.chainPair[originChainIndex].chainName);
|
|
21222
|
+
setDestinationChain(targetWarpRoute.chainPair[destinationChainIndex].chainName);
|
|
21223
|
+
setHyperRoute(targetWarpRoute.routeId);
|
|
21224
|
+
setBridgeStep("select");
|
|
21225
|
+
},
|
|
21226
|
+
children: [
|
|
21227
|
+
/* @__PURE__ */ jsxs90("span", { className: "flex items-center flex-1 gap-[var(--ui-kit-gap)] justify-between", children: [
|
|
21228
|
+
/* @__PURE__ */ jsx100(ResolveChainIcon, { chainName: fromChain.chainName, className: "w-6 h-6 flex-none" }),
|
|
21229
|
+
/* @__PURE__ */ jsx100("span", { className: "max-w-[100px] truncate", children: fromChain.chainLabel })
|
|
21230
|
+
] }),
|
|
21231
|
+
/* @__PURE__ */ jsx100(ArrowLeftRightIcon2, { className: "w-4 h-4 flex-none" }),
|
|
21232
|
+
/* @__PURE__ */ jsxs90("span", { className: "flex items-center flex-1 gap-[var(--ui-kit-gap)] justify-between", children: [
|
|
21233
|
+
/* @__PURE__ */ jsx100("span", { className: "max-w-[100px] truncate", children: toChain.chainLabel }),
|
|
21234
|
+
/* @__PURE__ */ jsx100(ResolveChainIcon, { chainName: toChain.chainName, className: "w-6 h-6 flex-none" })
|
|
21235
|
+
] })
|
|
21236
|
+
]
|
|
21237
|
+
},
|
|
21238
|
+
`hyperlane-route-chain-pair-${fromChain.chainName}-${toChain.chainName}`
|
|
21239
|
+
)) })
|
|
21240
|
+
] })
|
|
21241
|
+
] });
|
|
21242
|
+
}
|
|
21243
|
+
var init_SelectAssetRoute = __esm({
|
|
21244
|
+
"src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx"() {
|
|
21245
|
+
init_tokens();
|
|
21246
|
+
init_i18n();
|
|
21247
|
+
init_button();
|
|
21248
|
+
init_useFlowSelector();
|
|
21249
|
+
init_ResolveChainIcon();
|
|
21250
|
+
init_useBridgeStore();
|
|
21251
|
+
init_utils8();
|
|
21252
|
+
}
|
|
21253
|
+
});
|
|
21254
|
+
|
|
21291
21255
|
// src/internal/components/SendMenu/hyperbridge/steps/index.ts
|
|
21292
21256
|
var init_steps = __esm({
|
|
21293
21257
|
"src/internal/components/SendMenu/hyperbridge/steps/index.ts"() {
|
|
@@ -21295,28 +21259,27 @@ var init_steps = __esm({
|
|
|
21295
21259
|
init_ConfirmStep();
|
|
21296
21260
|
init_SuccessStep();
|
|
21297
21261
|
init_HistoryStep();
|
|
21262
|
+
init_SelectAssetRoute();
|
|
21298
21263
|
}
|
|
21299
21264
|
});
|
|
21300
21265
|
|
|
21301
21266
|
// src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx
|
|
21302
21267
|
import { useEffect as useEffect40 } from "react";
|
|
21303
|
-
import { Fragment as
|
|
21268
|
+
import { Fragment as Fragment39, jsx as jsx101, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
21304
21269
|
function HyperlaneBridge() {
|
|
21305
21270
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
21306
21271
|
const { swapDirection, handleQuoteEstimation, bridgeAsset, isAssetBridging } = useBridge();
|
|
21307
21272
|
const { hyperlaneWarpRoutes, isLoadingWarpRoutes } = useHyperlaneRoutes();
|
|
21308
|
-
const { setCurrentPage, ...historyQuery } = useHyperlaneHistory();
|
|
21309
21273
|
useMenuTitle(hyperlaneWarpRoutes);
|
|
21310
21274
|
useEffect40(
|
|
21311
21275
|
() => () => {
|
|
21312
21276
|
useBridgeStore.getState().resetSelections();
|
|
21313
|
-
setCurrentPage(1);
|
|
21314
21277
|
},
|
|
21315
21278
|
[]
|
|
21316
21279
|
);
|
|
21317
|
-
return /* @__PURE__ */ jsxs91(
|
|
21318
|
-
bridgeStep === "sender-selector" && /* @__PURE__ */
|
|
21319
|
-
bridgeStep === "select" && /* @__PURE__ */
|
|
21280
|
+
return /* @__PURE__ */ jsxs91(Fragment39, { children: [
|
|
21281
|
+
bridgeStep === "sender-selector" && /* @__PURE__ */ jsx101(SenderSelector, {}),
|
|
21282
|
+
bridgeStep === "select" && /* @__PURE__ */ jsx101(
|
|
21320
21283
|
SelectStep,
|
|
21321
21284
|
{
|
|
21322
21285
|
isLoadingWarpRoutes,
|
|
@@ -21325,8 +21288,8 @@ function HyperlaneBridge() {
|
|
|
21325
21288
|
handleQuoteEstimation
|
|
21326
21289
|
}
|
|
21327
21290
|
),
|
|
21328
|
-
bridgeStep === "select-token" && /* @__PURE__ */
|
|
21329
|
-
bridgeStep === "confirm" && /* @__PURE__ */
|
|
21291
|
+
bridgeStep === "select-token" && /* @__PURE__ */ jsx101(SelectAssetRoute, { hyperlaneWarpRoutes }),
|
|
21292
|
+
bridgeStep === "confirm" && /* @__PURE__ */ jsx101(
|
|
21330
21293
|
ConfirmStep,
|
|
21331
21294
|
{
|
|
21332
21295
|
isAssetBridging,
|
|
@@ -21334,17 +21297,18 @@ function HyperlaneBridge() {
|
|
|
21334
21297
|
bridgeAsset
|
|
21335
21298
|
}
|
|
21336
21299
|
),
|
|
21337
|
-
bridgeStep === "success" && /* @__PURE__ */
|
|
21338
|
-
bridgeStep === "tx-history" && /* @__PURE__ */
|
|
21339
|
-
|
|
21300
|
+
bridgeStep === "success" && /* @__PURE__ */ jsx101(SuccessStep, {}),
|
|
21301
|
+
bridgeStep === "tx-history" && /* @__PURE__ */ jsx101(
|
|
21302
|
+
HistoryStep,
|
|
21303
|
+
{}
|
|
21304
|
+
),
|
|
21305
|
+
bridgeStep === "tx-history-details" && /* @__PURE__ */ jsx101(HistoryDetailsStep, {})
|
|
21340
21306
|
] });
|
|
21341
21307
|
}
|
|
21342
21308
|
var init_HyperlaneBridge = __esm({
|
|
21343
21309
|
"src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx"() {
|
|
21344
21310
|
init_SenderSelector();
|
|
21345
|
-
init_TokenHyperlaneRouteSelector();
|
|
21346
21311
|
init_useBridge();
|
|
21347
|
-
init_useHyperlaneHistory();
|
|
21348
21312
|
init_useHyperlaneRoutes();
|
|
21349
21313
|
init_useMenuTitle();
|
|
21350
21314
|
init_steps();
|
|
@@ -21354,7 +21318,7 @@ var init_HyperlaneBridge = __esm({
|
|
|
21354
21318
|
|
|
21355
21319
|
// src/internal/components/SendMenu/hyperbridge/components/HistorySwitch.tsx
|
|
21356
21320
|
import { useRef as useRef19 } from "react";
|
|
21357
|
-
import { jsx as
|
|
21321
|
+
import { jsx as jsx102 } from "react/jsx-runtime";
|
|
21358
21322
|
function BridgeHistorySwitch(props) {
|
|
21359
21323
|
const { disabled } = props;
|
|
21360
21324
|
const selectorFlow = useFlowSelectorStore((st) => st.flow);
|
|
@@ -21364,7 +21328,7 @@ function BridgeHistorySwitch(props) {
|
|
|
21364
21328
|
if (selectorFlow !== "bridge" || bridgeStep === "confirm" || bridgeStep === "success" || bridgeStep === "sender-selector" || bridgeStep === "select-token" || bridgeStep === "tx-history-details") {
|
|
21365
21329
|
return null;
|
|
21366
21330
|
}
|
|
21367
|
-
return /* @__PURE__ */
|
|
21331
|
+
return /* @__PURE__ */ jsx102(
|
|
21368
21332
|
Switch,
|
|
21369
21333
|
{
|
|
21370
21334
|
labels: { checked: "BRIDGE", unchecked: "HISTORY" },
|
|
@@ -21461,7 +21425,7 @@ var init_useErc3643Compliance = __esm({
|
|
|
21461
21425
|
|
|
21462
21426
|
// src/hooks/useNicknameResolve.ts
|
|
21463
21427
|
import { useQuery as useQuery23 } from "@tanstack/react-query";
|
|
21464
|
-
import { useState as
|
|
21428
|
+
import { useState as useState29, useEffect as useEffect41, useMemo as useMemo8 } from "react";
|
|
21465
21429
|
function looksLikeNickname(input) {
|
|
21466
21430
|
if (!input) return false;
|
|
21467
21431
|
if (input.startsWith("0x")) return false;
|
|
@@ -21471,8 +21435,8 @@ function looksLikeNickname(input) {
|
|
|
21471
21435
|
}
|
|
21472
21436
|
function useNicknameResolve(input, options) {
|
|
21473
21437
|
const { enabled = true, chainId } = options;
|
|
21474
|
-
const [debouncedInput, setDebouncedInput] =
|
|
21475
|
-
const [isDebouncing, setIsDebouncing] =
|
|
21438
|
+
const [debouncedInput, setDebouncedInput] = useState29("");
|
|
21439
|
+
const [isDebouncing, setIsDebouncing] = useState29(false);
|
|
21476
21440
|
const normalized = normalizeNickname(input);
|
|
21477
21441
|
const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
|
|
21478
21442
|
useEffect41(() => {
|
|
@@ -21501,7 +21465,7 @@ function useNicknameResolve(input, options) {
|
|
|
21501
21465
|
const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
|
|
21502
21466
|
const isWalletNotSetup = !!query.data && query.data.resolvedTarget === null;
|
|
21503
21467
|
const isFrozen = query.data?.isFrozen ?? false;
|
|
21504
|
-
const fingerprintVerification =
|
|
21468
|
+
const fingerprintVerification = useMemo8(() => {
|
|
21505
21469
|
if (!query.data?.owner || !query.data?.fingerprint) {
|
|
21506
21470
|
return null;
|
|
21507
21471
|
}
|
|
@@ -21535,14 +21499,14 @@ var init_useNicknameResolve = __esm({
|
|
|
21535
21499
|
});
|
|
21536
21500
|
|
|
21537
21501
|
// src/hooks/useSendTransaction.ts
|
|
21538
|
-
import { useCallback as useCallback24, useState as
|
|
21502
|
+
import { useCallback as useCallback24, useState as useState30 } from "react";
|
|
21539
21503
|
import { encodeFunctionData as encodeFunctionData2, isAddress, parseEther as parseEther2, parseUnits } from "viem";
|
|
21540
21504
|
function useSendTransaction() {
|
|
21541
21505
|
const session = useSession((st) => st.session);
|
|
21542
21506
|
const address = useSession((st) => st.address);
|
|
21543
|
-
const [isLoading, setIsLoading] =
|
|
21544
|
-
const [error, setError] =
|
|
21545
|
-
const [userOpHash, setUserOpHash] =
|
|
21507
|
+
const [isLoading, setIsLoading] = useState30(false);
|
|
21508
|
+
const [error, setError] = useState30(null);
|
|
21509
|
+
const [userOpHash, setUserOpHash] = useState30(null);
|
|
21546
21510
|
const sendTransaction = useCallback24(
|
|
21547
21511
|
async (params) => {
|
|
21548
21512
|
if (!session || !address) {
|
|
@@ -21731,15 +21695,15 @@ var init_fallbackAssetImage = __esm({
|
|
|
21731
21695
|
|
|
21732
21696
|
// src/internal/components/SendMenu/send/components/AssetInputIcon.tsx
|
|
21733
21697
|
import { Coins, Image as ImageIcon2, ShieldCheck, Sparkles as Sparkles2 } from "lucide-react";
|
|
21734
|
-
import { jsx as
|
|
21698
|
+
import { jsx as jsx103, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
21735
21699
|
function AssetInputIcon({ asset, size = "small" }) {
|
|
21736
21700
|
const iconSizeClass = size === "small" ? "w-6 h-6" : "w-12 h-12";
|
|
21737
21701
|
const subiconSizeClass = size === "small" ? "w-4 h-4" : "w-5 h-5";
|
|
21738
|
-
if (!asset) return /* @__PURE__ */
|
|
21702
|
+
if (!asset) return /* @__PURE__ */ jsx103(Coins, { className: iconSizeClass, strokeWidth: 1 });
|
|
21739
21703
|
const isNft = isNftAsset3(asset);
|
|
21740
21704
|
if (isNft) {
|
|
21741
21705
|
return asset.image || asset.nftMetadata?.image ? /* @__PURE__ */ jsxs92("div", { className: cn(iconSizeClass, "flex-none relative"), children: [
|
|
21742
|
-
/* @__PURE__ */
|
|
21706
|
+
/* @__PURE__ */ jsx103(
|
|
21743
21707
|
"img",
|
|
21744
21708
|
{
|
|
21745
21709
|
src: asset.image || asset.nftMetadata?.image,
|
|
@@ -21752,15 +21716,15 @@ function AssetInputIcon({ asset, size = "small" }) {
|
|
|
21752
21716
|
}
|
|
21753
21717
|
}
|
|
21754
21718
|
),
|
|
21755
|
-
/* @__PURE__ */
|
|
21719
|
+
/* @__PURE__ */ jsx103(Sparkles2, { className: cn(subiconSizeClass, "absolute -top-1 -right-1") })
|
|
21756
21720
|
] }) : /* @__PURE__ */ jsxs92("div", { className: cn(iconSizeClass, "relative flex-none"), children: [
|
|
21757
|
-
/* @__PURE__ */
|
|
21758
|
-
/* @__PURE__ */
|
|
21721
|
+
/* @__PURE__ */ jsx103(ImageIcon2, { className: cn(iconSizeClass, "flex-none") }),
|
|
21722
|
+
/* @__PURE__ */ jsx103(Sparkles2, { className: cn(subiconSizeClass, "absolute -top-1 -right-1 text-[var(--ui-kit-bg-success)]") })
|
|
21759
21723
|
] });
|
|
21760
21724
|
}
|
|
21761
21725
|
const isSecurity = isSecurityToken2(asset);
|
|
21762
21726
|
const CommonAssetIcon = TOKENS_ICONS[asset.symbol] || null;
|
|
21763
|
-
const targetAssetIcon = !!asset.logo ? /* @__PURE__ */
|
|
21727
|
+
const targetAssetIcon = !!asset.logo ? /* @__PURE__ */ jsx103(
|
|
21764
21728
|
"img",
|
|
21765
21729
|
{
|
|
21766
21730
|
src: asset.logo,
|
|
@@ -21771,7 +21735,7 @@ function AssetInputIcon({ asset, size = "small" }) {
|
|
|
21771
21735
|
e.currentTarget.src = fallbackAssetImage_default;
|
|
21772
21736
|
}
|
|
21773
21737
|
}
|
|
21774
|
-
) : /* @__PURE__ */
|
|
21738
|
+
) : /* @__PURE__ */ jsx103("span", { className: "text-[var(--ui-kit-fg-inverted)] font-bold text-xs", children: asset.symbol.charAt(0) });
|
|
21775
21739
|
return /* @__PURE__ */ jsxs92(
|
|
21776
21740
|
"div",
|
|
21777
21741
|
{
|
|
@@ -21780,8 +21744,8 @@ function AssetInputIcon({ asset, size = "small" }) {
|
|
|
21780
21744
|
"flex items-center justify-center bg-[var(--ui-kit-fg)] rounded-full": !asset.logo
|
|
21781
21745
|
}),
|
|
21782
21746
|
children: [
|
|
21783
|
-
!!CommonAssetIcon ? /* @__PURE__ */
|
|
21784
|
-
isSecurity && /* @__PURE__ */
|
|
21747
|
+
!!CommonAssetIcon ? /* @__PURE__ */ jsx103(CommonAssetIcon, { className: iconSizeClass }) : targetAssetIcon,
|
|
21748
|
+
isSecurity && /* @__PURE__ */ jsx103(
|
|
21785
21749
|
ShieldCheck,
|
|
21786
21750
|
{
|
|
21787
21751
|
style: { fill: "var(--ui-kit-bg-warning)" },
|
|
@@ -21803,13 +21767,13 @@ var init_AssetInputIcon = __esm({
|
|
|
21803
21767
|
|
|
21804
21768
|
// src/internal/components/SendMenu/send/components/NftDisplayCard.tsx
|
|
21805
21769
|
import { Image as ImageIcon3, Sparkles as Sparkles3 } from "lucide-react";
|
|
21806
|
-
import { useState as
|
|
21807
|
-
import { jsx as
|
|
21770
|
+
import { useState as useState31 } from "react";
|
|
21771
|
+
import { jsx as jsx104, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
21808
21772
|
function NftDisplayCard({ asset }) {
|
|
21809
|
-
const [imageError, setImageError] =
|
|
21773
|
+
const [imageError, setImageError] = useState31(false);
|
|
21810
21774
|
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
21811
21775
|
return /* @__PURE__ */ jsxs93("div", { className: "flex items-center gap-3 p-3 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-bg-secondary)]", children: [
|
|
21812
|
-
nftImage && !imageError ? /* @__PURE__ */
|
|
21776
|
+
nftImage && !imageError ? /* @__PURE__ */ jsx104(
|
|
21813
21777
|
"img",
|
|
21814
21778
|
{
|
|
21815
21779
|
src: nftImage,
|
|
@@ -21817,9 +21781,9 @@ function NftDisplayCard({ asset }) {
|
|
|
21817
21781
|
className: "w-16 h-16 rounded-[var(--ui-kit-el-bdrs)] object-cover",
|
|
21818
21782
|
onError: () => setImageError(true)
|
|
21819
21783
|
}
|
|
21820
|
-
) : /* @__PURE__ */
|
|
21784
|
+
) : /* @__PURE__ */ jsx104("div", { className: "w-16 h-16 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-fg)] flex items-center justify-center", children: /* @__PURE__ */ jsx104(ImageIcon3, { className: "w-8 h-8 text-[var(--ui-kit-fg-inverted)]" }) }),
|
|
21821
21785
|
/* @__PURE__ */ jsxs93("div", { className: "flex-1 min-w-0", children: [
|
|
21822
|
-
/* @__PURE__ */
|
|
21786
|
+
/* @__PURE__ */ jsx104("div", { className: "font-semibold text-[var(--ui-kit-fg)] truncate", children: asset.nftMetadata?.name || asset.name }),
|
|
21823
21787
|
/* @__PURE__ */ jsxs93("div", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: [
|
|
21824
21788
|
asset.symbol,
|
|
21825
21789
|
asset.tokenId && /* @__PURE__ */ jsxs93("span", { className: "ml-1", children: [
|
|
@@ -21828,8 +21792,8 @@ function NftDisplayCard({ asset }) {
|
|
|
21828
21792
|
] })
|
|
21829
21793
|
] }),
|
|
21830
21794
|
/* @__PURE__ */ jsxs93("div", { className: "text-xs text-[var(--ui-kit-fg-muted)] mt-1 flex items-center gap-1", children: [
|
|
21831
|
-
/* @__PURE__ */
|
|
21832
|
-
/* @__PURE__ */
|
|
21795
|
+
/* @__PURE__ */ jsx104(Sparkles3, { className: "w-3 h-3" }),
|
|
21796
|
+
/* @__PURE__ */ jsx104("span", { children: asset.type === "erc721" ? "ERC-721" : "ERC-1155" })
|
|
21833
21797
|
] })
|
|
21834
21798
|
] })
|
|
21835
21799
|
] });
|
|
@@ -21880,7 +21844,7 @@ var init_useSendStore = __esm({
|
|
|
21880
21844
|
|
|
21881
21845
|
// src/internal/components/SendMenu/send/components/AssetList.tsx
|
|
21882
21846
|
import { formatUnits as formatUnits9 } from "viem";
|
|
21883
|
-
import { Fragment as
|
|
21847
|
+
import { Fragment as Fragment40, jsx as jsx105, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
21884
21848
|
function getAssetBalance3(asset) {
|
|
21885
21849
|
if (isNftAsset3(asset)) return "1";
|
|
21886
21850
|
const balance = Number(formatUnits9(BigInt(asset?.balance || "0"), asset?.decimals || 18));
|
|
@@ -21909,23 +21873,23 @@ function AssetListItem(props) {
|
|
|
21909
21873
|
isSelected && "bg-[var(--ui-kit-secondary)]"
|
|
21910
21874
|
),
|
|
21911
21875
|
children: [
|
|
21912
|
-
/* @__PURE__ */
|
|
21876
|
+
/* @__PURE__ */ jsx105(AssetInputIcon, { asset, size: "large" }),
|
|
21913
21877
|
/* @__PURE__ */ jsxs94("div", { className: "flex-1 flex flex-col items-start", children: [
|
|
21914
|
-
/* @__PURE__ */
|
|
21878
|
+
/* @__PURE__ */ jsx105("div", { className: "text-[10px] truncate leading-4", children: isNft ? asset.nftMetadata?.name || asset.name : asset.name }),
|
|
21915
21879
|
!isNft && asset.address && /* @__PURE__ */ jsxs94("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] font-mono truncate leading-4", title: asset.address, children: [
|
|
21916
21880
|
asset.symbol,
|
|
21917
21881
|
" \xB7 ",
|
|
21918
21882
|
truncateMiddle(asset.address, 6, 4)
|
|
21919
21883
|
] }),
|
|
21920
|
-
/* @__PURE__ */
|
|
21884
|
+
/* @__PURE__ */ jsx105("span", { className: "block text-lg font-bold", children: isNft ? /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21921
21885
|
asset.symbol,
|
|
21922
21886
|
asset.tokenId && /* @__PURE__ */ jsxs94("span", { className: "ml-1", children: [
|
|
21923
21887
|
"#",
|
|
21924
21888
|
asset.tokenId.length > 6 ? `${asset.tokenId.slice(0, 4)}...` : asset.tokenId
|
|
21925
21889
|
] })
|
|
21926
|
-
] }) : /* @__PURE__ */ jsxs94(
|
|
21890
|
+
] }) : /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21927
21891
|
BALANCE_PREFIXES[asset.symbol] || null,
|
|
21928
|
-
/* @__PURE__ */
|
|
21892
|
+
/* @__PURE__ */ jsx105("span", { children: getAssetBalance3(asset) }),
|
|
21929
21893
|
" ",
|
|
21930
21894
|
!BALANCE_PREFIXES[asset.symbol] && /* @__PURE__ */ jsxs94("span", { children: [
|
|
21931
21895
|
" ",
|
|
@@ -21948,24 +21912,24 @@ function AssetList(props) {
|
|
|
21948
21912
|
const tokenAssets = transferableAssets.filter((a) => a.type === "erc20");
|
|
21949
21913
|
const securityAssets = transferableAssets.filter((a) => a.type === "erc3643");
|
|
21950
21914
|
const nftAssets = transferableAssets.filter((a) => a.type === "erc721" || a.type === "erc1155");
|
|
21951
|
-
return /* @__PURE__ */ jsxs94(
|
|
21952
|
-
nativeAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21953
|
-
/* @__PURE__ */
|
|
21954
|
-
nativeAssets.map((asset) => /* @__PURE__ */
|
|
21915
|
+
return /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21916
|
+
nativeAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21917
|
+
/* @__PURE__ */ jsx105("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "Crypto" }),
|
|
21918
|
+
nativeAssets.map((asset) => /* @__PURE__ */ jsx105(AssetListItem, { asset }, `native-${asset.symbol}`))
|
|
21955
21919
|
] }),
|
|
21956
|
-
tokenAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21957
|
-
/* @__PURE__ */
|
|
21958
|
-
tokenAssets.map((asset) => /* @__PURE__ */
|
|
21920
|
+
tokenAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21921
|
+
/* @__PURE__ */ jsx105("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "Tokens" }),
|
|
21922
|
+
tokenAssets.map((asset) => /* @__PURE__ */ jsx105(AssetListItem, { asset }, `token-${asset.address}`))
|
|
21959
21923
|
] }),
|
|
21960
|
-
securityAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21961
|
-
/* @__PURE__ */
|
|
21962
|
-
securityAssets.map((asset) => /* @__PURE__ */
|
|
21924
|
+
securityAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21925
|
+
/* @__PURE__ */ jsx105("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "Security Tokens" }),
|
|
21926
|
+
securityAssets.map((asset) => /* @__PURE__ */ jsx105(AssetListItem, { asset }, `security-${asset.address}`))
|
|
21963
21927
|
] }),
|
|
21964
|
-
nftAssets.length > 0 && /* @__PURE__ */ jsxs94(
|
|
21965
|
-
/* @__PURE__ */
|
|
21966
|
-
nftAssets.map((asset) => /* @__PURE__ */
|
|
21928
|
+
nftAssets.length > 0 && /* @__PURE__ */ jsxs94(Fragment40, { children: [
|
|
21929
|
+
/* @__PURE__ */ jsx105("div", { className: "text-[10px] text-[var(--ui-kit-fg-muted)] uppercase", children: "NFTs" }),
|
|
21930
|
+
nftAssets.map((asset) => /* @__PURE__ */ jsx105(AssetListItem, { asset }, `nft-${asset.address}-${asset.tokenId}`))
|
|
21967
21931
|
] }),
|
|
21968
|
-
transferableAssets.length === 0 && /* @__PURE__ */
|
|
21932
|
+
transferableAssets.length === 0 && /* @__PURE__ */ jsx105("div", { className: "p-4 text-center text-[10px] text-[var(--ui-kit-fg-muted)]", children: "No assets available" })
|
|
21969
21933
|
] });
|
|
21970
21934
|
}
|
|
21971
21935
|
var init_AssetList = __esm({
|
|
@@ -21982,7 +21946,7 @@ var init_AssetList = __esm({
|
|
|
21982
21946
|
|
|
21983
21947
|
// src/internal/components/SendMenu/send/components/NicknameData.tsx
|
|
21984
21948
|
import { AlertCircle as AlertCircle5, AlertTriangle as AlertTriangle6, AtSign as AtSign2, CheckCircle2 as CheckCircle24, ShieldAlert as ShieldAlert2, ShieldCheck as ShieldCheck2 } from "lucide-react";
|
|
21985
|
-
import { jsx as
|
|
21949
|
+
import { jsx as jsx106, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
21986
21950
|
function NicknameData(props) {
|
|
21987
21951
|
const { resolvedNicknameData, isNicknameInput } = props;
|
|
21988
21952
|
const {
|
|
@@ -21997,7 +21961,7 @@ function NicknameData(props) {
|
|
|
21997
21961
|
if (!isNicknameInput) return null;
|
|
21998
21962
|
if (resolvedAddress && !isResolving && nicknameData)
|
|
21999
21963
|
return /* @__PURE__ */ jsxs95("div", { className: "flex items-center gap-[var(--ui-kit-gap)] rounded-[var(--ui-kit-el-bdrs)] px-[var(--ui-kit-gap)]", children: [
|
|
22000
|
-
nicknameData.avatarSvg ? /* @__PURE__ */
|
|
21964
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ jsx106(
|
|
22001
21965
|
"img",
|
|
22002
21966
|
{
|
|
22003
21967
|
src: nicknameData.avatarSvg,
|
|
@@ -22008,11 +21972,11 @@ function NicknameData(props) {
|
|
|
22008
21972
|
e.currentTarget.src = fallbackAssetImage_default;
|
|
22009
21973
|
}
|
|
22010
21974
|
}
|
|
22011
|
-
) : /* @__PURE__ */
|
|
21975
|
+
) : /* @__PURE__ */ jsx106("div", { className: "w-12 h-12 rounded-full bg-[var(--ui-kit-secondary)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx106(AtSign2, { className: "w-5 h-5" }) }),
|
|
22012
21976
|
/* @__PURE__ */ jsxs95("div", { className: "flex flex-col gap-1", children: [
|
|
22013
21977
|
/* @__PURE__ */ jsxs95("div", { className: "flex items-center gap-[var(--ui-kit-gap)] text-[10px] text-[var(--ui-kit-bg-success)]", children: [
|
|
22014
|
-
/* @__PURE__ */
|
|
22015
|
-
/* @__PURE__ */
|
|
21978
|
+
/* @__PURE__ */ jsx106(CheckCircle24, { className: "w-4 h-4 flex-shrink-0" }),
|
|
21979
|
+
/* @__PURE__ */ jsx106("span", { children: nicknameData.handle })
|
|
22016
21980
|
] }),
|
|
22017
21981
|
nicknameData.fingerprint && /* @__PURE__ */ jsxs95(
|
|
22018
21982
|
"div",
|
|
@@ -22022,9 +21986,9 @@ function NicknameData(props) {
|
|
|
22022
21986
|
isFingerprintVerified ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-error)]"
|
|
22023
21987
|
),
|
|
22024
21988
|
children: [
|
|
22025
|
-
isFingerprintVerified ? /* @__PURE__ */
|
|
22026
|
-
/* @__PURE__ */
|
|
22027
|
-
/* @__PURE__ */
|
|
21989
|
+
isFingerprintVerified ? /* @__PURE__ */ jsx106(ShieldCheck2, { className: "w-4 h-4 flex-shrink-0" }) : /* @__PURE__ */ jsx106(ShieldAlert2, { className: "w-4 h-4 flex-shrink-0" }),
|
|
21990
|
+
/* @__PURE__ */ jsx106("span", { children: `${resolvedAddress.slice(0, 6)}...${resolvedAddress.slice(-4)} : ` }),
|
|
21991
|
+
/* @__PURE__ */ jsx106("span", { children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
22028
21992
|
]
|
|
22029
21993
|
}
|
|
22030
21994
|
)
|
|
@@ -22032,20 +21996,20 @@ function NicknameData(props) {
|
|
|
22032
21996
|
] });
|
|
22033
21997
|
if (isFrozen && !isResolving) {
|
|
22034
21998
|
return /* @__PURE__ */ jsxs95(Highlight, { type: "warning", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22035
|
-
/* @__PURE__ */
|
|
22036
|
-
/* @__PURE__ */
|
|
21999
|
+
/* @__PURE__ */ jsx106(AlertTriangle6, { className: "w-4 h-4" }),
|
|
22000
|
+
/* @__PURE__ */ jsx106("span", { children: "This handle is frozen. Proceed with caution." })
|
|
22037
22001
|
] });
|
|
22038
22002
|
}
|
|
22039
22003
|
if (isWalletNotSetup && !isResolving) {
|
|
22040
22004
|
return /* @__PURE__ */ jsxs95(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22041
|
-
/* @__PURE__ */
|
|
22042
|
-
/* @__PURE__ */
|
|
22005
|
+
/* @__PURE__ */ jsx106(AlertCircle5, { className: "w-4 h-4" }),
|
|
22006
|
+
/* @__PURE__ */ jsx106("span", { children: "This user has not set up wallet yet" })
|
|
22043
22007
|
] });
|
|
22044
22008
|
}
|
|
22045
22009
|
if (isNotFound && !isResolving) {
|
|
22046
22010
|
return /* @__PURE__ */ jsxs95(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22047
|
-
/* @__PURE__ */
|
|
22048
|
-
/* @__PURE__ */
|
|
22011
|
+
/* @__PURE__ */ jsx106(AlertCircle5, { className: "w-4 h-4" }),
|
|
22012
|
+
/* @__PURE__ */ jsx106("span", { children: "Nickname not found" })
|
|
22049
22013
|
] });
|
|
22050
22014
|
}
|
|
22051
22015
|
}
|
|
@@ -22070,7 +22034,7 @@ var init_components3 = __esm({
|
|
|
22070
22034
|
// src/internal/components/SendMenu/send/sendSteps/InputSendStep.tsx
|
|
22071
22035
|
import { AlertCircle as AlertCircle6, AtSign as AtSign3, CheckCircle2 as CheckCircle25, Loader as Loader31, Wallet2 as Wallet24 } from "lucide-react";
|
|
22072
22036
|
import { formatUnits as formatUnits10, isAddress as isAddress2 } from "viem";
|
|
22073
|
-
import { Fragment as
|
|
22037
|
+
import { Fragment as Fragment41, jsx as jsx107, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
22074
22038
|
function InputSendStep(props) {
|
|
22075
22039
|
const {
|
|
22076
22040
|
erc3643Compliance,
|
|
@@ -22176,27 +22140,27 @@ function InputSendStep(props) {
|
|
|
22176
22140
|
setError(null);
|
|
22177
22141
|
return true;
|
|
22178
22142
|
};
|
|
22179
|
-
return /* @__PURE__ */ jsxs96(
|
|
22180
|
-
/* @__PURE__ */
|
|
22143
|
+
return /* @__PURE__ */ jsxs96(Fragment41, { children: [
|
|
22144
|
+
/* @__PURE__ */ jsx107("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:sendMenu.selectAsset") }),
|
|
22181
22145
|
/* @__PURE__ */ jsxs96(
|
|
22182
22146
|
Button,
|
|
22183
22147
|
{
|
|
22184
22148
|
disabled: isAssetsLoading,
|
|
22185
|
-
variant: "
|
|
22149
|
+
variant: "default",
|
|
22186
22150
|
size: "large",
|
|
22187
22151
|
onClick: () => setTxStep("select-asset"),
|
|
22188
22152
|
className: "justify-between",
|
|
22189
22153
|
children: [
|
|
22190
22154
|
selectedAsset ? /* @__PURE__ */ jsxs96("span", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22191
|
-
/* @__PURE__ */
|
|
22192
|
-
/* @__PURE__ */
|
|
22193
|
-
] }) : /* @__PURE__ */
|
|
22194
|
-
isAssetsLoading && /* @__PURE__ */
|
|
22155
|
+
/* @__PURE__ */ jsx107(AssetInputIcon, { asset: selectedAsset }),
|
|
22156
|
+
/* @__PURE__ */ jsx107("span", { children: (isNft ? selectedAsset.nftMetadata?.name || selectedAsset.symbol : selectedAsset.name).toUpperCase() })
|
|
22157
|
+
] }) : /* @__PURE__ */ jsx107("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "No Asset Selected" }),
|
|
22158
|
+
isAssetsLoading && /* @__PURE__ */ jsx107(Loader31, { className: "w-4 h-4 animate-spin" })
|
|
22195
22159
|
]
|
|
22196
22160
|
}
|
|
22197
22161
|
),
|
|
22198
|
-
/* @__PURE__ */
|
|
22199
|
-
/* @__PURE__ */
|
|
22162
|
+
/* @__PURE__ */ jsx107("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:sendMenu.recipient") }),
|
|
22163
|
+
/* @__PURE__ */ jsx107(
|
|
22200
22164
|
Input,
|
|
22201
22165
|
{
|
|
22202
22166
|
Icon: isNicknameInput ? AtSign3 : Wallet24,
|
|
@@ -22205,12 +22169,12 @@ function InputSendStep(props) {
|
|
|
22205
22169
|
disabled: isAssetsLoading,
|
|
22206
22170
|
onChange: (e) => setRecipient(e.target.value),
|
|
22207
22171
|
placeholder: "0x... or @nickname",
|
|
22208
|
-
element: isNicknameInput && isResolving ? /* @__PURE__ */
|
|
22172
|
+
element: isNicknameInput && isResolving ? /* @__PURE__ */ jsx107(Loader31, { className: "w-4 h-4 animate-spin text-[var(--ui-kit-fg-muted)]" }) : null
|
|
22209
22173
|
}
|
|
22210
22174
|
),
|
|
22211
|
-
/* @__PURE__ */
|
|
22175
|
+
/* @__PURE__ */ jsx107(NicknameData, { resolvedNicknameData, isNicknameInput }),
|
|
22212
22176
|
/* @__PURE__ */ jsxs96("div", { className: "flex justify-between items-center text-[10px] text-[var(--ui-kit-fg-muted)]", children: [
|
|
22213
|
-
/* @__PURE__ */
|
|
22177
|
+
/* @__PURE__ */ jsx107("span", { className: "block ", children: isNft ? t("passport:common.asset") : t("passport:common.amount") }),
|
|
22214
22178
|
!isNft && selectedAsset && /* @__PURE__ */ jsxs96("span", { className: "block text-[10px]", children: [
|
|
22215
22179
|
t("passport:common.balance"),
|
|
22216
22180
|
" ",
|
|
@@ -22221,8 +22185,8 @@ function InputSendStep(props) {
|
|
|
22221
22185
|
] })
|
|
22222
22186
|
] })
|
|
22223
22187
|
] }),
|
|
22224
|
-
isNft && selectedAsset && /* @__PURE__ */
|
|
22225
|
-
!isNft && /* @__PURE__ */
|
|
22188
|
+
isNft && selectedAsset && /* @__PURE__ */ jsx107(NftDisplayCard, { asset: selectedAsset }),
|
|
22189
|
+
!isNft && /* @__PURE__ */ jsx107(
|
|
22226
22190
|
Input,
|
|
22227
22191
|
{
|
|
22228
22192
|
type: "number",
|
|
@@ -22230,29 +22194,29 @@ function InputSendStep(props) {
|
|
|
22230
22194
|
onChange: (e) => setAmount(e.target.value),
|
|
22231
22195
|
placeholder: "0.0",
|
|
22232
22196
|
step: "0.000001",
|
|
22233
|
-
Icon: () => /* @__PURE__ */
|
|
22197
|
+
Icon: () => /* @__PURE__ */ jsx107(AssetInputIcon, { asset: selectedAsset }),
|
|
22234
22198
|
className: "pb-[var(--ui-kit-pd)]",
|
|
22235
|
-
element: /* @__PURE__ */
|
|
22199
|
+
element: /* @__PURE__ */ jsx107(Button, { onClick: handleMaxAmount, variant: "ghost", size: "medium", className: "px-2", children: "MAX" })
|
|
22236
22200
|
}
|
|
22237
22201
|
),
|
|
22238
|
-
isSecurity && effectiveAddress && amount && /* @__PURE__ */
|
|
22202
|
+
isSecurity && effectiveAddress && amount && /* @__PURE__ */ jsx107(
|
|
22239
22203
|
Highlight,
|
|
22240
22204
|
{
|
|
22241
22205
|
type: isComplianceLoading ? "info" : erc3643CanTransfer ? "success" : "error",
|
|
22242
22206
|
className: "flex gap-[var(--ui-kit-gap)]",
|
|
22243
|
-
children: isComplianceLoading ? /* @__PURE__ */ jsxs96(
|
|
22244
|
-
/* @__PURE__ */
|
|
22245
|
-
/* @__PURE__ */
|
|
22246
|
-
] }) : erc3643CanTransfer ? /* @__PURE__ */ jsxs96(
|
|
22247
|
-
/* @__PURE__ */
|
|
22248
|
-
/* @__PURE__ */
|
|
22249
|
-
] }) : /* @__PURE__ */ jsxs96(
|
|
22250
|
-
/* @__PURE__ */
|
|
22251
|
-
/* @__PURE__ */
|
|
22207
|
+
children: isComplianceLoading ? /* @__PURE__ */ jsxs96(Fragment41, { children: [
|
|
22208
|
+
/* @__PURE__ */ jsx107(Loader31, { className: "h-4 w-4 animate-spin" }),
|
|
22209
|
+
/* @__PURE__ */ jsx107("span", { children: "Checking compliance..." })
|
|
22210
|
+
] }) : erc3643CanTransfer ? /* @__PURE__ */ jsxs96(Fragment41, { children: [
|
|
22211
|
+
/* @__PURE__ */ jsx107(CheckCircle25, { className: "h-4 w-4" }),
|
|
22212
|
+
/* @__PURE__ */ jsx107("span", { children: "Transfer compliant" })
|
|
22213
|
+
] }) : /* @__PURE__ */ jsxs96(Fragment41, { children: [
|
|
22214
|
+
/* @__PURE__ */ jsx107(AlertCircle6, { className: "h-4 w-4" }),
|
|
22215
|
+
/* @__PURE__ */ jsx107("span", { children: complianceError || "Transfer not allowed" })
|
|
22252
22216
|
] })
|
|
22253
22217
|
}
|
|
22254
22218
|
),
|
|
22255
|
-
/* @__PURE__ */
|
|
22219
|
+
/* @__PURE__ */ jsx107(
|
|
22256
22220
|
Button,
|
|
22257
22221
|
{
|
|
22258
22222
|
size: "large",
|
|
@@ -22284,7 +22248,7 @@ var init_InputSendStep = __esm({
|
|
|
22284
22248
|
|
|
22285
22249
|
// src/internal/components/SendMenu/send/sendSteps/ConfirmSendStep.tsx
|
|
22286
22250
|
import { AlertTriangle as AlertTriangle7, AtSign as AtSign4, Loader as Loader32, Shield as Shield2, ShieldAlert as ShieldAlert3, ShieldCheck as ShieldCheck3 } from "lucide-react";
|
|
22287
|
-
import { Fragment as
|
|
22251
|
+
import { Fragment as Fragment42, jsx as jsx108, jsxs as jsxs97 } from "react/jsx-runtime";
|
|
22288
22252
|
function ConfirmSendStep(props) {
|
|
22289
22253
|
const {
|
|
22290
22254
|
sendTransaction,
|
|
@@ -22321,14 +22285,14 @@ function ConfirmSendStep(props) {
|
|
|
22321
22285
|
setTxStep("input");
|
|
22322
22286
|
}
|
|
22323
22287
|
};
|
|
22324
|
-
return /* @__PURE__ */ jsxs97(
|
|
22288
|
+
return /* @__PURE__ */ jsxs97(Fragment42, { children: [
|
|
22325
22289
|
isNicknameInput && isFrozen && /* @__PURE__ */ jsxs97(Highlight, { type: "warning", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22326
|
-
/* @__PURE__ */
|
|
22327
|
-
/* @__PURE__ */
|
|
22290
|
+
/* @__PURE__ */ jsx108(AlertTriangle7, { className: "h-4 w-4" }),
|
|
22291
|
+
/* @__PURE__ */ jsx108("span", { children: "This handle is frozen. Proceed with caution." })
|
|
22328
22292
|
] }),
|
|
22329
22293
|
isSecurity && erc3643CanTransfer && /* @__PURE__ */ jsxs97(Highlight, { type: "success", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22330
|
-
/* @__PURE__ */
|
|
22331
|
-
/* @__PURE__ */
|
|
22294
|
+
/* @__PURE__ */ jsx108(Shield2, { className: "h-4 w-4 flex-shrink-0" }),
|
|
22295
|
+
/* @__PURE__ */ jsx108("span", { children: "Security token compliance verified" })
|
|
22332
22296
|
] }),
|
|
22333
22297
|
!isNft && /* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5", children: [
|
|
22334
22298
|
/* @__PURE__ */ jsxs97("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: [
|
|
@@ -22341,18 +22305,18 @@ function ConfirmSendStep(props) {
|
|
|
22341
22305
|
selectedAsset.symbol
|
|
22342
22306
|
] })
|
|
22343
22307
|
] }),
|
|
22344
|
-
/* @__PURE__ */
|
|
22308
|
+
/* @__PURE__ */ jsx108(Highlight, { type: "info", className: "flex flex-col gap-[var(--ui-kit-gap)]", children: isNicknameInput && nicknameData ? /* @__PURE__ */ jsxs97(Fragment42, { children: [
|
|
22345
22309
|
/* @__PURE__ */ jsxs97("div", { className: "flex items-start gap-[var(--ui-kit-gap)]", children: [
|
|
22346
|
-
nicknameData.avatarSvg ? /* @__PURE__ */
|
|
22310
|
+
nicknameData.avatarSvg ? /* @__PURE__ */ jsx108(
|
|
22347
22311
|
"img",
|
|
22348
22312
|
{
|
|
22349
22313
|
src: nicknameData.avatarSvg,
|
|
22350
22314
|
alt: nicknameData.handle,
|
|
22351
22315
|
className: "w-12 h-12 rounded-full object-cover flex-shrink-0"
|
|
22352
22316
|
}
|
|
22353
|
-
) : /* @__PURE__ */
|
|
22317
|
+
) : /* @__PURE__ */ jsx108("div", { className: "w-12 h-12 rounded-full bg-[var(--ui-kit-secondary)] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx108(AtSign4, { className: "w-6 h-6" }) }),
|
|
22354
22318
|
/* @__PURE__ */ jsxs97("div", { className: "flex flex-1 flex-col gap-1", children: [
|
|
22355
|
-
/* @__PURE__ */
|
|
22319
|
+
/* @__PURE__ */ jsx108("span", { className: "font-medium text-[14px] leading-4 truncate", children: nicknameData.handle }),
|
|
22356
22320
|
nicknameData.fingerprint && /* @__PURE__ */ jsxs97(
|
|
22357
22321
|
"span",
|
|
22358
22322
|
{
|
|
@@ -22361,23 +22325,23 @@ function ConfirmSendStep(props) {
|
|
|
22361
22325
|
isFingerprintVerified ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-error)]"
|
|
22362
22326
|
),
|
|
22363
22327
|
children: [
|
|
22364
|
-
isFingerprintVerified ? /* @__PURE__ */
|
|
22328
|
+
isFingerprintVerified ? /* @__PURE__ */ jsx108(ShieldCheck3, { className: "w-4 h-4 flex-shrink-0" }) : /* @__PURE__ */ jsx108(ShieldAlert3, { className: "w-4 h-4 flex-shrink-0" }),
|
|
22365
22329
|
/* @__PURE__ */ jsxs97("span", { children: [
|
|
22366
22330
|
"Fingerprint: ",
|
|
22367
22331
|
nicknameData.fingerprint
|
|
22368
22332
|
] }),
|
|
22369
|
-
/* @__PURE__ */
|
|
22333
|
+
/* @__PURE__ */ jsx108("span", { children: isFingerprintVerified ? "Verified" : "FAILED" })
|
|
22370
22334
|
]
|
|
22371
22335
|
}
|
|
22372
22336
|
),
|
|
22373
|
-
/* @__PURE__ */
|
|
22337
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: `${resolvedAddress.slice(0, 6)}...${resolvedAddress.slice(-4)} : ` })
|
|
22374
22338
|
] })
|
|
22375
22339
|
] }),
|
|
22376
22340
|
/* @__PURE__ */ jsxs97("div", { className: "border-t border-[var(--ui-kit-bd)] py-[var(--ui-kit-pd)] text-[10px]", children: [
|
|
22377
22341
|
isNft ? /* @__PURE__ */ jsxs97("div", { className: "flex justify-between items-start", children: [
|
|
22378
|
-
/* @__PURE__ */
|
|
22342
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "NFT:" }),
|
|
22379
22343
|
/* @__PURE__ */ jsxs97("div", { className: "text-right", children: [
|
|
22380
|
-
/* @__PURE__ */
|
|
22344
|
+
/* @__PURE__ */ jsx108("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
22381
22345
|
selectedAsset.tokenId && /* @__PURE__ */ jsxs97("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: [
|
|
22382
22346
|
"#",
|
|
22383
22347
|
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
@@ -22386,7 +22350,7 @@ function ConfirmSendStep(props) {
|
|
|
22386
22350
|
] }) : (
|
|
22387
22351
|
// Fungible token details
|
|
22388
22352
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22389
|
-
/* @__PURE__ */
|
|
22353
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: "Amount:" }),
|
|
22390
22354
|
/* @__PURE__ */ jsxs97("span", { className: "text-sm font-bold", children: [
|
|
22391
22355
|
amount,
|
|
22392
22356
|
" ",
|
|
@@ -22395,23 +22359,23 @@ function ConfirmSendStep(props) {
|
|
|
22395
22359
|
] })
|
|
22396
22360
|
),
|
|
22397
22361
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22398
|
-
/* @__PURE__ */
|
|
22399
|
-
/* @__PURE__ */
|
|
22362
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: "Network:" }),
|
|
22363
|
+
/* @__PURE__ */ jsx108("span", { className: "text-sm font-bold", children: chainConfig.name })
|
|
22400
22364
|
] })
|
|
22401
22365
|
] })
|
|
22402
|
-
] }) : /* @__PURE__ */ jsxs97(
|
|
22403
|
-
/* @__PURE__ */
|
|
22366
|
+
] }) : /* @__PURE__ */ jsxs97(Fragment42, { children: [
|
|
22367
|
+
/* @__PURE__ */ jsx108("h3", { className: "font-medium mb-3 text-[var(--ui-kit-fg)]", children: "Transaction Details" }),
|
|
22404
22368
|
/* @__PURE__ */ jsxs97("div", { className: "space-y-2 text-sm text-[var(--ui-kit-fg)]", children: [
|
|
22405
22369
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between", children: [
|
|
22406
|
-
/* @__PURE__ */
|
|
22407
|
-
/* @__PURE__ */
|
|
22370
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "To:" }),
|
|
22371
|
+
/* @__PURE__ */ jsx108("span", { className: "font-mono text-xs", children: `${effectiveAddress.slice(0, 6)}...${effectiveAddress.slice(-4)}` })
|
|
22408
22372
|
] }),
|
|
22409
22373
|
isNft ? (
|
|
22410
22374
|
// NFT details
|
|
22411
|
-
/* @__PURE__ */
|
|
22412
|
-
/* @__PURE__ */
|
|
22375
|
+
/* @__PURE__ */ jsx108(Fragment42, { children: /* @__PURE__ */ jsxs97("div", { className: "flex justify-between items-start", children: [
|
|
22376
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "NFT:" }),
|
|
22413
22377
|
/* @__PURE__ */ jsxs97("div", { className: "text-right", children: [
|
|
22414
|
-
/* @__PURE__ */
|
|
22378
|
+
/* @__PURE__ */ jsx108("span", { className: "font-semibold block", children: selectedAsset.nftMetadata?.name || selectedAsset.name }),
|
|
22415
22379
|
selectedAsset.tokenId && /* @__PURE__ */ jsxs97("span", { className: "text-xs text-[var(--ui-kit-fg-muted)]", children: [
|
|
22416
22380
|
"#",
|
|
22417
22381
|
selectedAsset.tokenId.length > 10 ? `${selectedAsset.tokenId.slice(0, 8)}...` : selectedAsset.tokenId
|
|
@@ -22421,7 +22385,7 @@ function ConfirmSendStep(props) {
|
|
|
22421
22385
|
) : (
|
|
22422
22386
|
// Fungible token details
|
|
22423
22387
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22424
|
-
/* @__PURE__ */
|
|
22388
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "Amount:" }),
|
|
22425
22389
|
/* @__PURE__ */ jsxs97("span", { className: "font-semibold", children: [
|
|
22426
22390
|
amount,
|
|
22427
22391
|
" ",
|
|
@@ -22430,13 +22394,13 @@ function ConfirmSendStep(props) {
|
|
|
22430
22394
|
] })
|
|
22431
22395
|
),
|
|
22432
22396
|
/* @__PURE__ */ jsxs97("div", { className: "flex justify-between leading-5 gap-[var(--ui-kit-gap)]", children: [
|
|
22433
|
-
/* @__PURE__ */
|
|
22434
|
-
/* @__PURE__ */
|
|
22397
|
+
/* @__PURE__ */ jsx108("span", { className: "text-[var(--ui-kit-fg-muted)]", children: "Network:" }),
|
|
22398
|
+
/* @__PURE__ */ jsx108("span", { children: chainConfig.name })
|
|
22435
22399
|
] })
|
|
22436
22400
|
] })
|
|
22437
22401
|
] }) }),
|
|
22438
22402
|
/* @__PURE__ */ jsxs97(Button, { onClick: handleConfirm, disabled: isTransactionPending, className: "w-full", size: "large", children: [
|
|
22439
|
-
isTransactionPending && /* @__PURE__ */
|
|
22403
|
+
isTransactionPending && /* @__PURE__ */ jsx108(Loader32, { className: "h-4 w-4 animate-spin" }),
|
|
22440
22404
|
"CONFIRM"
|
|
22441
22405
|
] })
|
|
22442
22406
|
] });
|
|
@@ -22463,9 +22427,9 @@ var init_sendSteps = __esm({
|
|
|
22463
22427
|
|
|
22464
22428
|
// src/internal/components/SendMenu/send/SendMenu.tsx
|
|
22465
22429
|
import { CheckCircle2 as CheckCircle26, Loader as Loader33 } from "lucide-react";
|
|
22466
|
-
import { useEffect as useEffect42, useMemo as
|
|
22430
|
+
import { useEffect as useEffect42, useMemo as useMemo9 } from "react";
|
|
22467
22431
|
import { parseUnits as parseUnits2 } from "viem";
|
|
22468
|
-
import { Fragment as
|
|
22432
|
+
import { Fragment as Fragment43, jsx as jsx109, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
22469
22433
|
function SendMenu() {
|
|
22470
22434
|
const address = useSession((st) => st.address);
|
|
22471
22435
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
@@ -22524,7 +22488,7 @@ function SendMenu() {
|
|
|
22524
22488
|
const isNicknameInput = looksLikeNickname(recipient);
|
|
22525
22489
|
const resolvedNicknameData = useNicknameResolve(recipient, { enabled: isNicknameInput, chainId: activeChainId });
|
|
22526
22490
|
const effectiveAddress = isNicknameInput ? resolvedNicknameData?.resolvedAddress : recipient;
|
|
22527
|
-
const complianceAmount =
|
|
22491
|
+
const complianceAmount = useMemo9(() => {
|
|
22528
22492
|
if (!isSecurity || !amount || !selectedAsset) return void 0;
|
|
22529
22493
|
try {
|
|
22530
22494
|
return parseUnits2(amount, selectedAsset.decimals || 18);
|
|
@@ -22562,9 +22526,9 @@ function SendMenu() {
|
|
|
22562
22526
|
break;
|
|
22563
22527
|
}
|
|
22564
22528
|
}, [txStep, selectedAsset, isNft, t]);
|
|
22565
|
-
return /* @__PURE__ */ jsxs98(
|
|
22566
|
-
txStep === "select-asset" && /* @__PURE__ */
|
|
22567
|
-
txStep === "input" && /* @__PURE__ */
|
|
22529
|
+
return /* @__PURE__ */ jsxs98(Fragment43, { children: [
|
|
22530
|
+
txStep === "select-asset" && /* @__PURE__ */ jsx109(AssetList, { assets }),
|
|
22531
|
+
txStep === "input" && /* @__PURE__ */ jsx109(
|
|
22568
22532
|
InputSendStep,
|
|
22569
22533
|
{
|
|
22570
22534
|
erc3643Compliance,
|
|
@@ -22573,7 +22537,7 @@ function SendMenu() {
|
|
|
22573
22537
|
isAssetsLoading
|
|
22574
22538
|
}
|
|
22575
22539
|
),
|
|
22576
|
-
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */
|
|
22540
|
+
txStep === "confirm" && effectiveAddress && selectedAsset && /* @__PURE__ */ jsx109(
|
|
22577
22541
|
ConfirmSendStep,
|
|
22578
22542
|
{
|
|
22579
22543
|
sendTransaction,
|
|
@@ -22585,21 +22549,21 @@ function SendMenu() {
|
|
|
22585
22549
|
}
|
|
22586
22550
|
),
|
|
22587
22551
|
txStep === "pending" && /* @__PURE__ */ jsxs98(Highlight, { type: "info", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22588
|
-
/* @__PURE__ */
|
|
22552
|
+
/* @__PURE__ */ jsx109(Loader33, { className: "h-4 w-4 animate-spin" }),
|
|
22589
22553
|
/* @__PURE__ */ jsxs98("span", { className: "flex-1", children: [
|
|
22590
|
-
/* @__PURE__ */
|
|
22591
|
-
/* @__PURE__ */
|
|
22554
|
+
/* @__PURE__ */ jsx109("span", { className: "block leading-4 font-semibold", children: t("passport:sendMenu.pendingStep") }),
|
|
22555
|
+
/* @__PURE__ */ jsx109("span", { children: t("passport:sendMenu.pendingStepMsg") })
|
|
22592
22556
|
] })
|
|
22593
22557
|
] }),
|
|
22594
|
-
txStep === "success" && userOpHash && /* @__PURE__ */ jsxs98(
|
|
22558
|
+
txStep === "success" && userOpHash && /* @__PURE__ */ jsxs98(Fragment43, { children: [
|
|
22595
22559
|
/* @__PURE__ */ jsxs98(Highlight, { type: "success", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
22596
|
-
/* @__PURE__ */
|
|
22560
|
+
/* @__PURE__ */ jsx109(CheckCircle26, { className: "h-4 w-4" }),
|
|
22597
22561
|
/* @__PURE__ */ jsxs98("span", { className: "flex-1", children: [
|
|
22598
|
-
/* @__PURE__ */
|
|
22599
|
-
/* @__PURE__ */
|
|
22562
|
+
/* @__PURE__ */ jsx109("span", { className: "block leading-4 font-semibold", children: "Transaction Initiated" }),
|
|
22563
|
+
/* @__PURE__ */ jsx109("span", { children: "Your transaction is being processed and might take some time to accomplish. Visit your transaction history for details." })
|
|
22600
22564
|
] })
|
|
22601
22565
|
] }),
|
|
22602
|
-
/* @__PURE__ */
|
|
22566
|
+
/* @__PURE__ */ jsx109(Button, { onClick: () => setPage("transactions" /* TRANSACTIONS */), className: "w-full", size: "large", children: "TRANSACTION HISTORY" })
|
|
22603
22567
|
] })
|
|
22604
22568
|
] });
|
|
22605
22569
|
}
|
|
@@ -22633,7 +22597,7 @@ var init_send = __esm({
|
|
|
22633
22597
|
// src/internal/components/SendMenu/SendFlowSelector.tsx
|
|
22634
22598
|
import { ArrowLeft as ArrowLeft19, ArrowRightIcon as ArrowRightIcon2, ArrowRightLeftIcon as ArrowRightLeftIcon2, InfoIcon as InfoIcon4 } from "lucide-react";
|
|
22635
22599
|
import { useEffect as useEffect43 } from "react";
|
|
22636
|
-
import { jsx as
|
|
22600
|
+
import { jsx as jsx110, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
22637
22601
|
function SelectorFlowButtons() {
|
|
22638
22602
|
const { t } = useT();
|
|
22639
22603
|
const selectorFlow = useFlowSelectorStore((st) => st.flow);
|
|
@@ -22661,7 +22625,7 @@ function SelectorFlowButtons() {
|
|
|
22661
22625
|
useFlowSelectorStore.getState().setFlow("send");
|
|
22662
22626
|
},
|
|
22663
22627
|
children: [
|
|
22664
|
-
/* @__PURE__ */
|
|
22628
|
+
/* @__PURE__ */ jsx110(ArrowRightIcon2, { className: "h-4 w-4" }),
|
|
22665
22629
|
t("passport:sendMenu.actions.send")
|
|
22666
22630
|
]
|
|
22667
22631
|
}
|
|
@@ -22677,7 +22641,7 @@ function SelectorFlowButtons() {
|
|
|
22677
22641
|
useFlowSelectorStore.getState().setFlow("bridge");
|
|
22678
22642
|
},
|
|
22679
22643
|
children: [
|
|
22680
|
-
/* @__PURE__ */
|
|
22644
|
+
/* @__PURE__ */ jsx110(ArrowRightLeftIcon2, { className: "h-4 w-4" }),
|
|
22681
22645
|
t("passport:bridgeMenu.actions.bridge")
|
|
22682
22646
|
]
|
|
22683
22647
|
}
|
|
@@ -22701,7 +22665,7 @@ function SendFlowSelector() {
|
|
|
22701
22665
|
},
|
|
22702
22666
|
[]
|
|
22703
22667
|
);
|
|
22704
|
-
return /* @__PURE__ */
|
|
22668
|
+
return /* @__PURE__ */ jsx110(
|
|
22705
22669
|
"div",
|
|
22706
22670
|
{
|
|
22707
22671
|
style: {
|
|
@@ -22712,7 +22676,7 @@ function SendFlowSelector() {
|
|
|
22712
22676
|
children: /* @__PURE__ */ jsxs99(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
22713
22677
|
/* @__PURE__ */ jsxs99("div", { className: "flex items-center justify-between", children: [
|
|
22714
22678
|
/* @__PURE__ */ jsxs99("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22715
|
-
/* @__PURE__ */
|
|
22679
|
+
/* @__PURE__ */ jsx110(
|
|
22716
22680
|
Button,
|
|
22717
22681
|
{
|
|
22718
22682
|
variant: "ghost",
|
|
@@ -22725,7 +22689,7 @@ function SendFlowSelector() {
|
|
|
22725
22689
|
switch (bridgeStep) {
|
|
22726
22690
|
case "select":
|
|
22727
22691
|
return setPage("main-menu" /* MAIN_MENU */);
|
|
22728
|
-
//
|
|
22692
|
+
// case ''
|
|
22729
22693
|
case "tx-history-details":
|
|
22730
22694
|
return setBridgeStep("tx-history");
|
|
22731
22695
|
default:
|
|
@@ -22742,21 +22706,21 @@ function SendFlowSelector() {
|
|
|
22742
22706
|
}
|
|
22743
22707
|
}
|
|
22744
22708
|
},
|
|
22745
|
-
children: /* @__PURE__ */
|
|
22709
|
+
children: /* @__PURE__ */ jsx110(ArrowLeft19, { className: "h-4 w-4" })
|
|
22746
22710
|
}
|
|
22747
22711
|
),
|
|
22748
|
-
/* @__PURE__ */
|
|
22712
|
+
/* @__PURE__ */ jsx110("span", { className: "text-xl font-semibold", children: menuTitle })
|
|
22749
22713
|
] }),
|
|
22750
|
-
/* @__PURE__ */
|
|
22714
|
+
/* @__PURE__ */ jsx110(BridgeHistorySwitch, {})
|
|
22751
22715
|
] }),
|
|
22752
|
-
/* @__PURE__ */
|
|
22716
|
+
/* @__PURE__ */ jsx110(SelectorFlowButtons, {}),
|
|
22753
22717
|
SELECTOR_FLOW[selectorFlow],
|
|
22754
22718
|
error && /* @__PURE__ */ jsxs99(Highlight, { type: "error", className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
22755
22719
|
/* @__PURE__ */ jsxs99("div", { className: "w-full flex gap-[var(--ui-kit-gap)]", children: [
|
|
22756
|
-
/* @__PURE__ */
|
|
22757
|
-
/* @__PURE__ */
|
|
22720
|
+
/* @__PURE__ */ jsx110(InfoIcon4, { className: "h-4 w-4 flex-none" }),
|
|
22721
|
+
/* @__PURE__ */ jsx110("span", { children: error })
|
|
22758
22722
|
] }),
|
|
22759
|
-
/* @__PURE__ */
|
|
22723
|
+
/* @__PURE__ */ jsx110(
|
|
22760
22724
|
Button,
|
|
22761
22725
|
{
|
|
22762
22726
|
variant: "default",
|
|
@@ -22767,7 +22731,7 @@ function SendFlowSelector() {
|
|
|
22767
22731
|
}
|
|
22768
22732
|
)
|
|
22769
22733
|
] }),
|
|
22770
|
-
/* @__PURE__ */
|
|
22734
|
+
/* @__PURE__ */ jsx110("div", {}, renderKey)
|
|
22771
22735
|
] })
|
|
22772
22736
|
}
|
|
22773
22737
|
);
|
|
@@ -22786,8 +22750,8 @@ var init_SendFlowSelector = __esm({
|
|
|
22786
22750
|
init_send();
|
|
22787
22751
|
init_useFlowSelector();
|
|
22788
22752
|
SELECTOR_FLOW = {
|
|
22789
|
-
send: /* @__PURE__ */
|
|
22790
|
-
bridge: /* @__PURE__ */
|
|
22753
|
+
send: /* @__PURE__ */ jsx110(SendMenu, {}),
|
|
22754
|
+
bridge: /* @__PURE__ */ jsx110(HyperlaneBridge, {})
|
|
22791
22755
|
};
|
|
22792
22756
|
}
|
|
22793
22757
|
});
|
|
@@ -22841,10 +22805,10 @@ var init_pro_mode = __esm({
|
|
|
22841
22805
|
});
|
|
22842
22806
|
|
|
22843
22807
|
// src/internal/assets/KycIcon.tsx
|
|
22844
|
-
import { jsx as
|
|
22808
|
+
import { jsx as jsx111 } from "react/jsx-runtime";
|
|
22845
22809
|
function KycIcon(props) {
|
|
22846
22810
|
const { width = "24", height = "24", ...rest } = props;
|
|
22847
|
-
return /* @__PURE__ */
|
|
22811
|
+
return /* @__PURE__ */ jsx111("svg", { ...rest, width, height, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx111(
|
|
22848
22812
|
"path",
|
|
22849
22813
|
{
|
|
22850
22814
|
d: "M12 18.5455C10.1727 18.5455 8.625 17.9114 7.35682 16.6432C6.08864 15.375 5.45455 13.8273 5.45455 12C5.45455 10.1727 6.08864 8.625 7.35682 7.35682C8.625 6.08864 10.1727 5.45455 12 5.45455C13.8273 5.45455 15.375 6.08864 16.6432 7.35682C17.9114 8.625 18.5455 10.1727 18.5455 12C18.5455 13.8273 17.9114 15.375 16.6432 16.6432C15.375 17.9114 13.8273 18.5455 12 18.5455ZM12 16.9091C13.3636 16.9091 14.5227 16.4318 15.4773 15.4773C16.4318 14.5227 16.9091 13.3636 16.9091 12C16.9091 11.7682 16.892 11.5398 16.858 11.3148C16.8239 11.0898 16.7727 10.8682 16.7045 10.65C16.5 10.6909 16.2955 10.7216 16.0909 10.742C15.8864 10.7625 15.6818 10.7727 15.4773 10.7727C14.6182 10.7727 13.8 10.6091 13.0227 10.2818C12.2455 9.95455 11.55 9.47727 10.9364 8.85C10.5545 9.62727 10.0295 10.3023 9.36136 10.875C8.69318 11.4477 7.93636 11.8636 7.09091 12.1227C7.13182 13.4591 7.62614 14.5909 8.57386 15.5182C9.52159 16.4455 10.6636 16.9091 12 16.9091ZM7.41818 10.2409C8.01818 9.92727 8.475 9.5625 8.78864 9.14659C9.10227 8.73068 9.40909 8.23636 9.70909 7.66364C9.19091 7.93636 8.73409 8.29432 8.33864 8.7375C7.94318 9.18068 7.63636 9.68182 7.41818 10.2409ZM9.95455 13.6364C9.72273 13.6364 9.52841 13.558 9.37159 13.4011C9.21477 13.2443 9.13636 13.05 9.13636 12.8182C9.13636 12.5864 9.21477 12.392 9.37159 12.2352C9.52841 12.0784 9.72273 12 9.95455 12C10.1864 12 10.3807 12.0784 10.5375 12.2352C10.6943 12.392 10.7727 12.5864 10.7727 12.8182C10.7727 13.05 10.6943 13.2443 10.5375 13.4011C10.3807 13.558 10.1864 13.6364 9.95455 13.6364ZM15.4773 9.13636H15.7227C15.8045 9.13636 15.8864 9.12955 15.9682 9.11591C15.5182 8.50227 14.9489 8.01136 14.2602 7.64318C13.5716 7.275 12.8182 7.09091 12 7.09091H11.7545C11.6727 7.09091 11.5977 7.09773 11.5295 7.11136C12.0614 7.725 12.6239 8.21591 13.217 8.58409C13.8102 8.95227 14.5636 9.13636 15.4773 9.13636ZM14.0455 13.6364C13.8136 13.6364 13.6193 13.558 13.4625 13.4011C13.3057 13.2443 13.2273 13.05 13.2273 12.8182C13.2273 12.5864 13.3057 12.392 13.4625 12.2352C13.6193 12.0784 13.8136 12 14.0455 12C14.2773 12 14.4716 12.0784 14.6284 12.2352C14.7852 12.392 14.8636 12.5864 14.8636 12.8182C14.8636 13.05 14.7852 13.2443 14.6284 13.4011C14.4716 13.558 14.2773 13.6364 14.0455 13.6364ZM3 7.09091V4.63636C3 4.18636 3.16023 3.80114 3.48068 3.48068C3.80114 3.16023 4.18636 3 4.63636 3H7.09091V4.63636H4.63636V7.09091H3ZM7.09091 21H4.63636C4.18636 21 3.80114 20.8398 3.48068 20.5193C3.16023 20.1989 3 19.8136 3 19.3636V16.9091H4.63636V19.3636H7.09091V21ZM16.9091 21V19.3636H19.3636V16.9091H21V19.3636C21 19.8136 20.8398 20.1989 20.5193 20.5193C20.1989 20.8398 19.8136 21 19.3636 21H16.9091ZM19.3636 7.09091V4.63636H16.9091V3H19.3636C19.8136 3 20.1989 3.16023 20.5193 3.48068C20.8398 3.80114 21 4.18636 21 4.63636V7.09091H19.3636Z",
|
|
@@ -22879,7 +22843,7 @@ var init_constants7 = __esm({
|
|
|
22879
22843
|
import { useQuery as useQuery24 } from "@tanstack/react-query";
|
|
22880
22844
|
import { ArrowLeft as ArrowLeft20, HardDrive as HardDrive3 } from "lucide-react";
|
|
22881
22845
|
import { useEffect as useEffect44 } from "react";
|
|
22882
|
-
import { jsx as
|
|
22846
|
+
import { jsx as jsx112, jsxs as jsxs100 } from "react/jsx-runtime";
|
|
22883
22847
|
function useSettingsButtons() {
|
|
22884
22848
|
const config = useProviderConfig().config;
|
|
22885
22849
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
@@ -22936,10 +22900,10 @@ function SettingsMenu() {
|
|
|
22936
22900
|
className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)] flex flex-col gap-[var(--ui-kit-gap)]",
|
|
22937
22901
|
children: [
|
|
22938
22902
|
/* @__PURE__ */ jsxs100("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22939
|
-
/* @__PURE__ */
|
|
22940
|
-
/* @__PURE__ */
|
|
22903
|
+
/* @__PURE__ */ jsx112(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ jsx112(ArrowLeft20, { className: "h-4 w-4" }) }),
|
|
22904
|
+
/* @__PURE__ */ jsx112("span", { className: "text-xl font-semibold", children: t("passport:common.settings") })
|
|
22941
22905
|
] }),
|
|
22942
|
-
/* @__PURE__ */
|
|
22906
|
+
/* @__PURE__ */ jsx112("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: settingsButtons.map((el) => ({ ...el, onClick: () => setPage(el.id) })).map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ jsxs100(
|
|
22943
22907
|
Button,
|
|
22944
22908
|
{
|
|
22945
22909
|
variant: "outline",
|
|
@@ -22951,8 +22915,8 @@ function SettingsMenu() {
|
|
|
22951
22915
|
highlightedKeys.includes(id) && "animate-glow-warning"
|
|
22952
22916
|
),
|
|
22953
22917
|
children: [
|
|
22954
|
-
/* @__PURE__ */
|
|
22955
|
-
/* @__PURE__ */
|
|
22918
|
+
/* @__PURE__ */ jsx112(Icon2, { className: "w-4 h-4" }),
|
|
22919
|
+
/* @__PURE__ */ jsx112("span", { children: t(name) })
|
|
22956
22920
|
]
|
|
22957
22921
|
},
|
|
22958
22922
|
id
|
|
@@ -22987,27 +22951,27 @@ var init_SettingsMenu2 = __esm({
|
|
|
22987
22951
|
|
|
22988
22952
|
// src/internal/components/TermsOfService.tsx
|
|
22989
22953
|
import { ArrowLeft as ArrowLeft21 } from "lucide-react";
|
|
22990
|
-
import { jsx as
|
|
22954
|
+
import { jsx as jsx113, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
22991
22955
|
function TermsOfService() {
|
|
22992
22956
|
const address = useSession((st) => st.address);
|
|
22993
22957
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
22994
22958
|
return /* @__PURE__ */ jsxs101("div", { className: "w-full p-[var(--ui-kit-pd)] flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
22995
22959
|
/* @__PURE__ */ jsxs101("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
22996
|
-
/* @__PURE__ */
|
|
22960
|
+
/* @__PURE__ */ jsx113(
|
|
22997
22961
|
Button,
|
|
22998
22962
|
{
|
|
22999
22963
|
variant: "ghost",
|
|
23000
22964
|
size: "icon",
|
|
23001
22965
|
title: "Back",
|
|
23002
22966
|
onClick: () => setPage(!!address ? "settings" /* SETTINGS */ : "auth" /* AUTH */),
|
|
23003
|
-
children: /* @__PURE__ */
|
|
22967
|
+
children: /* @__PURE__ */ jsx113(ArrowLeft21, { className: "h-4 w-4" })
|
|
23004
22968
|
}
|
|
23005
22969
|
),
|
|
23006
|
-
/* @__PURE__ */
|
|
22970
|
+
/* @__PURE__ */ jsx113("span", { className: "text-xl font-semibold", children: "Terms of Service" })
|
|
23007
22971
|
] }),
|
|
23008
22972
|
/* @__PURE__ */ jsxs101(Highlight, { type: "warning", className: "text-center", children: [
|
|
23009
|
-
/* @__PURE__ */
|
|
23010
|
-
/* @__PURE__ */
|
|
22973
|
+
/* @__PURE__ */ jsx113("span", { className: "block text-xs", children: "By using EmbarkAI Wallet you agree to our terms." }),
|
|
22974
|
+
/* @__PURE__ */ jsx113("span", { className: "block text-xs", children: "To be updated..." })
|
|
23011
22975
|
] })
|
|
23012
22976
|
] });
|
|
23013
22977
|
}
|
|
@@ -23645,7 +23609,7 @@ var init_api5 = __esm({
|
|
|
23645
23609
|
});
|
|
23646
23610
|
|
|
23647
23611
|
// src/internal/assets/LumiaIcon.tsx
|
|
23648
|
-
import { jsx as
|
|
23612
|
+
import { jsx as jsx114, jsxs as jsxs102 } from "react/jsx-runtime";
|
|
23649
23613
|
function LumiaIcon3(props) {
|
|
23650
23614
|
const { width = "24", height = "24", ...svgProps } = props;
|
|
23651
23615
|
return /* @__PURE__ */ jsxs102(
|
|
@@ -23659,29 +23623,29 @@ function LumiaIcon3(props) {
|
|
|
23659
23623
|
xmlns: "http://www.w3.org/2000/svg",
|
|
23660
23624
|
style: { flexShrink: 0 },
|
|
23661
23625
|
children: [
|
|
23662
|
-
/* @__PURE__ */
|
|
23663
|
-
/* @__PURE__ */
|
|
23626
|
+
/* @__PURE__ */ jsx114("rect", { width: "72", height: "72", rx: "36", fill: "var(--ui-kit-fg)" }),
|
|
23627
|
+
/* @__PURE__ */ jsx114(
|
|
23664
23628
|
"path",
|
|
23665
23629
|
{
|
|
23666
23630
|
d: "M25.3636 35.359H6.77698L26.3313 26.2792L35.3827 6.78174L35.404 25.3043C35.4112 30.8547 30.9139 35.3661 25.3565 35.3661L25.3636 35.359Z",
|
|
23667
23631
|
fill: "var(--ui-kit-bg)"
|
|
23668
23632
|
}
|
|
23669
23633
|
),
|
|
23670
|
-
/* @__PURE__ */
|
|
23634
|
+
/* @__PURE__ */ jsx114(
|
|
23671
23635
|
"path",
|
|
23672
23636
|
{
|
|
23673
23637
|
d: "M47.4365 35.359H66.0231L46.4687 26.2792L37.4174 6.78174L37.396 25.3043C37.3889 30.8547 41.8861 35.3661 47.4436 35.3661L47.4365 35.359Z",
|
|
23674
23638
|
fill: "var(--ui-kit-bg)"
|
|
23675
23639
|
}
|
|
23676
23640
|
),
|
|
23677
|
-
/* @__PURE__ */
|
|
23641
|
+
/* @__PURE__ */ jsx114(
|
|
23678
23642
|
"path",
|
|
23679
23643
|
{
|
|
23680
23644
|
d: "M47.4365 37.4226H66.0231L46.4687 46.5025L37.4174 65.9999L37.396 47.4773C37.3889 41.927 41.8861 37.4155 47.4436 37.4155L47.4365 37.4226Z",
|
|
23681
23645
|
fill: "var(--ui-kit-bg)"
|
|
23682
23646
|
}
|
|
23683
23647
|
),
|
|
23684
|
-
/* @__PURE__ */
|
|
23648
|
+
/* @__PURE__ */ jsx114(
|
|
23685
23649
|
"path",
|
|
23686
23650
|
{
|
|
23687
23651
|
d: "M25.3636 37.4226H6.77698L26.3313 46.5025L35.3827 65.9999L35.404 47.4773C35.4112 41.927 30.9139 37.4155 25.3565 37.4155L25.3636 37.4226Z",
|
|
@@ -23758,14 +23722,14 @@ var init_utils10 = __esm({
|
|
|
23758
23722
|
|
|
23759
23723
|
// src/internal/components/TransactionsMenu/TransactionsGroup.tsx
|
|
23760
23724
|
import { ChevronDown, ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight6, ChevronUp, Copy as Copy4 } from "lucide-react";
|
|
23761
|
-
import { Fragment as
|
|
23725
|
+
import { Fragment as Fragment44, jsx as jsx115, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
23762
23726
|
function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
23763
23727
|
const internalSymbol = internal.assetSymbol || assetSymbol;
|
|
23764
23728
|
const internalDecimals = internal.decimals ?? assetDecimals;
|
|
23765
23729
|
const { t } = useT();
|
|
23766
23730
|
return /* @__PURE__ */ jsxs103("div", { className: "border-t border-dashed border-[var(--ui-kit-bd)]", children: [
|
|
23767
23731
|
/* @__PURE__ */ jsxs103("div", { className: "flex gap-2 items-center justify-between", children: [
|
|
23768
|
-
/* @__PURE__ */
|
|
23732
|
+
/* @__PURE__ */ jsx115("span", { className: "text-[var(--ui-kit-fg-muted)]", children: internal.method || "CALL" }),
|
|
23769
23733
|
/* @__PURE__ */ jsxs103("span", { children: [
|
|
23770
23734
|
formatValue2(internal.value, internalDecimals),
|
|
23771
23735
|
" ",
|
|
@@ -23777,7 +23741,7 @@ function InternalTransaction({ internal, assetSymbol, assetDecimals }) {
|
|
|
23777
23741
|
internal.direction === "in" ? t("passport:common.from") : t("passport:common.to"),
|
|
23778
23742
|
": "
|
|
23779
23743
|
] }),
|
|
23780
|
-
/* @__PURE__ */
|
|
23744
|
+
/* @__PURE__ */ jsx115("span", { className: "font-mono", children: internal.counterpartyName || formatAddress(internal.counterparty) })
|
|
23781
23745
|
] })
|
|
23782
23746
|
] });
|
|
23783
23747
|
}
|
|
@@ -23801,11 +23765,11 @@ function TransactionsGroup(props) {
|
|
|
23801
23765
|
children: [
|
|
23802
23766
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
23803
23767
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center gap-1 flex-0 w-fit", children: [
|
|
23804
|
-
parent.direction === "in" ? /* @__PURE__ */
|
|
23805
|
-
/* @__PURE__ */
|
|
23806
|
-
parent.status === "ok" ? /* @__PURE__ */
|
|
23768
|
+
parent.direction === "in" ? /* @__PURE__ */ jsx115(ChevronLeft2, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx115(ChevronRight6, { className: "w-4 h-4" }),
|
|
23769
|
+
/* @__PURE__ */ jsx115("span", { className: "text-[10px] uppercase", children: isIncoming ? t("passport:common.received") : t("passport:common.sent") }),
|
|
23770
|
+
parent.status === "ok" ? /* @__PURE__ */ jsx115(PositiveIcon, {}) : /* @__PURE__ */ jsx115(NegativeIcon, {})
|
|
23807
23771
|
] }),
|
|
23808
|
-
/* @__PURE__ */
|
|
23772
|
+
/* @__PURE__ */ jsx115("span", { className: "block flex-0 font-mono text-[10px] text-[var(--ui-kit-fg-muted)]", children: formatTimestamp(group.timestampMs) })
|
|
23809
23773
|
] }),
|
|
23810
23774
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
23811
23775
|
/* @__PURE__ */ jsxs103("div", { className: "flex flex-col gap-0", children: [
|
|
@@ -23821,7 +23785,7 @@ function TransactionsGroup(props) {
|
|
|
23821
23785
|
] })
|
|
23822
23786
|
] }),
|
|
23823
23787
|
/* @__PURE__ */ jsxs103("div", { className: "flex items-center gap-0", children: [
|
|
23824
|
-
/* @__PURE__ */
|
|
23788
|
+
/* @__PURE__ */ jsx115(
|
|
23825
23789
|
Button,
|
|
23826
23790
|
{
|
|
23827
23791
|
variant: "ghost",
|
|
@@ -23830,10 +23794,10 @@ function TransactionsGroup(props) {
|
|
|
23830
23794
|
onClick: (e) => {
|
|
23831
23795
|
e.stopPropagation();
|
|
23832
23796
|
},
|
|
23833
|
-
children: /* @__PURE__ */
|
|
23797
|
+
children: /* @__PURE__ */ jsx115(Copy4, { className: "w-4 h-4" })
|
|
23834
23798
|
}
|
|
23835
23799
|
),
|
|
23836
|
-
/* @__PURE__ */
|
|
23800
|
+
/* @__PURE__ */ jsx115(
|
|
23837
23801
|
Button,
|
|
23838
23802
|
{
|
|
23839
23803
|
variant: "ghost",
|
|
@@ -23842,13 +23806,13 @@ function TransactionsGroup(props) {
|
|
|
23842
23806
|
onClick: (e) => {
|
|
23843
23807
|
e.stopPropagation();
|
|
23844
23808
|
},
|
|
23845
|
-
children: /* @__PURE__ */
|
|
23809
|
+
children: /* @__PURE__ */ jsx115(LumiaIcon3, { className: "w-4 h-4" })
|
|
23846
23810
|
}
|
|
23847
23811
|
)
|
|
23848
23812
|
] })
|
|
23849
23813
|
] }),
|
|
23850
|
-
internalsToRender.length > 0 && /* @__PURE__ */ jsxs103(
|
|
23851
|
-
/* @__PURE__ */
|
|
23814
|
+
internalsToRender.length > 0 && /* @__PURE__ */ jsxs103(Fragment44, { children: [
|
|
23815
|
+
/* @__PURE__ */ jsx115("div", { className: "w-full flex items-center h-4", children: /* @__PURE__ */ jsx115("div", { style: { borderTop: "1px solid var(--ui-kit-bd)" }, className: "flex-1" }) }),
|
|
23852
23816
|
/* @__PURE__ */ jsxs103(
|
|
23853
23817
|
"div",
|
|
23854
23818
|
{
|
|
@@ -23869,11 +23833,11 @@ function TransactionsGroup(props) {
|
|
|
23869
23833
|
internalsToRender.length,
|
|
23870
23834
|
")"
|
|
23871
23835
|
] }),
|
|
23872
|
-
expanded ? /* @__PURE__ */
|
|
23836
|
+
expanded ? /* @__PURE__ */ jsx115(ChevronUp, { className: "w-4 h-4 text-[var(--ui-kit-fg-muted)]" }) : /* @__PURE__ */ jsx115(ChevronDown, { className: "w-4 h-4 text-[var(--ui-kit-fg-muted)]" })
|
|
23873
23837
|
]
|
|
23874
23838
|
}
|
|
23875
23839
|
),
|
|
23876
|
-
expanded && /* @__PURE__ */
|
|
23840
|
+
expanded && /* @__PURE__ */ jsx115("div", { className: "px-2 pb-2 flex flex-col gap-2 text-xs", children: internalsToRender.map((internal) => /* @__PURE__ */ jsx115(
|
|
23877
23841
|
InternalTransaction,
|
|
23878
23842
|
{
|
|
23879
23843
|
internal,
|
|
@@ -23903,18 +23867,18 @@ var init_TransactionsGroup = __esm({
|
|
|
23903
23867
|
});
|
|
23904
23868
|
|
|
23905
23869
|
// src/internal/components/TransactionsMenu/TransactionsMenu.tsx
|
|
23906
|
-
import { useQuery as useQuery25, useQueryClient as
|
|
23870
|
+
import { useQuery as useQuery25, useQueryClient as useQueryClient25 } from "@tanstack/react-query";
|
|
23907
23871
|
import { ArrowLeft as ArrowLeft22, Loader as Loader34, RefreshCw as RefreshCw3, XCircle } from "lucide-react";
|
|
23908
|
-
import { useCallback as useCallback25, useState as
|
|
23909
|
-
import { jsx as
|
|
23872
|
+
import { useCallback as useCallback25, useState as useState32 } from "react";
|
|
23873
|
+
import { jsx as jsx116, jsxs as jsxs104 } from "react/jsx-runtime";
|
|
23910
23874
|
function TransactionsMenu() {
|
|
23911
|
-
const qc =
|
|
23875
|
+
const qc = useQueryClient25();
|
|
23912
23876
|
const address = useSession((st) => st.address);
|
|
23913
23877
|
const chainConfig = useSession((st) => st.chainConfig);
|
|
23914
23878
|
const { t } = useT();
|
|
23915
23879
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
23916
23880
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
23917
|
-
const [expandedGroups, setExpandedGroups] =
|
|
23881
|
+
const [expandedGroups, setExpandedGroups] = useState32({});
|
|
23918
23882
|
const historySupported = isTransactionHistorySupported(chainConfig?.id);
|
|
23919
23883
|
const {
|
|
23920
23884
|
data: txHistoryGroups = [],
|
|
@@ -23932,7 +23896,7 @@ function TransactionsMenu() {
|
|
|
23932
23896
|
[qc, chainConfig.id, address]
|
|
23933
23897
|
);
|
|
23934
23898
|
const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
|
|
23935
|
-
return /* @__PURE__ */
|
|
23899
|
+
return /* @__PURE__ */ jsx116(
|
|
23936
23900
|
"div",
|
|
23937
23901
|
{
|
|
23938
23902
|
style: {
|
|
@@ -23942,9 +23906,9 @@ function TransactionsMenu() {
|
|
|
23942
23906
|
className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
|
|
23943
23907
|
children: /* @__PURE__ */ jsxs104(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
23944
23908
|
/* @__PURE__ */ jsxs104("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
23945
|
-
/* @__PURE__ */
|
|
23946
|
-
/* @__PURE__ */
|
|
23947
|
-
historySupported && /* @__PURE__ */
|
|
23909
|
+
/* @__PURE__ */ jsx116(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ jsx116(ArrowLeft22, { className: "h-4 w-4" }) }),
|
|
23910
|
+
/* @__PURE__ */ jsx116("span", { className: "text-xl font-semibold", children: t("passport:transactionsMenu.title") }),
|
|
23911
|
+
historySupported && /* @__PURE__ */ jsx116(
|
|
23948
23912
|
Button,
|
|
23949
23913
|
{
|
|
23950
23914
|
variant: "ghost",
|
|
@@ -23952,18 +23916,18 @@ function TransactionsMenu() {
|
|
|
23952
23916
|
onClick: refreshTxHistory,
|
|
23953
23917
|
disabled: isTxHistoryFetching,
|
|
23954
23918
|
title: "Refresh transactions",
|
|
23955
|
-
children: isTxHistoryFetching ? /* @__PURE__ */
|
|
23919
|
+
children: isTxHistoryFetching ? /* @__PURE__ */ jsx116(Loader34, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx116(RefreshCw3, { className: "h-4 w-4" })
|
|
23956
23920
|
}
|
|
23957
23921
|
)
|
|
23958
23922
|
] }),
|
|
23959
|
-
!historySupported && /* @__PURE__ */
|
|
23960
|
-
historySupported && isTxHistoryLoading && /* @__PURE__ */
|
|
23923
|
+
!historySupported && /* @__PURE__ */ jsx116(Highlight, { type: "warning", children: /* @__PURE__ */ jsx116("span", { children: t("passport:transactionsMenu.comingSoon") }) }),
|
|
23924
|
+
historySupported && isTxHistoryLoading && /* @__PURE__ */ jsx116("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ jsx116(Loader34, { className: "w-4 h-4 animate-spin" }) }),
|
|
23961
23925
|
historySupported && !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ jsxs104(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
|
|
23962
|
-
/* @__PURE__ */
|
|
23963
|
-
/* @__PURE__ */
|
|
23926
|
+
/* @__PURE__ */ jsx116(XCircle, { className: "w-4 h-4 flex-none" }),
|
|
23927
|
+
/* @__PURE__ */ jsx116("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
|
|
23964
23928
|
] }),
|
|
23965
|
-
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */
|
|
23966
|
-
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */
|
|
23929
|
+
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ jsx116(Highlight, { type: "warning", children: /* @__PURE__ */ jsx116("span", { children: t("passport:transactionsMenu.noTransactions") }) }),
|
|
23930
|
+
historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ jsx116("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ jsx116(
|
|
23967
23931
|
TransactionsGroup,
|
|
23968
23932
|
{
|
|
23969
23933
|
group,
|
|
@@ -24167,7 +24131,7 @@ var init_PageMap = __esm({
|
|
|
24167
24131
|
|
|
24168
24132
|
// src/internal/hooks/usePageMapper.tsx
|
|
24169
24133
|
import { useCallback as useCallback26, useEffect as useEffect45 } from "react";
|
|
24170
|
-
import { jsx as
|
|
24134
|
+
import { jsx as jsx117 } from "react/jsx-runtime";
|
|
24171
24135
|
function usePageMapper() {
|
|
24172
24136
|
const page = useLayoutDataStore((st) => st.page);
|
|
24173
24137
|
const {
|
|
@@ -24194,7 +24158,7 @@ function usePageMapper() {
|
|
|
24194
24158
|
const PageContentComponent = pageItem.component;
|
|
24195
24159
|
setDialogTitle(pageItem.title);
|
|
24196
24160
|
setDialogDescription(pageItem.description);
|
|
24197
|
-
setDialogContent(/* @__PURE__ */
|
|
24161
|
+
setDialogContent(/* @__PURE__ */ jsx117(PageContentComponent, {}));
|
|
24198
24162
|
setIsDialogOpen(true);
|
|
24199
24163
|
},
|
|
24200
24164
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
@@ -24275,7 +24239,7 @@ var init_package = __esm({
|
|
|
24275
24239
|
"package.json"() {
|
|
24276
24240
|
package_default = {
|
|
24277
24241
|
name: "@embarkai/ui-kit",
|
|
24278
|
-
version: "0.4.
|
|
24242
|
+
version: "0.4.31",
|
|
24279
24243
|
description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
|
|
24280
24244
|
type: "module",
|
|
24281
24245
|
main: "./dist/index.cjs",
|
|
@@ -24373,11 +24337,11 @@ var init_package = __esm({
|
|
|
24373
24337
|
});
|
|
24374
24338
|
|
|
24375
24339
|
// src/internal/components/Footer/Footer.tsx
|
|
24376
|
-
import { useMutation as useMutation20, useQueryClient as
|
|
24340
|
+
import { useMutation as useMutation20, useQueryClient as useQueryClient26 } from "@tanstack/react-query";
|
|
24377
24341
|
import { Loader as Loader35, LogOut } from "lucide-react";
|
|
24378
|
-
import { jsx as
|
|
24342
|
+
import { jsx as jsx118, jsxs as jsxs105 } from "react/jsx-runtime";
|
|
24379
24343
|
function Footer() {
|
|
24380
|
-
const qc =
|
|
24344
|
+
const qc = useQueryClient26();
|
|
24381
24345
|
const { callbacksRef } = useProviderConfig();
|
|
24382
24346
|
const { address, setSession, setAddress, setStatus, setError, setIsLoading } = useSession();
|
|
24383
24347
|
const chainConfig = useSession((st) => st.chainConfig);
|
|
@@ -24416,7 +24380,7 @@ function Footer() {
|
|
|
24416
24380
|
setIsDialogForced(false);
|
|
24417
24381
|
}
|
|
24418
24382
|
});
|
|
24419
|
-
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */
|
|
24383
|
+
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */ jsx118("div", { className: "flex-none w-4 h-4 rounded-full flex items-center justify-center bg-[var(--ui-kit-primary)]", children: /* @__PURE__ */ jsx118("span", { className: "text-[var(--ui-kit-fg-inverted)] text-xs font-bold", children: chainConfig.name.charAt(0) }) }));
|
|
24420
24384
|
return /* @__PURE__ */ jsxs105(
|
|
24421
24385
|
"div",
|
|
24422
24386
|
{
|
|
@@ -24432,8 +24396,8 @@ function Footer() {
|
|
|
24432
24396
|
disabled: isDisconnecting,
|
|
24433
24397
|
onClick: () => address && window.open(`${getExplorerUrl()}/address/${address}`, "_blank"),
|
|
24434
24398
|
children: [
|
|
24435
|
-
/* @__PURE__ */
|
|
24436
|
-
/* @__PURE__ */
|
|
24399
|
+
/* @__PURE__ */ jsx118(ChainIcon, { className: "flex-none w-6 h-6" }),
|
|
24400
|
+
/* @__PURE__ */ jsx118("span", { className: "text-xs font-bold", children: chainConfig.name || "EmbarkAI Wallet" })
|
|
24437
24401
|
]
|
|
24438
24402
|
}
|
|
24439
24403
|
),
|
|
@@ -24446,13 +24410,13 @@ function Footer() {
|
|
|
24446
24410
|
onClick: () => disconnect(address),
|
|
24447
24411
|
disabled: isDisconnecting,
|
|
24448
24412
|
children: [
|
|
24449
|
-
/* @__PURE__ */
|
|
24450
|
-
isDisconnecting ? /* @__PURE__ */
|
|
24413
|
+
/* @__PURE__ */ jsx118("span", { children: t("passport:auth.logout") }),
|
|
24414
|
+
isDisconnecting ? /* @__PURE__ */ jsx118(Loader35, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx118(LogOut, { className: "w-4 h-4" })
|
|
24451
24415
|
]
|
|
24452
24416
|
}
|
|
24453
24417
|
) : null
|
|
24454
24418
|
] }),
|
|
24455
|
-
/* @__PURE__ */
|
|
24419
|
+
/* @__PURE__ */ jsx118(
|
|
24456
24420
|
"span",
|
|
24457
24421
|
{
|
|
24458
24422
|
className: cn(
|
|
@@ -24493,8 +24457,8 @@ var init_Footer2 = __esm({
|
|
|
24493
24457
|
// src/internal/components/Header/Header.tsx
|
|
24494
24458
|
import { useQuery as useQuery27 } from "@tanstack/react-query";
|
|
24495
24459
|
import { Copy as Copy5, Loader as Loader36 } from "lucide-react";
|
|
24496
|
-
import { useCallback as useCallback27, useRef as useRef20, useState as
|
|
24497
|
-
import { Fragment as
|
|
24460
|
+
import { useCallback as useCallback27, useRef as useRef20, useState as useState33 } from "react";
|
|
24461
|
+
import { Fragment as Fragment45, jsx as jsx119, jsxs as jsxs106 } from "react/jsx-runtime";
|
|
24498
24462
|
function formatAddress2(addr) {
|
|
24499
24463
|
if (!addr) return "";
|
|
24500
24464
|
return `${addr.slice(0, 10)}...${addr.slice(-4)}`;
|
|
@@ -24505,8 +24469,8 @@ function Header() {
|
|
|
24505
24469
|
const chainConfig = useSession((st) => st.chainConfig);
|
|
24506
24470
|
const { t } = useT();
|
|
24507
24471
|
const proMode = useProMode();
|
|
24508
|
-
const [proToast, setProToast] =
|
|
24509
|
-
const [copied, setCopied] =
|
|
24472
|
+
const [proToast, setProToast] = useState33(false);
|
|
24473
|
+
const [copied, setCopied] = useState33(false);
|
|
24510
24474
|
const clickCountRef = useRef20(0);
|
|
24511
24475
|
const clickTimerRef = useRef20(null);
|
|
24512
24476
|
const handleAvatarClick = useCallback27(() => {
|
|
@@ -24535,7 +24499,7 @@ function Header() {
|
|
|
24535
24499
|
});
|
|
24536
24500
|
const avatar = profile?.avatar || jwtTokenManager2.getAvatar();
|
|
24537
24501
|
const displayName = profile?.nicknameDisplay || profile?.displayName || jwtTokenManager2.getDisplayName();
|
|
24538
|
-
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */
|
|
24502
|
+
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */ jsx119("div", { className: "flex-none w-4 h-4 rounded-full flex items-center justify-center bg-[var(--ui-kit-primary)]", children: /* @__PURE__ */ jsx119("span", { className: "text-[var(--ui-kit-fg-inverted)] text-xs font-bold", children: chainConfig.name.charAt(0) }) }));
|
|
24539
24503
|
return /* @__PURE__ */ jsxs106(
|
|
24540
24504
|
"div",
|
|
24541
24505
|
{
|
|
@@ -24549,8 +24513,8 @@ function Header() {
|
|
|
24549
24513
|
className: "relative flex-none w-12 h-12 flex items-center justify-center cursor-pointer select-none",
|
|
24550
24514
|
onClick: handleAvatarClick,
|
|
24551
24515
|
children: [
|
|
24552
|
-
proMode && /* @__PURE__ */
|
|
24553
|
-
avatar ? /* @__PURE__ */
|
|
24516
|
+
proMode && /* @__PURE__ */ jsx119("span", { className: "absolute -top-1 -right-1 text-[8px] font-bold px-1 rounded bg-[var(--ui-kit-primary)] text-[var(--ui-kit-fg-inverted)] leading-3", children: "PRO" }),
|
|
24517
|
+
avatar ? /* @__PURE__ */ jsx119("img", { src: avatar, alt: displayName, className: "w-full h-full object-cover rounded-full" }) : /* @__PURE__ */ jsx119(LumiaIcon3, { width: 48, height: 48 })
|
|
24554
24518
|
]
|
|
24555
24519
|
}
|
|
24556
24520
|
),
|
|
@@ -24560,10 +24524,10 @@ function Header() {
|
|
|
24560
24524
|
style: { width: "calc(100% - 48px - var(--ui-kit-gap))" },
|
|
24561
24525
|
className: "flex-1 flex flex-col justify-center gap-1",
|
|
24562
24526
|
children: [
|
|
24563
|
-
isProfileLoading && /* @__PURE__ */
|
|
24564
|
-
!!address && !isProfileLoading && !!profile && /* @__PURE__ */ jsxs106(
|
|
24527
|
+
isProfileLoading && /* @__PURE__ */ jsx119(Loader36, { className: "w-4 h-4 animate-spin" }),
|
|
24528
|
+
!!address && !isProfileLoading && !!profile && /* @__PURE__ */ jsxs106(Fragment45, { children: [
|
|
24565
24529
|
/* @__PURE__ */ jsxs106("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
24566
|
-
/* @__PURE__ */
|
|
24530
|
+
/* @__PURE__ */ jsx119(
|
|
24567
24531
|
"span",
|
|
24568
24532
|
{
|
|
24569
24533
|
className: cn(
|
|
@@ -24573,9 +24537,9 @@ function Header() {
|
|
|
24573
24537
|
children: displayName || config.current?.ui?.title || "EmbarkAI"
|
|
24574
24538
|
}
|
|
24575
24539
|
),
|
|
24576
|
-
/* @__PURE__ */
|
|
24540
|
+
/* @__PURE__ */ jsx119(KYCStatus, {})
|
|
24577
24541
|
] }),
|
|
24578
|
-
/* @__PURE__ */
|
|
24542
|
+
/* @__PURE__ */ jsx119(BalanceView, {})
|
|
24579
24543
|
] })
|
|
24580
24544
|
]
|
|
24581
24545
|
}
|
|
@@ -24583,10 +24547,10 @@ function Header() {
|
|
|
24583
24547
|
] }),
|
|
24584
24548
|
!!address && /* @__PURE__ */ jsxs106("div", { className: "w-full flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
24585
24549
|
/* @__PURE__ */ jsxs106("div", { className: "flex items-center w-fit text-[10px] px-2 leading-6 text-[var(--ui-kit-fg)] gap-2", children: [
|
|
24586
|
-
/* @__PURE__ */
|
|
24587
|
-
/* @__PURE__ */
|
|
24550
|
+
/* @__PURE__ */ jsx119("span", { children: formatAddress2(address) }),
|
|
24551
|
+
/* @__PURE__ */ jsx119(ChainIcon, { className: "flex-none w-4 h-4" })
|
|
24588
24552
|
] }),
|
|
24589
|
-
/* @__PURE__ */
|
|
24553
|
+
/* @__PURE__ */ jsx119("div", { className: "w-fit flex items-center gap-[var(--ui-kit-gap)] justify-between", children: /* @__PURE__ */ jsxs106(
|
|
24590
24554
|
Button,
|
|
24591
24555
|
{
|
|
24592
24556
|
size: "small",
|
|
@@ -24598,13 +24562,13 @@ function Header() {
|
|
|
24598
24562
|
setTimeout(() => setCopied(false), 1500);
|
|
24599
24563
|
},
|
|
24600
24564
|
children: [
|
|
24601
|
-
copied ? /* @__PURE__ */
|
|
24602
|
-
/* @__PURE__ */
|
|
24565
|
+
copied ? /* @__PURE__ */ jsx119(PositiveIcon, {}) : /* @__PURE__ */ jsx119(Copy5, { className: "w-4 h-4" }),
|
|
24566
|
+
/* @__PURE__ */ jsx119("span", { className: "uppercase", children: t("passport:common.copy") })
|
|
24603
24567
|
]
|
|
24604
24568
|
}
|
|
24605
24569
|
) })
|
|
24606
24570
|
] }),
|
|
24607
|
-
proToast && /* @__PURE__ */
|
|
24571
|
+
proToast && /* @__PURE__ */ jsx119("div", { className: "text-xs text-center text-[var(--ui-kit-primary)] font-medium animate-pulse", children: "Pro Mode activated" })
|
|
24608
24572
|
]
|
|
24609
24573
|
}
|
|
24610
24574
|
);
|
|
@@ -24639,7 +24603,7 @@ import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
|
24639
24603
|
import { merge as merge2 } from "lodash-es";
|
|
24640
24604
|
import { ArrowLeft as ArrowLeft23, SlidersHorizontal, X as X2 } from "lucide-react";
|
|
24641
24605
|
import { forwardRef as forwardRef4 } from "react";
|
|
24642
|
-
import { jsx as
|
|
24606
|
+
import { jsx as jsx120, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
24643
24607
|
function useDecideContentStyles() {
|
|
24644
24608
|
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
24645
24609
|
const isClosing = useLayoutStore((st) => !!st.isDialogOpen && !!st.isDialogClosing);
|
|
@@ -24662,7 +24626,7 @@ var init_dialog = __esm({
|
|
|
24662
24626
|
Dialog = DialogPrimitive.Root;
|
|
24663
24627
|
DialogPortal = DialogPrimitive.Portal;
|
|
24664
24628
|
DialogOverlay = forwardRef4(
|
|
24665
|
-
({ className, closing, ...props }, ref) => /* @__PURE__ */
|
|
24629
|
+
({ className, closing, ...props }, ref) => /* @__PURE__ */ jsx120(
|
|
24666
24630
|
DialogPrimitive.Overlay,
|
|
24667
24631
|
{
|
|
24668
24632
|
ref,
|
|
@@ -24695,9 +24659,9 @@ var init_dialog = __esm({
|
|
|
24695
24659
|
const { isMobileView, isClosing, style } = useDecideContentStyles();
|
|
24696
24660
|
const animationCnPrefix = isMobileView ? "animate-mobile-dialog" : "animate-dialog";
|
|
24697
24661
|
const dialogAnimationCn = isClosing ? `${animationCnPrefix}-out` : `${animationCnPrefix}-in`;
|
|
24698
|
-
return /* @__PURE__ */
|
|
24699
|
-
/* @__PURE__ */
|
|
24700
|
-
/* @__PURE__ */
|
|
24662
|
+
return /* @__PURE__ */ jsx120(DialogPortal, { children: /* @__PURE__ */ jsxs107("div", { className: "embarkai-ui-scope", "data-current-theme-mode": colorMode, style: { ...style, outline: "none" }, children: [
|
|
24663
|
+
/* @__PURE__ */ jsx120(DialogOverlay, { closing: isClosing, className: cn(isWalletLinking && "pointer-events-none") }),
|
|
24664
|
+
/* @__PURE__ */ jsx120(
|
|
24701
24665
|
"div",
|
|
24702
24666
|
{
|
|
24703
24667
|
className: cn(
|
|
@@ -24737,8 +24701,8 @@ var init_dialog = __esm({
|
|
|
24737
24701
|
className: "relative w-4 h-4",
|
|
24738
24702
|
onClick: () => setPage("languages" /* LANGUAGES */),
|
|
24739
24703
|
children: [
|
|
24740
|
-
/* @__PURE__ */
|
|
24741
|
-
/* @__PURE__ */
|
|
24704
|
+
/* @__PURE__ */ jsx120("span", { className: "sr-only", children: t("passport:common.language") }),
|
|
24705
|
+
/* @__PURE__ */ jsx120("span", { className: "w-4 h-4 leading-4 block text-[10px] font-bold", children: getLanguageIcon(i18n.resolvedLanguage) || i18n.resolvedLanguage?.toUpperCase() })
|
|
24742
24706
|
]
|
|
24743
24707
|
}
|
|
24744
24708
|
),
|
|
@@ -24750,9 +24714,9 @@ var init_dialog = __esm({
|
|
|
24750
24714
|
className: "relative w-4 h-4",
|
|
24751
24715
|
onClick: () => setPage("settings" /* SETTINGS */),
|
|
24752
24716
|
children: [
|
|
24753
|
-
/* @__PURE__ */
|
|
24754
|
-
/* @__PURE__ */
|
|
24755
|
-
!!settingsNotifications.length && /* @__PURE__ */
|
|
24717
|
+
/* @__PURE__ */ jsx120("span", { className: "sr-only", children: t("passport:common.settings") }),
|
|
24718
|
+
/* @__PURE__ */ jsx120(SlidersHorizontal, { className: "w-4 h-4" }),
|
|
24719
|
+
!!settingsNotifications.length && /* @__PURE__ */ jsx120(
|
|
24756
24720
|
"div",
|
|
24757
24721
|
{
|
|
24758
24722
|
className: cn(
|
|
@@ -24766,9 +24730,9 @@ var init_dialog = __esm({
|
|
|
24766
24730
|
]
|
|
24767
24731
|
}
|
|
24768
24732
|
),
|
|
24769
|
-
/* @__PURE__ */
|
|
24770
|
-
/* @__PURE__ */
|
|
24771
|
-
/* @__PURE__ */
|
|
24733
|
+
/* @__PURE__ */ jsx120(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsxs107(Button, { variant: "ghost", size: "icon", className: "w-4 h-4", children: [
|
|
24734
|
+
/* @__PURE__ */ jsx120(X2, { className: "h-4 w-4" }),
|
|
24735
|
+
/* @__PURE__ */ jsx120("span", { className: "sr-only", children: t("passport:common.close") })
|
|
24772
24736
|
] }) })
|
|
24773
24737
|
]
|
|
24774
24738
|
}
|
|
@@ -24782,11 +24746,11 @@ var init_dialog = __esm({
|
|
|
24782
24746
|
}
|
|
24783
24747
|
);
|
|
24784
24748
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
24785
|
-
DialogHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
24749
|
+
DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx120("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
|
|
24786
24750
|
DialogHeader.displayName = "DialogHeader";
|
|
24787
|
-
DialogFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
24751
|
+
DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx120("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
24788
24752
|
DialogFooter.displayName = "DialogFooter";
|
|
24789
|
-
DialogTitle = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */
|
|
24753
|
+
DialogTitle = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx120(
|
|
24790
24754
|
DialogPrimitive.Title,
|
|
24791
24755
|
{
|
|
24792
24756
|
ref,
|
|
@@ -24795,24 +24759,24 @@ var init_dialog = __esm({
|
|
|
24795
24759
|
}
|
|
24796
24760
|
));
|
|
24797
24761
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
24798
|
-
DialogDescription = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */
|
|
24762
|
+
DialogDescription = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx120(DialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
24799
24763
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
24800
24764
|
}
|
|
24801
24765
|
});
|
|
24802
24766
|
|
|
24803
24767
|
// src/internal/components/ui/visually-hidden.tsx
|
|
24804
|
-
import { jsx as
|
|
24768
|
+
import { jsx as jsx121 } from "react/jsx-runtime";
|
|
24805
24769
|
var VisuallyHidden;
|
|
24806
24770
|
var init_visually_hidden = __esm({
|
|
24807
24771
|
"src/internal/components/ui/visually-hidden.tsx"() {
|
|
24808
|
-
VisuallyHidden = ({ children }) => /* @__PURE__ */
|
|
24772
|
+
VisuallyHidden = ({ children }) => /* @__PURE__ */ jsx121("span", { className: "sr-only absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0", children });
|
|
24809
24773
|
}
|
|
24810
24774
|
});
|
|
24811
24775
|
|
|
24812
24776
|
// src/internal/components/Dialog/Dialog.tsx
|
|
24813
24777
|
import { AnimatePresence, motion } from "framer-motion";
|
|
24814
24778
|
import { useEffect as useEffect47 } from "react";
|
|
24815
|
-
import { jsx as
|
|
24779
|
+
import { jsx as jsx122, jsxs as jsxs108 } from "react/jsx-runtime";
|
|
24816
24780
|
function Dialog2() {
|
|
24817
24781
|
const config = useProviderConfig().config;
|
|
24818
24782
|
const className = config.current?.ui?.dialogClassName;
|
|
@@ -24831,7 +24795,7 @@ function Dialog2() {
|
|
|
24831
24795
|
useSettingsNotifications();
|
|
24832
24796
|
useListenIframeAuthEvents();
|
|
24833
24797
|
const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
|
|
24834
|
-
return /* @__PURE__ */
|
|
24798
|
+
return /* @__PURE__ */ jsx122(
|
|
24835
24799
|
Dialog,
|
|
24836
24800
|
{
|
|
24837
24801
|
modal: !isWalletLinking,
|
|
@@ -24841,10 +24805,10 @@ function Dialog2() {
|
|
|
24841
24805
|
if (!open) setPage(null);
|
|
24842
24806
|
},
|
|
24843
24807
|
children: /* @__PURE__ */ jsxs108(DialogContent, { colorMode, className, children: [
|
|
24844
|
-
/* @__PURE__ */
|
|
24845
|
-
/* @__PURE__ */
|
|
24846
|
-
!isHeaderHidden && /* @__PURE__ */
|
|
24847
|
-
/* @__PURE__ */
|
|
24808
|
+
/* @__PURE__ */ jsx122(VisuallyHidden, { children: /* @__PURE__ */ jsx122(DialogTitle, { children: dialogTitle }) }),
|
|
24809
|
+
/* @__PURE__ */ jsx122(DialogDescription, { className: "sr-only", children: dialogDescription }),
|
|
24810
|
+
!isHeaderHidden && /* @__PURE__ */ jsx122(Header, {}),
|
|
24811
|
+
/* @__PURE__ */ jsx122(AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ jsx122(
|
|
24848
24812
|
motion.div,
|
|
24849
24813
|
{
|
|
24850
24814
|
initial: { opacity: 0, height: transitionPageHeight },
|
|
@@ -24856,7 +24820,7 @@ function Dialog2() {
|
|
|
24856
24820
|
},
|
|
24857
24821
|
page || "empty"
|
|
24858
24822
|
) }),
|
|
24859
|
-
/* @__PURE__ */
|
|
24823
|
+
/* @__PURE__ */ jsx122(Footer, {})
|
|
24860
24824
|
] })
|
|
24861
24825
|
}
|
|
24862
24826
|
);
|
|
@@ -24944,11 +24908,11 @@ var init_TssManager = __esm({
|
|
|
24944
24908
|
|
|
24945
24909
|
// src/internal/components/WalletConnectHandler.tsx
|
|
24946
24910
|
import { useConnectModal as useConnectModal2 } from "@rainbow-me/rainbowkit";
|
|
24947
|
-
import { useMutation as useMutation21, useQueryClient as
|
|
24911
|
+
import { useMutation as useMutation21, useQueryClient as useQueryClient27 } from "@tanstack/react-query";
|
|
24948
24912
|
import React10, { useCallback as useCallback29, useEffect as useEffect48 } from "react";
|
|
24949
24913
|
import { useAccount, useDisconnect, useSignMessage as useSignMessage2 } from "wagmi";
|
|
24950
24914
|
function WalletConnectHandler() {
|
|
24951
|
-
const qc =
|
|
24915
|
+
const qc = useQueryClient27();
|
|
24952
24916
|
const { callbacksRef } = useProviderConfig();
|
|
24953
24917
|
const passportWalletAddress = useSession((st) => st.address);
|
|
24954
24918
|
const { address: walletAddress, isConnected, chain, connector } = useAccount();
|
|
@@ -25283,13 +25247,13 @@ import {
|
|
|
25283
25247
|
createBundlerClientForChain,
|
|
25284
25248
|
createPublicClientForChain as createPublicClientForChain5,
|
|
25285
25249
|
DEFAULT_CHAIN_ID as DEFAULT_CHAIN_ID2,
|
|
25286
|
-
getChainConfig as
|
|
25250
|
+
getChainConfig as getChainConfig8,
|
|
25287
25251
|
getViemChain as getViemChain2
|
|
25288
25252
|
} from "@embarkai/core/read";
|
|
25289
|
-
import { Fragment as
|
|
25253
|
+
import { Fragment as Fragment46 } from "react";
|
|
25290
25254
|
import { create as create11 } from "zustand";
|
|
25291
25255
|
import { persist as persist3 } from "zustand/middleware";
|
|
25292
|
-
import { jsx as
|
|
25256
|
+
import { jsx as jsx123, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
25293
25257
|
function getChainParams(chainCfg) {
|
|
25294
25258
|
return {
|
|
25295
25259
|
activeChainId: chainCfg.id,
|
|
@@ -25307,19 +25271,19 @@ function waitForStoreHydration() {
|
|
|
25307
25271
|
}
|
|
25308
25272
|
function SessionProvider({ children }) {
|
|
25309
25273
|
const config = useProviderConfig().config;
|
|
25310
|
-
return /* @__PURE__ */ jsxs109(
|
|
25274
|
+
return /* @__PURE__ */ jsxs109(Fragment46, { children: [
|
|
25311
25275
|
children,
|
|
25312
|
-
config.current?.wallet?.enabled && /* @__PURE__ */
|
|
25313
|
-
config.current?.wallet?.enabled && (config.current?.wallet?.mode === "direct" || config.current?.wallet?.mode === "both") && /* @__PURE__ */
|
|
25314
|
-
/* @__PURE__ */
|
|
25315
|
-
/* @__PURE__ */
|
|
25316
|
-
/* @__PURE__ */
|
|
25276
|
+
config.current?.wallet?.enabled && /* @__PURE__ */ jsx123(WalletConnectHandler, {}),
|
|
25277
|
+
config.current?.wallet?.enabled && (config.current?.wallet?.mode === "direct" || config.current?.wallet?.mode === "both") && /* @__PURE__ */ jsx123(DirectWalletHandler, {}),
|
|
25278
|
+
/* @__PURE__ */ jsx123(BalanceFeedProvider, {}),
|
|
25279
|
+
/* @__PURE__ */ jsx123(ChainSync, {}),
|
|
25280
|
+
/* @__PURE__ */ jsx123(
|
|
25317
25281
|
TssManagerWithRef,
|
|
25318
25282
|
{
|
|
25319
25283
|
mpcPin: void 0
|
|
25320
25284
|
}
|
|
25321
25285
|
),
|
|
25322
|
-
/* @__PURE__ */
|
|
25286
|
+
/* @__PURE__ */ jsx123(Dialog2, {})
|
|
25323
25287
|
] });
|
|
25324
25288
|
}
|
|
25325
25289
|
var useSession, requireActiveChainId;
|
|
@@ -25392,7 +25356,7 @@ var init_SessionContext = __esm({
|
|
|
25392
25356
|
// Set default chainId after hydration if not persisted
|
|
25393
25357
|
onRehydrateStorage: () => (state) => {
|
|
25394
25358
|
if (!state) return;
|
|
25395
|
-
const hydartedChain = getChainParams(
|
|
25359
|
+
const hydartedChain = getChainParams(getChainConfig8(state.activeChainId || DEFAULT_CHAIN_ID2));
|
|
25396
25360
|
state.activeChainId = hydartedChain.activeChainId;
|
|
25397
25361
|
state.publicClient = hydartedChain.publicClient;
|
|
25398
25362
|
state.bundlerClient = hydartedChain.bundlerClient;
|
|
@@ -25439,7 +25403,7 @@ var init_env = __esm({
|
|
|
25439
25403
|
});
|
|
25440
25404
|
|
|
25441
25405
|
// src/internal/clients/base.ts
|
|
25442
|
-
import { getChainConfig as
|
|
25406
|
+
import { getChainConfig as getChainConfig9, getViemChain as getViemChain3, lumiaMainnetChain, lumiaTestnetChain } from "@embarkai/core/read";
|
|
25443
25407
|
import { http as http4 } from "viem";
|
|
25444
25408
|
import { createBundlerClient } from "viem/account-abstraction";
|
|
25445
25409
|
function getTssUrl2() {
|
|
@@ -25470,13 +25434,13 @@ function getExplorerUrl() {
|
|
|
25470
25434
|
const paramUrl = typeof window !== "undefined" ? new URLSearchParams(window.location.search).get("explorerUrl") || void 0 : void 0;
|
|
25471
25435
|
const net = getSelectedNetwork();
|
|
25472
25436
|
const chainId = requireActiveChainId();
|
|
25473
|
-
const chainConfig =
|
|
25437
|
+
const chainConfig = getChainConfig9(chainId);
|
|
25474
25438
|
console.log("[getExplorerUrl] ", paramUrl, chainConfig.blockExplorerUrl);
|
|
25475
25439
|
return paramUrl || chainConfig.blockExplorerUrl;
|
|
25476
25440
|
}
|
|
25477
25441
|
function getBundlerClient() {
|
|
25478
25442
|
const chainId = requireActiveChainId();
|
|
25479
|
-
const chainConfig =
|
|
25443
|
+
const chainConfig = getChainConfig9(chainId);
|
|
25480
25444
|
const viemChain = getViemChain3(chainId);
|
|
25481
25445
|
return createBundlerClient({
|
|
25482
25446
|
chain: viemChain,
|
|
@@ -28000,14 +27964,14 @@ var init_rainbowkit = __esm({
|
|
|
28000
27964
|
|
|
28001
27965
|
// src/context/RainbowKitContext.tsx
|
|
28002
27966
|
import { darkTheme, lightTheme, RainbowKitProvider as NativeRainbowKitProvider } from "@rainbow-me/rainbowkit";
|
|
28003
|
-
import { useMemo as
|
|
27967
|
+
import { useMemo as useMemo10 } from "react";
|
|
28004
27968
|
import { WagmiProvider } from "wagmi";
|
|
28005
27969
|
import "@rainbow-me/rainbowkit/styles.css";
|
|
28006
|
-
import { Fragment as
|
|
27970
|
+
import { Fragment as Fragment47, jsx as jsx124 } from "react/jsx-runtime";
|
|
28007
27971
|
function RainbowKitProvider({ children }) {
|
|
28008
27972
|
const config = useProviderConfig().config;
|
|
28009
27973
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
28010
|
-
const rainbowConfig =
|
|
27974
|
+
const rainbowConfig = useMemo10(
|
|
28011
27975
|
() => createRainbowConfig({
|
|
28012
27976
|
projectId: config.current?.wallet?.walletConnectProjectId,
|
|
28013
27977
|
allowedWallets: config.current?.wallet?.allowedWallets,
|
|
@@ -28021,7 +27985,7 @@ function RainbowKitProvider({ children }) {
|
|
|
28021
27985
|
config.current?.wallet?.walletConnectProjectId
|
|
28022
27986
|
]
|
|
28023
27987
|
);
|
|
28024
|
-
const customTheme =
|
|
27988
|
+
const customTheme = useMemo10(() => {
|
|
28025
27989
|
if (!config.current?.wallet?.enabled) return {};
|
|
28026
27990
|
return colorMode === "dark" ? {
|
|
28027
27991
|
...darkTheme(),
|
|
@@ -28035,8 +27999,8 @@ function RainbowKitProvider({ children }) {
|
|
|
28035
27999
|
radii: rainbowTheme.lightMode.radii
|
|
28036
28000
|
};
|
|
28037
28001
|
}, [colorMode]);
|
|
28038
|
-
if (!config.current?.wallet?.enabled) return /* @__PURE__ */
|
|
28039
|
-
return /* @__PURE__ */
|
|
28002
|
+
if (!config.current?.wallet?.enabled) return /* @__PURE__ */ jsx124(Fragment47, { children });
|
|
28003
|
+
return /* @__PURE__ */ jsx124(WagmiProvider, { config: rainbowConfig, children: /* @__PURE__ */ jsx124(NativeRainbowKitProvider, { theme: customTheme, modalSize: "compact", showRecentTransactions: true, children }) });
|
|
28040
28004
|
}
|
|
28041
28005
|
var init_RainbowKitContext = __esm({
|
|
28042
28006
|
"src/context/RainbowKitContext.tsx"() {
|
|
@@ -28102,13 +28066,13 @@ var init_wagmi = __esm({
|
|
|
28102
28066
|
|
|
28103
28067
|
// src/context/WagmiContext.tsx
|
|
28104
28068
|
import { WagmiProvider as NativeWagmiProvider } from "wagmi";
|
|
28105
|
-
import { jsx as
|
|
28069
|
+
import { jsx as jsx125 } from "react/jsx-runtime";
|
|
28106
28070
|
var WagmiProvider2;
|
|
28107
28071
|
var init_WagmiContext = __esm({
|
|
28108
28072
|
"src/context/WagmiContext.tsx"() {
|
|
28109
28073
|
init_wagmi();
|
|
28110
28074
|
WagmiProvider2 = ({ children }) => {
|
|
28111
|
-
return /* @__PURE__ */
|
|
28075
|
+
return /* @__PURE__ */ jsx125(NativeWagmiProvider, { config: wagmiConfig, children });
|
|
28112
28076
|
};
|
|
28113
28077
|
}
|
|
28114
28078
|
});
|
|
@@ -28121,10 +28085,10 @@ import {
|
|
|
28121
28085
|
useCallback as useCallback30,
|
|
28122
28086
|
useContext,
|
|
28123
28087
|
useEffect as useEffect50,
|
|
28124
|
-
useMemo as
|
|
28088
|
+
useMemo as useMemo11,
|
|
28125
28089
|
useRef as useRef21
|
|
28126
28090
|
} from "react";
|
|
28127
|
-
import { jsx as
|
|
28091
|
+
import { jsx as jsx126 } from "react/jsx-runtime";
|
|
28128
28092
|
function clearLegacyWagmiStorage() {
|
|
28129
28093
|
if (typeof window === "undefined" || !window.localStorage) return;
|
|
28130
28094
|
const legacyKeys = [
|
|
@@ -28234,7 +28198,7 @@ function Provider(props) {
|
|
|
28234
28198
|
console.error("[PROVIDER] Error setting up iframe manager:", error);
|
|
28235
28199
|
}
|
|
28236
28200
|
}, [projectId]);
|
|
28237
|
-
const contextValue =
|
|
28201
|
+
const contextValue = useMemo11(
|
|
28238
28202
|
() => ({
|
|
28239
28203
|
config,
|
|
28240
28204
|
updateConfig,
|
|
@@ -28246,8 +28210,8 @@ function Provider(props) {
|
|
|
28246
28210
|
[config, updateConfig, callbacks, updateCallbacks]
|
|
28247
28211
|
);
|
|
28248
28212
|
if (!!initialConfig?.wallet?.enabled)
|
|
28249
|
-
return /* @__PURE__ */
|
|
28250
|
-
return /* @__PURE__ */
|
|
28213
|
+
return /* @__PURE__ */ jsx126(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx126(RainbowKitProvider, { children: /* @__PURE__ */ jsx126(SessionProvider, { children }) }) });
|
|
28214
|
+
return /* @__PURE__ */ jsx126(WagmiProvider2, { children: /* @__PURE__ */ jsx126(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx126(SessionProvider, { children }) }) });
|
|
28251
28215
|
}
|
|
28252
28216
|
var UIContext, useProviderConfig;
|
|
28253
28217
|
var init_ProviderContext = __esm({
|
|
@@ -28268,7 +28232,7 @@ var init_ProviderContext = __esm({
|
|
|
28268
28232
|
});
|
|
28269
28233
|
|
|
28270
28234
|
// src/styles/built.css
|
|
28271
|
-
var built_default = `.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.embarkai-ui-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.embarkai-ui-scope .pointer-events-none{pointer-events:none}.embarkai-ui-scope .pointer-events-auto{pointer-events:auto}.embarkai-ui-scope .visible{visibility:visible}.embarkai-ui-scope .invisible{visibility:hidden}.embarkai-ui-scope .static{position:static}.embarkai-ui-scope .fixed{position:fixed}.embarkai-ui-scope .absolute{position:absolute}.embarkai-ui-scope .relative{position:relative}.embarkai-ui-scope .sticky{position:sticky}.embarkai-ui-scope .inset-0{inset:0}.embarkai-ui-scope .-right-0\\.5{right:-.125rem}.embarkai-ui-scope .-right-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.embarkai-ui-scope .-top-0\\.5{top:-.125rem}.embarkai-ui-scope .-top-1{top:-.25rem}.embarkai-ui-scope .-top-2{top:-.5rem}.embarkai-ui-scope .bottom-0{bottom:0}.embarkai-ui-scope .bottom-full{bottom:100%}.embarkai-ui-scope .left-0{left:0}.embarkai-ui-scope .left-1\\/2{left:50%}.embarkai-ui-scope .left-4{left:1rem}.embarkai-ui-scope .right-0{right:0}.embarkai-ui-scope .right-3{right:.75rem}.embarkai-ui-scope .right-4{right:1rem}.embarkai-ui-scope .right-\\[var\\(--ui-kit-pd\\)\\]{right:var(--ui-kit-pd)}.embarkai-ui-scope .right-full{right:100%}.embarkai-ui-scope .top-0{top:0}.embarkai-ui-scope .top-1\\/2{top:50%}.embarkai-ui-scope .top-4{top:1rem}.embarkai-ui-scope .top-\\[var\\(--ui-kit-pd\\)\\]{top:var(--ui-kit-pd)}.embarkai-ui-scope .z-10{z-index:10}.embarkai-ui-scope .z-50{z-index:50}.embarkai-ui-scope .z-\\[9998\\]{z-index:9998}.embarkai-ui-scope .z-\\[9999\\]{z-index:9999}.embarkai-ui-scope .-m-px{margin:-1px}.embarkai-ui-scope .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.embarkai-ui-scope .mx-auto{margin-left:auto;margin-right:auto}.embarkai-ui-scope .my-1{margin-top:.25rem;margin-bottom:.25rem}.embarkai-ui-scope .mb-1{margin-bottom:.25rem}.embarkai-ui-scope .mb-2{margin-bottom:.5rem}.embarkai-ui-scope .mb-3{margin-bottom:.75rem}.embarkai-ui-scope .mb-4{margin-bottom:1rem}.embarkai-ui-scope .ml-1{margin-left:.25rem}.embarkai-ui-scope .ml-2{margin-left:.5rem}.embarkai-ui-scope .ml-auto{margin-left:auto}.embarkai-ui-scope .mr-1{margin-right:.25rem}.embarkai-ui-scope .mt-0\\.5{margin-top:.125rem}.embarkai-ui-scope .mt-1{margin-top:.25rem}.embarkai-ui-scope .mt-2{margin-top:.5rem}.embarkai-ui-scope .mt-4{margin-top:1rem}.embarkai-ui-scope .mt-\\[var\\(--ui-kit-gap\\)\\]{margin-top:var(--ui-kit-gap)}.embarkai-ui-scope .block{display:block}.embarkai-ui-scope .inline-block{display:inline-block}.embarkai-ui-scope .inline{display:inline}.embarkai-ui-scope .flex{display:flex}.embarkai-ui-scope .inline-flex{display:inline-flex}.embarkai-ui-scope .grid{display:grid}.embarkai-ui-scope .hidden{display:none}.embarkai-ui-scope .aspect-square{aspect-ratio:1/1}.embarkai-ui-scope .size-4{width:1rem;height:1rem}.embarkai-ui-scope .size-8{width:2rem;height:2rem}.embarkai-ui-scope .size-auto{width:auto;height:auto}.embarkai-ui-scope .h-1{height:.25rem}.embarkai-ui-scope .h-10{height:2.5rem}.embarkai-ui-scope .h-12{height:3rem}.embarkai-ui-scope .h-16{height:4rem}.embarkai-ui-scope .h-2{height:.5rem}.embarkai-ui-scope .h-3{height:.75rem}.embarkai-ui-scope .h-3\\.5{height:.875rem}.embarkai-ui-scope .h-4{height:1rem}.embarkai-ui-scope .h-48{height:12rem}.embarkai-ui-scope .h-5{height:1.25rem}.embarkai-ui-scope .h-6{height:1.5rem}.embarkai-ui-scope .h-7{height:1.75rem}.embarkai-ui-scope .h-8{height:2rem}.embarkai-ui-scope .h-\\[100dvh\\]{height:100dvh}.embarkai-ui-scope .h-\\[48px\\]{height:48px}.embarkai-ui-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.embarkai-ui-scope .h-auto{height:auto}.embarkai-ui-scope .h-fit{height:-moz-fit-content;height:fit-content}.embarkai-ui-scope .h-full{height:100%}.embarkai-ui-scope .h-px{height:1px}.embarkai-ui-scope .max-h-64{max-height:16rem}.embarkai-ui-scope .max-h-96{max-height:24rem}.embarkai-ui-scope .max-h-\\[95dvh\\]{max-height:95dvh}.embarkai-ui-scope .min-h-10{min-height:2.5rem}.embarkai-ui-scope .w-1{width:.25rem}.embarkai-ui-scope .w-1\\/2{width:50%}.embarkai-ui-scope .w-10{width:2.5rem}.embarkai-ui-scope .w-12{width:3rem}.embarkai-ui-scope .w-16{width:4rem}.embarkai-ui-scope .w-2{width:.5rem}.embarkai-ui-scope .w-3{width:.75rem}.embarkai-ui-scope .w-3\\.5{width:.875rem}.embarkai-ui-scope .w-4{width:1rem}.embarkai-ui-scope .w-48{width:12rem}.embarkai-ui-scope .w-5{width:1.25rem}.embarkai-ui-scope .w-6{width:1.5rem}.embarkai-ui-scope .w-7{width:1.75rem}.embarkai-ui-scope .w-72{width:18rem}.embarkai-ui-scope .w-8{width:2rem}.embarkai-ui-scope .w-\\[100dvw\\]{width:100dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[var\\(--ui-kit-maw\\)\\]{width:var(--ui-kit-maw)}.embarkai-ui-scope .w-fit{width:-moz-fit-content;width:fit-content}.embarkai-ui-scope .w-full{width:100%}.embarkai-ui-scope .w-px{width:1px}.embarkai-ui-scope .min-w-0{min-width:0}.embarkai-ui-scope .min-w-10{min-width:2.5rem}.embarkai-ui-scope .min-w-16{min-width:4rem}.embarkai-ui-scope .min-w-\\[256px\\]{min-width:256px}.embarkai-ui-scope .min-w-\\[8rem\\]{min-width:8rem}.embarkai-ui-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.embarkai-ui-scope .max-w-\\[100px\\]{max-width:100px}.embarkai-ui-scope .max-w-\\[144px\\]{max-width:144px}.embarkai-ui-scope .max-w-\\[150px\\]{max-width:150px}.embarkai-ui-scope .max-w-\\[160px\\]{max-width:160px}.embarkai-ui-scope .max-w-\\[256px\\]{max-width:256px}.embarkai-ui-scope .max-w-\\[680px\\]{max-width:680px}.embarkai-ui-scope .max-w-\\[80px\\]{max-width:80px}.embarkai-ui-scope .max-w-\\[calc\\(50\\%-12px\\)\\]{max-width:calc(50% - 12px)}.embarkai-ui-scope .max-w-full{max-width:100%}.embarkai-ui-scope .max-w-sm{max-width:24rem}.embarkai-ui-scope .flex-1{flex:1 1 0%}.embarkai-ui-scope .flex-none{flex:none}.embarkai-ui-scope .flex-shrink-0,.embarkai-ui-scope .shrink-0{flex-shrink:0}.embarkai-ui-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.embarkai-ui-scope .-translate-x-1\\/2,.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{--tw-translate-x:calc(var(--ui-kit-gap)*-1)}.embarkai-ui-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.embarkai-ui-scope .-translate-y-1\\/2,.embarkai-ui-scope .-translate-y-1\\/3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-y-1\\/3{--tw-translate-y:-33.333333%}.embarkai-ui-scope .rotate-180{--tw-rotate:180deg}.embarkai-ui-scope .rotate-180,.embarkai-ui-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--ui-kit-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--ui-kit-bg-warning)}}.embarkai-ui-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse{50%{opacity:.5}}.embarkai-ui-scope .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.embarkai-ui-scope .animate-spin{animation:spin 1s linear infinite}.embarkai-ui-scope .cursor-default{cursor:default}.embarkai-ui-scope .cursor-help{cursor:help}.embarkai-ui-scope .cursor-not-allowed{cursor:not-allowed}.embarkai-ui-scope .cursor-pointer{cursor:pointer}.embarkai-ui-scope .cursor-text{cursor:text}.embarkai-ui-scope .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.embarkai-ui-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.embarkai-ui-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.embarkai-ui-scope .list-inside{list-style-position:inside}.embarkai-ui-scope .list-disc{list-style-type:disc}.embarkai-ui-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.embarkai-ui-scope .flex-col{flex-direction:column}.embarkai-ui-scope .flex-col-reverse{flex-direction:column-reverse}.embarkai-ui-scope .flex-wrap{flex-wrap:wrap}.embarkai-ui-scope .place-content-center{place-content:center}.embarkai-ui-scope .items-start{align-items:flex-start}.embarkai-ui-scope .items-end{align-items:flex-end}.embarkai-ui-scope .items-center{align-items:center}.embarkai-ui-scope .justify-start{justify-content:flex-start}.embarkai-ui-scope .justify-end{justify-content:flex-end}.embarkai-ui-scope .justify-center{justify-content:center}.embarkai-ui-scope .justify-between{justify-content:space-between}.embarkai-ui-scope .gap-0{gap:0}.embarkai-ui-scope .gap-1{gap:.25rem}.embarkai-ui-scope .gap-1\\.5{gap:.375rem}.embarkai-ui-scope .gap-2{gap:.5rem}.embarkai-ui-scope .gap-3{gap:.75rem}.embarkai-ui-scope .gap-4{gap:1rem}.embarkai-ui-scope .gap-\\[10px\\]{gap:10px}.embarkai-ui-scope .gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.embarkai-ui-scope .overflow-hidden{overflow:hidden}.embarkai-ui-scope .overflow-y-auto{overflow-y:auto}.embarkai-ui-scope .overflow-x-hidden{overflow-x:hidden}.embarkai-ui-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.embarkai-ui-scope .text-ellipsis{text-overflow:ellipsis}.embarkai-ui-scope .whitespace-nowrap{white-space:nowrap}.embarkai-ui-scope .whitespace-pre-line{white-space:pre-line}.embarkai-ui-scope .whitespace-pre-wrap{white-space:pre-wrap}.embarkai-ui-scope .break-normal{overflow-wrap:normal;word-break:normal}.embarkai-ui-scope .break-words{overflow-wrap:break-word}.embarkai-ui-scope .break-all{word-break:break-all}.embarkai-ui-scope .rounded{border-radius:.25rem}.embarkai-ui-scope .rounded-\\[10px\\]{border-radius:10px}.embarkai-ui-scope .rounded-\\[8px\\]{border-radius:8px}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-bdrs\\)\\]{border-radius:var(--ui-kit-bdrs)}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .rounded-full{border-radius:9999px}.embarkai-ui-scope .rounded-lg{border-radius:.5rem}.embarkai-ui-scope .rounded-md{border-radius:.375rem}.embarkai-ui-scope .rounded-xl{border-radius:.75rem}.embarkai-ui-scope .border{border-width:1px}.embarkai-ui-scope .border-0{border-width:0}.embarkai-ui-scope .border-2{border-width:2px}.embarkai-ui-scope .border-b{border-bottom-width:1px}.embarkai-ui-scope .border-t{border-top-width:1px}.embarkai-ui-scope .border-dashed{border-style:dashed}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bd\\)\\]{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-error\\)\\]{border-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-success\\)\\]{border-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-warning\\)\\]{border-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-error\\)\\]{border-color:var(--ui-kit-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-secondary\\)\\]{border-color:var(--ui-kit-secondary)}.embarkai-ui-scope .border-current{border-color:currentColor}.embarkai-ui-scope .border-transparent{border-color:transparent}.embarkai-ui-scope .border-t-transparent{border-top-color:transparent}.embarkai-ui-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f0f6f8\\]{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-accent\\)\\]{background-color:var(--ui-kit-accent)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg\\)\\]{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-error\\)\\]{background-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-info\\)\\]{background-color:var(--ui-kit-bg-info)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-secondary\\)\\]{background-color:var(--ui-kit-bg-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-success\\)\\]{background-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-warning\\)\\]{background-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-fg\\)\\]{background-color:var(--ui-kit-fg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-overlay\\)\\]{background-color:var(--ui-kit-overlay)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-primary\\)\\]{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary\\)\\]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary-h\\)\\]{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-transparent{background-color:transparent}.embarkai-ui-scope .fill-\\[var\\(--ui-kit-bg-warning\\)\\]{fill:var(--ui-kit-bg-warning)}.embarkai-ui-scope .object-contain{-o-object-fit:contain;object-fit:contain}.embarkai-ui-scope .object-cover{-o-object-fit:cover;object-fit:cover}.embarkai-ui-scope .p-0{padding:0}.embarkai-ui-scope .p-1{padding:.25rem}.embarkai-ui-scope .p-2{padding:.5rem}.embarkai-ui-scope .p-3{padding:.75rem}.embarkai-ui-scope .p-4{padding:1rem}.embarkai-ui-scope .p-5{padding:1.25rem}.embarkai-ui-scope .p-6{padding:1.5rem}.embarkai-ui-scope .p-8{padding:2rem}.embarkai-ui-scope .p-\\[2px\\]{padding:2px}.embarkai-ui-scope .p-\\[var\\(--ui-kit-gap\\)\\]{padding:var(--ui-kit-gap)}.embarkai-ui-scope .p-\\[var\\(--ui-kit-pd\\)\\]{padding:var(--ui-kit-pd)}.embarkai-ui-scope .px-0{padding-left:0;padding-right:0}.embarkai-ui-scope .px-1{padding-left:.25rem;padding-right:.25rem}.embarkai-ui-scope .px-2{padding-left:.5rem;padding-right:.5rem}.embarkai-ui-scope .px-3{padding-left:.75rem;padding-right:.75rem}.embarkai-ui-scope .px-4{padding-left:1rem;padding-right:1rem}.embarkai-ui-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.embarkai-ui-scope .px-8{padding-left:2rem;padding-right:2rem}.embarkai-ui-scope .px-\\[var\\(--ui-kit-gap\\)\\]{padding-left:var(--ui-kit-gap);padding-right:var(--ui-kit-gap)}.embarkai-ui-scope .px-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .py-0{padding-top:0;padding-bottom:0}.embarkai-ui-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.embarkai-ui-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.embarkai-ui-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.embarkai-ui-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.embarkai-ui-scope .py-4{padding-top:1rem;padding-bottom:1rem}.embarkai-ui-scope .py-8{padding-top:2rem;padding-bottom:2rem}.embarkai-ui-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.embarkai-ui-scope .py-\\[var\\(--ui-kit-gap\\)\\]{padding-top:var(--ui-kit-gap);padding-bottom:var(--ui-kit-gap)}.embarkai-ui-scope .py-\\[var\\(--ui-kit-pd\\)\\]{padding-top:var(--ui-kit-pd);padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pb-2{padding-bottom:.5rem}.embarkai-ui-scope .pb-5{padding-bottom:1.25rem}.embarkai-ui-scope .pb-6{padding-bottom:1.5rem}.embarkai-ui-scope .pb-\\[var\\(--ui-kit-pd\\)\\]{padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pl-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd)}.embarkai-ui-scope .pr-8{padding-right:2rem}.embarkai-ui-scope .pt-3{padding-top:.75rem}.embarkai-ui-scope .pt-4{padding-top:1rem}.embarkai-ui-scope .pt-5{padding-top:1.25rem}.embarkai-ui-scope .text-left{text-align:left}.embarkai-ui-scope .text-center{text-align:center}.embarkai-ui-scope .text-right{text-align:right}.embarkai-ui-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.embarkai-ui-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.embarkai-ui-scope .text-2xl{font-size:1.5rem;line-height:2rem}.embarkai-ui-scope .text-\\[10px\\]{font-size:10px}.embarkai-ui-scope .text-\\[14px\\]{font-size:14px}.embarkai-ui-scope .text-\\[16px\\]{font-size:16px}.embarkai-ui-scope .text-\\[8px\\]{font-size:8px}.embarkai-ui-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.embarkai-ui-scope .text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.embarkai-ui-scope .text-xs{font-size:.75rem;line-height:1rem}.embarkai-ui-scope .font-bold{font-weight:700}.embarkai-ui-scope .font-medium{font-weight:500}.embarkai-ui-scope .font-normal{font-weight:400}.embarkai-ui-scope .font-semibold{font-weight:600}.embarkai-ui-scope .uppercase{text-transform:uppercase}.embarkai-ui-scope .lowercase{text-transform:lowercase}.embarkai-ui-scope .leading-3{line-height:.75rem}.embarkai-ui-scope .leading-4{line-height:1rem}.embarkai-ui-scope .leading-5{line-height:1.25rem}.embarkai-ui-scope .leading-6{line-height:1.5rem}.embarkai-ui-scope .leading-8{line-height:2rem}.embarkai-ui-scope .leading-\\[8px\\]{line-height:8px}.embarkai-ui-scope .leading-none{line-height:1}.embarkai-ui-scope .leading-tight{line-height:1.25}.embarkai-ui-scope .tracking-\\[0\\.3em\\]{letter-spacing:.3em}.embarkai-ui-scope .tracking-tight{letter-spacing:-.025em}.embarkai-ui-scope .tracking-wider{letter-spacing:.05em}.embarkai-ui-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-error\\)\\]{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-success\\)\\]{color:var(--ui-kit-bg-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-warning\\)\\]{color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-error\\)\\]{color:var(--ui-kit-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg\\)\\]{color:var(--ui-kit-fg)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-inverted\\)\\]{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-muted\\)\\]{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-info\\)\\]{color:var(--ui-kit-info)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-primary\\)\\]{color:var(--ui-kit-primary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-success\\)\\]{color:var(--ui-kit-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-text-secondary\\)\\]{color:var(--ui-kit-text-secondary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-warning\\)\\]{color:var(--ui-kit-warning)}.embarkai-ui-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.embarkai-ui-scope .underline{text-decoration-line:underline}.embarkai-ui-scope .underline-offset-2{text-underline-offset:2px}.embarkai-ui-scope .underline-offset-4{text-underline-offset:4px}.embarkai-ui-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope .opacity-0{opacity:0}.embarkai-ui-scope .opacity-100{opacity:1}.embarkai-ui-scope .opacity-50{opacity:.5}.embarkai-ui-scope .opacity-60{opacity:.6}.embarkai-ui-scope .opacity-70{opacity:.7}.embarkai-ui-scope .opacity-75{opacity:.75}.embarkai-ui-scope .opacity-90{opacity:.9}.embarkai-ui-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.embarkai-ui-scope .shadow,.embarkai-ui-scope .shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.embarkai-ui-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .outline{outline-style:solid}.embarkai-ui-scope .blur{--tw-blur:blur(8px)}.embarkai-ui-scope .blur,.embarkai-ui-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .grayscale{--tw-grayscale:grayscale(100%)}.embarkai-ui-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-none{transition-property:none}.embarkai-ui-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .duration-200{transition-duration:.2s}.embarkai-ui-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.embarkai-ui-scope{--ui-kit-ff:var(--embark-ui-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--ui-kit-maw:var(--embark-ui-maw,384px);--ui-kit-pd:var(--embark-ui-pd,12px);--ui-kit-gap:var(--embark-ui-gap,10px);--ui-kit-bdrs:var(--embark-ui-bdrs,20px);--ui-kit-el-bdrs:var(--embark-ui-element-bdrs,10px);--ui-kit-backdrop-blur:var(--embark-ui-backdrop-blur,10px)}.embarkai-ui-scope[data-current-theme-mode=light]{--ui-kit-overlay:var(--embark-ui-overlay,hsla(0,0%,100%,.8));--ui-kit-bg:var(--embark-ui-bg,#fff);--ui-kit-fg:var(--embark-ui-fg,#000);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#fff);--ui-kit-fg-muted:var(--embark-ui-fg-muted,rgba(0,0,0,.6));--ui-kit-primary:var(--embark-ui-primary,#000);--ui-kit-primary-h:var(--embark-ui-primary-h,rgba(0,0,0,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,rgba(0,0,0,.6));--ui-kit-secondary:var(--embark-ui-secondary,#e4e4e4);--ui-kit-secondary-h:var(--embark-ui-secondary-h,hsla(0,0%,89%,.8));--ui-kit-secondary-a:var(--embark-ui-secondary-a,hsla(0,0%,89%,.6));--ui-kit-bd:var(--embark-ui-bd,#ebebeb);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#a9a9a9);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope[data-current-theme-mode=dark]{--ui-kit-overlay:var(--embark-ui-overlay,rgba(0,0,0,.8));--ui-kit-bg:var(--embark-ui-bg,#1a1a1a);--ui-kit-fg:var(--embark-ui-fg,#fff);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#000);--ui-kit-fg-muted:var(--embark-ui-fg-muted,hsla(0,0%,100%,.6));--ui-kit-primary:var(--embark-ui-primary,#fff);--ui-kit-primary-h:var(--embark-ui-primary-h,hsla(0,0%,100%,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,hsla(0,0%,100%,.6));--ui-kit-secondary:var(--embark-ui-secondary,#2a2a2a);--ui-kit-secondary-h:var(--embark-ui-secondary-h,rgba(42,42,42,.6));--ui-kit-secondary-a:var(--embark-ui-secondary-a,rgba(42,42,42,.4));--ui-kit-bd:var(--embark-ui-bd,#3a3a3a);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#4a4a4a);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope,.embarkai-ui-scope *{margin:0;box-sizing:border-box;font-family:var(--ui-kit-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope button,.embarkai-ui-scope h1,.embarkai-ui-scope h2,.embarkai-ui-scope h3,.embarkai-ui-scope h4,.embarkai-ui-scope h5,.embarkai-ui-scope h6,.embarkai-ui-scope input,.embarkai-ui-scope p,.embarkai-ui-scope select,.embarkai-ui-scope textarea{font-family:var(--ui-kit-ff)!important;margin:0}.embarkai-ui-scope button,.embarkai-ui-scope input,.embarkai-ui-scope select,.embarkai-ui-scope textarea{border-style:solid;outline:none!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.embarkai-ui-scope input,.embarkai-ui-scope textarea{font-size:16px!important}.embarkai-ui-scope .account-connect-button{box-shadow:0 4px 20px var(--ui-kit-shadow-c),inset 0 0 0 1px var(--ui-kit-bd);transition:transform .25s ease}.embarkai-ui-scope .account-connect-button:hover{transform:scale(1.02)}.embarkai-ui-scope .account-connect-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.embarkai-ui-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.embarkai-ui-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.embarkai-ui-scope .list-scrollbar-y{width:100%;padding-right:var(--ui-kit-list-scrollbar-pd-r,0);overflow-y:auto;overflow-x:hidden;max-height:var(--ui-kit-scrollbar-mah,300px)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--ui-kit-bd)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.embarkai-ui-scope .noScrollbars::-webkit-scrollbar{display:none}.embarkai-ui-scope div[data-radix-popper-content-wrapper]{z-index:10000!important}.embarkai-ui-scope .file\\:mr-\\[var\\(--ui-kit-gap\\)\\]::file-selector-button{margin-right:var(--ui-kit-gap)}.embarkai-ui-scope .file\\:h-12::file-selector-button{height:3rem}.embarkai-ui-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.embarkai-ui-scope .file\\:rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]::file-selector-button{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .file\\:border-0::file-selector-button{border-width:0}.embarkai-ui-scope .file\\:bg-\\[var\\(--ui-kit-primary\\)\\]::file-selector-button{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.embarkai-ui-scope .file\\:px-\\[var\\(--ui-kit-pd\\)\\]::file-selector-button{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.embarkai-ui-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.embarkai-ui-scope .file\\:font-medium::file-selector-button{font-weight:500}.embarkai-ui-scope .file\\:text-\\[var\\(--ui-kit-fg-inverted\\)\\]::file-selector-button{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::-moz-placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .focus-within\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus-within{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .hover\\:bg-\\[\\#002c15\\]:hover{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#081f2c\\]:hover{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f0f6f8\\]:hover{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f3ba2f\\]:hover{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-bg-secondary\\)\\]:hover{background-color:var(--ui-kit-bg-secondary)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary-h\\)\\]:hover{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[var\\(--ui-kit-fg\\)\\]:hover{color:var(--ui-kit-fg)}.embarkai-ui-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:underline:hover{text-decoration-line:underline}.embarkai-ui-scope .hover\\:opacity-100:hover{opacity:1}.embarkai-ui-scope .hover\\:opacity-80:hover{opacity:.8}.embarkai-ui-scope .hover\\:brightness-110:hover{--tw-brightness:brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.embarkai-ui-scope .focus\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus\\:bg-transparent:focus{background-color:transparent}.embarkai-ui-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.embarkai-ui-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.embarkai-ui-scope .active\\:bg-\\[\\#f3ba2f\\]:active{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:active{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .active\\:opacity-60:active{opacity:.6}.embarkai-ui-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.embarkai-ui-scope .disabled\\:cursor-default:disabled{cursor:default}.embarkai-ui-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.embarkai-ui-scope .disabled\\:opacity-50:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover:disabled{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .disabled\\:hover\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:hover:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:hover\\:opacity-50:hover:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:active\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:active:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:active\\:opacity-50:active:disabled{opacity:.5}.embarkai-ui-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.embarkai-ui-scope .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.embarkai-ui-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.embarkai-ui-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--ui-kit-bd-intense\\)\\][data-state=checked]{border-color:var(--ui-kit-bd-intense)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--ui-kit-secondary\\)\\][data-state=checked]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--ui-kit-fg\\)\\][data-state=checked]{color:var(--ui-kit-fg)}.embarkai-ui-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--ui-kit-gap\\)\\][data-slot=select-value]>*){gap:var(--ui-kit-gap)}@media (min-width:640px){.embarkai-ui-scope .sm\\:flex-row{flex-direction:row}.embarkai-ui-scope .sm\\:justify-end{justify-content:flex-end}.embarkai-ui-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.embarkai-ui-scope .md\\:h-8{height:2rem}.embarkai-ui-scope .md\\:w-8{width:2rem}.embarkai-ui-scope .md\\:gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}.embarkai-ui-scope .md\\:text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .md\\:text-xs{font-size:.75rem;line-height:1rem}}.embarkai-ui-scope :is(.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}`;
|
|
28235
|
+
var built_default = `.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.embarkai-ui-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.embarkai-ui-scope .pointer-events-none{pointer-events:none}.embarkai-ui-scope .pointer-events-auto{pointer-events:auto}.embarkai-ui-scope .visible{visibility:visible}.embarkai-ui-scope .invisible{visibility:hidden}.embarkai-ui-scope .static{position:static}.embarkai-ui-scope .fixed{position:fixed}.embarkai-ui-scope .absolute{position:absolute}.embarkai-ui-scope .relative{position:relative}.embarkai-ui-scope .sticky{position:sticky}.embarkai-ui-scope .inset-0{inset:0}.embarkai-ui-scope .-right-0\\.5{right:-.125rem}.embarkai-ui-scope .-right-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.embarkai-ui-scope .-top-0\\.5{top:-.125rem}.embarkai-ui-scope .-top-1{top:-.25rem}.embarkai-ui-scope .-top-2{top:-.5rem}.embarkai-ui-scope .bottom-0{bottom:0}.embarkai-ui-scope .bottom-full{bottom:100%}.embarkai-ui-scope .left-0{left:0}.embarkai-ui-scope .left-1\\/2{left:50%}.embarkai-ui-scope .left-4{left:1rem}.embarkai-ui-scope .right-0{right:0}.embarkai-ui-scope .right-3{right:.75rem}.embarkai-ui-scope .right-4{right:1rem}.embarkai-ui-scope .right-\\[var\\(--ui-kit-pd\\)\\]{right:var(--ui-kit-pd)}.embarkai-ui-scope .right-full{right:100%}.embarkai-ui-scope .top-0{top:0}.embarkai-ui-scope .top-1\\/2{top:50%}.embarkai-ui-scope .top-4{top:1rem}.embarkai-ui-scope .top-\\[var\\(--ui-kit-pd\\)\\]{top:var(--ui-kit-pd)}.embarkai-ui-scope .z-10{z-index:10}.embarkai-ui-scope .z-50{z-index:50}.embarkai-ui-scope .z-\\[9998\\]{z-index:9998}.embarkai-ui-scope .z-\\[9999\\]{z-index:9999}.embarkai-ui-scope .-m-px{margin:-1px}.embarkai-ui-scope .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.embarkai-ui-scope .mx-auto{margin-left:auto;margin-right:auto}.embarkai-ui-scope .my-1{margin-top:.25rem;margin-bottom:.25rem}.embarkai-ui-scope .mb-1{margin-bottom:.25rem}.embarkai-ui-scope .mb-2{margin-bottom:.5rem}.embarkai-ui-scope .mb-3{margin-bottom:.75rem}.embarkai-ui-scope .mb-4{margin-bottom:1rem}.embarkai-ui-scope .ml-1{margin-left:.25rem}.embarkai-ui-scope .ml-2{margin-left:.5rem}.embarkai-ui-scope .ml-auto{margin-left:auto}.embarkai-ui-scope .mr-1{margin-right:.25rem}.embarkai-ui-scope .mt-0\\.5{margin-top:.125rem}.embarkai-ui-scope .mt-1{margin-top:.25rem}.embarkai-ui-scope .mt-2{margin-top:.5rem}.embarkai-ui-scope .mt-4{margin-top:1rem}.embarkai-ui-scope .block{display:block}.embarkai-ui-scope .inline-block{display:inline-block}.embarkai-ui-scope .inline{display:inline}.embarkai-ui-scope .flex{display:flex}.embarkai-ui-scope .inline-flex{display:inline-flex}.embarkai-ui-scope .table{display:table}.embarkai-ui-scope .grid{display:grid}.embarkai-ui-scope .hidden{display:none}.embarkai-ui-scope .aspect-square{aspect-ratio:1/1}.embarkai-ui-scope .size-4{width:1rem;height:1rem}.embarkai-ui-scope .size-8{width:2rem;height:2rem}.embarkai-ui-scope .size-auto{width:auto;height:auto}.embarkai-ui-scope .h-1{height:.25rem}.embarkai-ui-scope .h-10{height:2.5rem}.embarkai-ui-scope .h-12{height:3rem}.embarkai-ui-scope .h-16{height:4rem}.embarkai-ui-scope .h-2{height:.5rem}.embarkai-ui-scope .h-3{height:.75rem}.embarkai-ui-scope .h-3\\.5{height:.875rem}.embarkai-ui-scope .h-4{height:1rem}.embarkai-ui-scope .h-48{height:12rem}.embarkai-ui-scope .h-5{height:1.25rem}.embarkai-ui-scope .h-6{height:1.5rem}.embarkai-ui-scope .h-7{height:1.75rem}.embarkai-ui-scope .h-8{height:2rem}.embarkai-ui-scope .h-\\[100dvh\\]{height:100dvh}.embarkai-ui-scope .h-\\[48px\\]{height:48px}.embarkai-ui-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.embarkai-ui-scope .h-auto{height:auto}.embarkai-ui-scope .h-fit{height:-moz-fit-content;height:fit-content}.embarkai-ui-scope .h-full{height:100%}.embarkai-ui-scope .h-px{height:1px}.embarkai-ui-scope .max-h-64{max-height:16rem}.embarkai-ui-scope .max-h-96{max-height:24rem}.embarkai-ui-scope .max-h-\\[95dvh\\]{max-height:95dvh}.embarkai-ui-scope .min-h-10{min-height:2.5rem}.embarkai-ui-scope .w-1{width:.25rem}.embarkai-ui-scope .w-1\\/2{width:50%}.embarkai-ui-scope .w-10{width:2.5rem}.embarkai-ui-scope .w-12{width:3rem}.embarkai-ui-scope .w-16{width:4rem}.embarkai-ui-scope .w-2{width:.5rem}.embarkai-ui-scope .w-3{width:.75rem}.embarkai-ui-scope .w-3\\.5{width:.875rem}.embarkai-ui-scope .w-4{width:1rem}.embarkai-ui-scope .w-48{width:12rem}.embarkai-ui-scope .w-5{width:1.25rem}.embarkai-ui-scope .w-6{width:1.5rem}.embarkai-ui-scope .w-7{width:1.75rem}.embarkai-ui-scope .w-72{width:18rem}.embarkai-ui-scope .w-8{width:2rem}.embarkai-ui-scope .w-\\[100dvw\\]{width:100dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[var\\(--ui-kit-maw\\)\\]{width:var(--ui-kit-maw)}.embarkai-ui-scope .w-fit{width:-moz-fit-content;width:fit-content}.embarkai-ui-scope .w-full{width:100%}.embarkai-ui-scope .w-px{width:1px}.embarkai-ui-scope .min-w-0{min-width:0}.embarkai-ui-scope .min-w-10{min-width:2.5rem}.embarkai-ui-scope .min-w-16{min-width:4rem}.embarkai-ui-scope .min-w-\\[256px\\]{min-width:256px}.embarkai-ui-scope .min-w-\\[8rem\\]{min-width:8rem}.embarkai-ui-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.embarkai-ui-scope .max-w-\\[100px\\]{max-width:100px}.embarkai-ui-scope .max-w-\\[144px\\]{max-width:144px}.embarkai-ui-scope .max-w-\\[150px\\]{max-width:150px}.embarkai-ui-scope .max-w-\\[160px\\]{max-width:160px}.embarkai-ui-scope .max-w-\\[256px\\]{max-width:256px}.embarkai-ui-scope .max-w-\\[680px\\]{max-width:680px}.embarkai-ui-scope .max-w-\\[80px\\]{max-width:80px}.embarkai-ui-scope .max-w-\\[calc\\(50\\%-8px\\)\\]{max-width:calc(50% - 8px)}.embarkai-ui-scope .max-w-full{max-width:100%}.embarkai-ui-scope .max-w-sm{max-width:24rem}.embarkai-ui-scope .flex-1{flex:1 1 0%}.embarkai-ui-scope .flex-none{flex:none}.embarkai-ui-scope .flex-shrink-0,.embarkai-ui-scope .shrink-0{flex-shrink:0}.embarkai-ui-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.embarkai-ui-scope .-translate-x-1\\/2,.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{--tw-translate-x:calc(var(--ui-kit-gap)*-1)}.embarkai-ui-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.embarkai-ui-scope .-translate-y-1\\/2,.embarkai-ui-scope .-translate-y-1\\/3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-y-1\\/3{--tw-translate-y:-33.333333%}.embarkai-ui-scope .rotate-180{--tw-rotate:180deg}.embarkai-ui-scope .rotate-180,.embarkai-ui-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--ui-kit-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--ui-kit-bg-warning)}}.embarkai-ui-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse{50%{opacity:.5}}.embarkai-ui-scope .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.embarkai-ui-scope .animate-spin{animation:spin 1s linear infinite}.embarkai-ui-scope .cursor-default{cursor:default}.embarkai-ui-scope .cursor-help{cursor:help}.embarkai-ui-scope .cursor-not-allowed{cursor:not-allowed}.embarkai-ui-scope .cursor-pointer{cursor:pointer}.embarkai-ui-scope .cursor-text{cursor:text}.embarkai-ui-scope .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.embarkai-ui-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.embarkai-ui-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.embarkai-ui-scope .list-inside{list-style-position:inside}.embarkai-ui-scope .list-disc{list-style-type:disc}.embarkai-ui-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.embarkai-ui-scope .flex-col{flex-direction:column}.embarkai-ui-scope .flex-col-reverse{flex-direction:column-reverse}.embarkai-ui-scope .flex-wrap{flex-wrap:wrap}.embarkai-ui-scope .place-content-center{place-content:center}.embarkai-ui-scope .items-start{align-items:flex-start}.embarkai-ui-scope .items-end{align-items:flex-end}.embarkai-ui-scope .items-center{align-items:center}.embarkai-ui-scope .justify-start{justify-content:flex-start}.embarkai-ui-scope .justify-end{justify-content:flex-end}.embarkai-ui-scope .justify-center{justify-content:center}.embarkai-ui-scope .justify-between{justify-content:space-between}.embarkai-ui-scope .gap-0{gap:0}.embarkai-ui-scope .gap-1{gap:.25rem}.embarkai-ui-scope .gap-1\\.5{gap:.375rem}.embarkai-ui-scope .gap-2{gap:.5rem}.embarkai-ui-scope .gap-3{gap:.75rem}.embarkai-ui-scope .gap-4{gap:1rem}.embarkai-ui-scope .gap-\\[10px\\]{gap:10px}.embarkai-ui-scope .gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.embarkai-ui-scope .overflow-hidden{overflow:hidden}.embarkai-ui-scope .overflow-y-auto{overflow-y:auto}.embarkai-ui-scope .overflow-x-hidden{overflow-x:hidden}.embarkai-ui-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.embarkai-ui-scope .text-ellipsis{text-overflow:ellipsis}.embarkai-ui-scope .whitespace-nowrap{white-space:nowrap}.embarkai-ui-scope .whitespace-pre-line{white-space:pre-line}.embarkai-ui-scope .whitespace-pre-wrap{white-space:pre-wrap}.embarkai-ui-scope .break-normal{overflow-wrap:normal;word-break:normal}.embarkai-ui-scope .break-words{overflow-wrap:break-word}.embarkai-ui-scope .break-all{word-break:break-all}.embarkai-ui-scope .rounded{border-radius:.25rem}.embarkai-ui-scope .rounded-\\[10px\\]{border-radius:10px}.embarkai-ui-scope .rounded-\\[8px\\]{border-radius:8px}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-bdrs\\)\\]{border-radius:var(--ui-kit-bdrs)}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .rounded-full{border-radius:9999px}.embarkai-ui-scope .rounded-lg{border-radius:.5rem}.embarkai-ui-scope .rounded-md{border-radius:.375rem}.embarkai-ui-scope .rounded-xl{border-radius:.75rem}.embarkai-ui-scope .border{border-width:1px}.embarkai-ui-scope .border-0{border-width:0}.embarkai-ui-scope .border-2{border-width:2px}.embarkai-ui-scope .border-b{border-bottom-width:1px}.embarkai-ui-scope .border-t{border-top-width:1px}.embarkai-ui-scope .border-dashed{border-style:dashed}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bd\\)\\]{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-error\\)\\]{border-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-success\\)\\]{border-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-warning\\)\\]{border-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-error\\)\\]{border-color:var(--ui-kit-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-secondary\\)\\]{border-color:var(--ui-kit-secondary)}.embarkai-ui-scope .border-current{border-color:currentColor}.embarkai-ui-scope .border-transparent{border-color:transparent}.embarkai-ui-scope .border-t-transparent{border-top-color:transparent}.embarkai-ui-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f0f6f8\\]{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-accent\\)\\]{background-color:var(--ui-kit-accent)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg\\)\\]{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-error\\)\\]{background-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-info\\)\\]{background-color:var(--ui-kit-bg-info)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-secondary\\)\\]{background-color:var(--ui-kit-bg-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-success\\)\\]{background-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-warning\\)\\]{background-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-fg\\)\\]{background-color:var(--ui-kit-fg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-overlay\\)\\]{background-color:var(--ui-kit-overlay)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-primary\\)\\]{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary\\)\\]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary-h\\)\\]{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-transparent{background-color:transparent}.embarkai-ui-scope .fill-\\[var\\(--ui-kit-bg-warning\\)\\]{fill:var(--ui-kit-bg-warning)}.embarkai-ui-scope .object-contain{-o-object-fit:contain;object-fit:contain}.embarkai-ui-scope .object-cover{-o-object-fit:cover;object-fit:cover}.embarkai-ui-scope .p-0{padding:0}.embarkai-ui-scope .p-1{padding:.25rem}.embarkai-ui-scope .p-2{padding:.5rem}.embarkai-ui-scope .p-3{padding:.75rem}.embarkai-ui-scope .p-4{padding:1rem}.embarkai-ui-scope .p-5{padding:1.25rem}.embarkai-ui-scope .p-6{padding:1.5rem}.embarkai-ui-scope .p-8{padding:2rem}.embarkai-ui-scope .p-\\[2px\\]{padding:2px}.embarkai-ui-scope .p-\\[var\\(--ui-kit-gap\\)\\]{padding:var(--ui-kit-gap)}.embarkai-ui-scope .p-\\[var\\(--ui-kit-pd\\)\\]{padding:var(--ui-kit-pd)}.embarkai-ui-scope .px-0{padding-left:0;padding-right:0}.embarkai-ui-scope .px-1{padding-left:.25rem;padding-right:.25rem}.embarkai-ui-scope .px-2{padding-left:.5rem;padding-right:.5rem}.embarkai-ui-scope .px-3{padding-left:.75rem;padding-right:.75rem}.embarkai-ui-scope .px-4{padding-left:1rem;padding-right:1rem}.embarkai-ui-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.embarkai-ui-scope .px-8{padding-left:2rem;padding-right:2rem}.embarkai-ui-scope .px-\\[var\\(--ui-kit-gap\\)\\]{padding-left:var(--ui-kit-gap);padding-right:var(--ui-kit-gap)}.embarkai-ui-scope .px-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .py-0{padding-top:0;padding-bottom:0}.embarkai-ui-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.embarkai-ui-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.embarkai-ui-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.embarkai-ui-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.embarkai-ui-scope .py-4{padding-top:1rem;padding-bottom:1rem}.embarkai-ui-scope .py-8{padding-top:2rem;padding-bottom:2rem}.embarkai-ui-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.embarkai-ui-scope .py-\\[var\\(--ui-kit-gap\\)\\]{padding-top:var(--ui-kit-gap);padding-bottom:var(--ui-kit-gap)}.embarkai-ui-scope .py-\\[var\\(--ui-kit-pd\\)\\]{padding-top:var(--ui-kit-pd);padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pb-2{padding-bottom:.5rem}.embarkai-ui-scope .pb-5{padding-bottom:1.25rem}.embarkai-ui-scope .pb-6{padding-bottom:1.5rem}.embarkai-ui-scope .pb-\\[var\\(--ui-kit-pd\\)\\]{padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pl-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd)}.embarkai-ui-scope .pr-8{padding-right:2rem}.embarkai-ui-scope .pt-3{padding-top:.75rem}.embarkai-ui-scope .pt-4{padding-top:1rem}.embarkai-ui-scope .pt-5{padding-top:1.25rem}.embarkai-ui-scope .text-left{text-align:left}.embarkai-ui-scope .text-center{text-align:center}.embarkai-ui-scope .text-right{text-align:right}.embarkai-ui-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.embarkai-ui-scope .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.embarkai-ui-scope .text-2xl{font-size:1.5rem;line-height:2rem}.embarkai-ui-scope .text-\\[10px\\]{font-size:10px}.embarkai-ui-scope .text-\\[14px\\]{font-size:14px}.embarkai-ui-scope .text-\\[16px\\]{font-size:16px}.embarkai-ui-scope .text-\\[8px\\]{font-size:8px}.embarkai-ui-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.embarkai-ui-scope .text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.embarkai-ui-scope .text-xs{font-size:.75rem;line-height:1rem}.embarkai-ui-scope .font-bold{font-weight:700}.embarkai-ui-scope .font-medium{font-weight:500}.embarkai-ui-scope .font-normal{font-weight:400}.embarkai-ui-scope .font-semibold{font-weight:600}.embarkai-ui-scope .uppercase{text-transform:uppercase}.embarkai-ui-scope .lowercase{text-transform:lowercase}.embarkai-ui-scope .leading-3{line-height:.75rem}.embarkai-ui-scope .leading-4{line-height:1rem}.embarkai-ui-scope .leading-5{line-height:1.25rem}.embarkai-ui-scope .leading-6{line-height:1.5rem}.embarkai-ui-scope .leading-8{line-height:2rem}.embarkai-ui-scope .leading-\\[8px\\]{line-height:8px}.embarkai-ui-scope .leading-none{line-height:1}.embarkai-ui-scope .leading-tight{line-height:1.25}.embarkai-ui-scope .tracking-\\[0\\.3em\\]{letter-spacing:.3em}.embarkai-ui-scope .tracking-tight{letter-spacing:-.025em}.embarkai-ui-scope .tracking-wider{letter-spacing:.05em}.embarkai-ui-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-error\\)\\]{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-success\\)\\]{color:var(--ui-kit-bg-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-warning\\)\\]{color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-error\\)\\]{color:var(--ui-kit-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg\\)\\]{color:var(--ui-kit-fg)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-inverted\\)\\]{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-muted\\)\\]{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-info\\)\\]{color:var(--ui-kit-info)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-primary\\)\\]{color:var(--ui-kit-primary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-success\\)\\]{color:var(--ui-kit-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-text-secondary\\)\\]{color:var(--ui-kit-text-secondary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-warning\\)\\]{color:var(--ui-kit-warning)}.embarkai-ui-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.embarkai-ui-scope .underline{text-decoration-line:underline}.embarkai-ui-scope .underline-offset-2{text-underline-offset:2px}.embarkai-ui-scope .underline-offset-4{text-underline-offset:4px}.embarkai-ui-scope .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope .opacity-0{opacity:0}.embarkai-ui-scope .opacity-100{opacity:1}.embarkai-ui-scope .opacity-50{opacity:.5}.embarkai-ui-scope .opacity-60{opacity:.6}.embarkai-ui-scope .opacity-70{opacity:.7}.embarkai-ui-scope .opacity-90{opacity:.9}.embarkai-ui-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.embarkai-ui-scope .shadow,.embarkai-ui-scope .shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.embarkai-ui-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .outline{outline-style:solid}.embarkai-ui-scope .blur{--tw-blur:blur(8px)}.embarkai-ui-scope .blur,.embarkai-ui-scope .grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .grayscale{--tw-grayscale:grayscale(100%)}.embarkai-ui-scope .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-none{transition-property:none}.embarkai-ui-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .duration-200{transition-duration:.2s}.embarkai-ui-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.embarkai-ui-scope{--ui-kit-ff:var(--embark-ui-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--ui-kit-maw:var(--embark-ui-maw,384px);--ui-kit-pd:var(--embark-ui-pd,12px);--ui-kit-gap:var(--embark-ui-gap,10px);--ui-kit-bdrs:var(--embark-ui-bdrs,20px);--ui-kit-el-bdrs:var(--embark-ui-element-bdrs,10px);--ui-kit-backdrop-blur:var(--embark-ui-backdrop-blur,10px)}.embarkai-ui-scope[data-current-theme-mode=light]{--ui-kit-overlay:var(--embark-ui-overlay,hsla(0,0%,100%,.8));--ui-kit-bg:var(--embark-ui-bg,#fff);--ui-kit-fg:var(--embark-ui-fg,#000);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#fff);--ui-kit-fg-muted:var(--embark-ui-fg-muted,rgba(0,0,0,.6));--ui-kit-primary:var(--embark-ui-primary,#000);--ui-kit-primary-h:var(--embark-ui-primary-h,rgba(0,0,0,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,rgba(0,0,0,.6));--ui-kit-secondary:var(--embark-ui-secondary,#e4e4e4);--ui-kit-secondary-h:var(--embark-ui-secondary-h,hsla(0,0%,89%,.8));--ui-kit-secondary-a:var(--embark-ui-secondary-a,hsla(0,0%,89%,.6));--ui-kit-bd:var(--embark-ui-bd,#ebebeb);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#a9a9a9);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope[data-current-theme-mode=dark]{--ui-kit-overlay:var(--embark-ui-overlay,rgba(0,0,0,.8));--ui-kit-bg:var(--embark-ui-bg,#1a1a1a);--ui-kit-fg:var(--embark-ui-fg,#fff);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#000);--ui-kit-fg-muted:var(--embark-ui-fg-muted,hsla(0,0%,100%,.6));--ui-kit-primary:var(--embark-ui-primary,#fff);--ui-kit-primary-h:var(--embark-ui-primary-h,hsla(0,0%,100%,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,hsla(0,0%,100%,.6));--ui-kit-secondary:var(--embark-ui-secondary,#2a2a2a);--ui-kit-secondary-h:var(--embark-ui-secondary-h,rgba(42,42,42,.6));--ui-kit-secondary-a:var(--embark-ui-secondary-a,rgba(42,42,42,.4));--ui-kit-bd:var(--embark-ui-bd,#3a3a3a);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#4a4a4a);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope,.embarkai-ui-scope *{margin:0;box-sizing:border-box;font-family:var(--ui-kit-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope button,.embarkai-ui-scope h1,.embarkai-ui-scope h2,.embarkai-ui-scope h3,.embarkai-ui-scope h4,.embarkai-ui-scope h5,.embarkai-ui-scope h6,.embarkai-ui-scope input,.embarkai-ui-scope p,.embarkai-ui-scope select,.embarkai-ui-scope textarea{font-family:var(--ui-kit-ff)!important;margin:0}.embarkai-ui-scope button,.embarkai-ui-scope input,.embarkai-ui-scope select,.embarkai-ui-scope textarea{border-style:solid;outline:none!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.embarkai-ui-scope input,.embarkai-ui-scope textarea{font-size:16px!important}.embarkai-ui-scope .account-connect-button{box-shadow:0 4px 20px var(--ui-kit-shadow-c),inset 0 0 0 1px var(--ui-kit-bd);transition:transform .25s ease}.embarkai-ui-scope .account-connect-button:hover{transform:scale(1.02)}.embarkai-ui-scope .account-connect-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.embarkai-ui-scope .animate-mobile-dialog-in{animation:lumia-mobile-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.embarkai-ui-scope .animate-dialog-in{animation:lumia-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.embarkai-ui-scope .list-scrollbar-y{width:100%;padding-right:var(--ui-kit-list-scrollbar-pd-r,0);overflow-y:auto;overflow-x:hidden;max-height:var(--ui-kit-scrollbar-mah,300px)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--ui-kit-bd)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.embarkai-ui-scope .noScrollbars::-webkit-scrollbar{display:none}.embarkai-ui-scope div[data-radix-popper-content-wrapper]{z-index:10000!important}.embarkai-ui-scope .file\\:mr-\\[var\\(--ui-kit-gap\\)\\]::file-selector-button{margin-right:var(--ui-kit-gap)}.embarkai-ui-scope .file\\:h-12::file-selector-button{height:3rem}.embarkai-ui-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.embarkai-ui-scope .file\\:rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]::file-selector-button{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .file\\:border-0::file-selector-button{border-width:0}.embarkai-ui-scope .file\\:bg-\\[var\\(--ui-kit-primary\\)\\]::file-selector-button{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.embarkai-ui-scope .file\\:px-\\[var\\(--ui-kit-pd\\)\\]::file-selector-button{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.embarkai-ui-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.embarkai-ui-scope .file\\:font-medium::file-selector-button{font-weight:500}.embarkai-ui-scope .file\\:text-\\[var\\(--ui-kit-fg-inverted\\)\\]::file-selector-button{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::-moz-placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .focus-within\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus-within{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .hover\\:bg-\\[\\#002c15\\]:hover{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#081f2c\\]:hover{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f0f6f8\\]:hover{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f3ba2f\\]:hover{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-bg-secondary\\)\\]:hover{background-color:var(--ui-kit-bg-secondary)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary-h\\)\\]:hover{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[var\\(--ui-kit-fg\\)\\]:hover{color:var(--ui-kit-fg)}.embarkai-ui-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:underline:hover{text-decoration-line:underline}.embarkai-ui-scope .hover\\:opacity-100:hover{opacity:1}.embarkai-ui-scope .hover\\:opacity-80:hover{opacity:.8}.embarkai-ui-scope .hover\\:brightness-110:hover{--tw-brightness:brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.embarkai-ui-scope .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.embarkai-ui-scope .focus\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus\\:bg-transparent:focus{background-color:transparent}.embarkai-ui-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.embarkai-ui-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.embarkai-ui-scope .active\\:bg-\\[\\#f3ba2f\\]:active{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:active{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .active\\:opacity-60:active{opacity:.6}.embarkai-ui-scope .file\\:active\\:opacity-80:active::file-selector-button{opacity:.8}.embarkai-ui-scope .disabled\\:cursor-default:disabled{cursor:default}.embarkai-ui-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.embarkai-ui-scope .disabled\\:opacity-50:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover:disabled{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .disabled\\:hover\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:hover:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:hover\\:opacity-50:hover:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:active\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:active:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:active\\:opacity-50:active:disabled{opacity:.5}.embarkai-ui-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.embarkai-ui-scope .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.embarkai-ui-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.embarkai-ui-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--ui-kit-bd-intense\\)\\][data-state=checked]{border-color:var(--ui-kit-bd-intense)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--ui-kit-secondary\\)\\][data-state=checked]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--ui-kit-fg\\)\\][data-state=checked]{color:var(--ui-kit-fg)}.embarkai-ui-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--ui-kit-gap\\)\\][data-slot=select-value]>*){gap:var(--ui-kit-gap)}@media (min-width:640px){.embarkai-ui-scope .sm\\:flex-row{flex-direction:row}.embarkai-ui-scope .sm\\:justify-end{justify-content:flex-end}.embarkai-ui-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.embarkai-ui-scope .md\\:h-8{height:2rem}.embarkai-ui-scope .md\\:w-8{width:2rem}.embarkai-ui-scope .md\\:gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope .md\\:py-1{padding-top:.25rem;padding-bottom:.25rem}.embarkai-ui-scope .md\\:text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .md\\:text-xs{font-size:.75rem;line-height:1rem}}.embarkai-ui-scope :is(.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}`;
|
|
28272
28236
|
|
|
28273
28237
|
// src/index.ts
|
|
28274
28238
|
init_ProviderContext();
|
|
@@ -28287,8 +28251,8 @@ init_pro_mode();
|
|
|
28287
28251
|
init_utils2();
|
|
28288
28252
|
import { useQuery as useQuery28 } from "@tanstack/react-query";
|
|
28289
28253
|
import { Cloud as Cloud4, Laptop as Laptop2, Loader as Loader37, Shield as Shield3 } from "lucide-react";
|
|
28290
|
-
import { useEffect as useEffect51, useMemo as
|
|
28291
|
-
import { Fragment as
|
|
28254
|
+
import { useEffect as useEffect51, useMemo as useMemo12 } from "react";
|
|
28255
|
+
import { Fragment as Fragment48, jsx as jsx127, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
28292
28256
|
function getFormattedStatus(label, status, showStatus) {
|
|
28293
28257
|
const isStatus = showStatus && status && status !== "idle" && status !== "ready";
|
|
28294
28258
|
if (!isStatus) return label;
|
|
@@ -28315,7 +28279,7 @@ function ConnectWalletButton(props) {
|
|
|
28315
28279
|
queryFn: getUserProfile
|
|
28316
28280
|
});
|
|
28317
28281
|
const displayName = profile?.nicknameDisplay || profile?.displayName || jwtTokenManager2.getDisplayName();
|
|
28318
|
-
const indicators =
|
|
28282
|
+
const indicators = useMemo12(() => {
|
|
28319
28283
|
const userId = session?.mpcUserId;
|
|
28320
28284
|
if (!userId) return { server: false, local: false, backup: false };
|
|
28321
28285
|
const server = jwtTokenManager2.getHasKeyshare() ?? false;
|
|
@@ -28324,16 +28288,16 @@ function ConnectWalletButton(props) {
|
|
|
28324
28288
|
}, [session, address, hasServerVault]);
|
|
28325
28289
|
const proMode = useProMode();
|
|
28326
28290
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
28327
|
-
return /* @__PURE__ */
|
|
28291
|
+
return /* @__PURE__ */ jsx127("div", { "data-current-theme-mode": colorMode, className: cn("embarkai-ui-scope w-fit h-fit", className), children: !address ? (
|
|
28328
28292
|
/** external Buttons can be provided */
|
|
28329
|
-
/* @__PURE__ */
|
|
28293
|
+
/* @__PURE__ */ jsx127(Fragment48, { children: ConnectButton ? /* @__PURE__ */ jsxs110(
|
|
28330
28294
|
ConnectButton,
|
|
28331
28295
|
{
|
|
28332
28296
|
type: "button",
|
|
28333
28297
|
disabled: isConnecting,
|
|
28334
28298
|
onClick: () => setPage("auth" /* AUTH */),
|
|
28335
28299
|
children: [
|
|
28336
|
-
isConnecting && /* @__PURE__ */
|
|
28300
|
+
isConnecting && /* @__PURE__ */ jsx127(Loader37, { className: "w-4 h-4 animate-spin" }),
|
|
28337
28301
|
connectButtonLabel
|
|
28338
28302
|
]
|
|
28339
28303
|
}
|
|
@@ -28354,7 +28318,7 @@ function ConnectWalletButton(props) {
|
|
|
28354
28318
|
"disabled:hover:bg-[var(--ui-kit-bg)] disabled:active:bg-[var(--ui-kit-bg)]"
|
|
28355
28319
|
),
|
|
28356
28320
|
children: [
|
|
28357
|
-
isConnecting && /* @__PURE__ */
|
|
28321
|
+
isConnecting && /* @__PURE__ */ jsx127(Loader37, { className: "w-4 h-4 animate-spin" }),
|
|
28358
28322
|
connectButtonLabel.toUpperCase()
|
|
28359
28323
|
]
|
|
28360
28324
|
}
|
|
@@ -28373,19 +28337,19 @@ function ConnectWalletButton(props) {
|
|
|
28373
28337
|
),
|
|
28374
28338
|
children: [
|
|
28375
28339
|
/* @__PURE__ */ jsxs110("div", { className: "relative w-12 h-12 rounded-full bg-[var(--ui-kit-fg)] flex items-center justify-center flex-shrink-0", children: [
|
|
28376
|
-
proMode && /* @__PURE__ */
|
|
28377
|
-
profile?.avatar ? /* @__PURE__ */
|
|
28340
|
+
proMode && /* @__PURE__ */ jsx127("span", { className: "absolute -top-1 -right-1 text-[8px] font-bold px-1 rounded bg-[var(--ui-kit-primary)] text-[var(--ui-kit-fg-inverted)] leading-3 z-10", children: "PRO" }),
|
|
28341
|
+
profile?.avatar ? /* @__PURE__ */ jsx127("img", { src: profile.avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ jsx127(LumiaIcon3, { width: 48, height: 48 })
|
|
28378
28342
|
] }),
|
|
28379
28343
|
/* @__PURE__ */ jsxs110("div", { className: "text-left flex-1 min-w-0 text-[var(--ui-kit-fg)]", children: [
|
|
28380
28344
|
/* @__PURE__ */ jsxs110("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
28381
|
-
isProfileLoading ? /* @__PURE__ */
|
|
28382
|
-
!isProfileLoading && /* @__PURE__ */
|
|
28345
|
+
isProfileLoading ? /* @__PURE__ */ jsx127(Loader37, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx127("span", { className: "w-fit text-[14px] leading-4 truncate max-w-[144px] text-[var(--ui-kit-fg)]", children: displayName }),
|
|
28346
|
+
!isProfileLoading && /* @__PURE__ */ jsx127(KYCStatus, {})
|
|
28383
28347
|
] }),
|
|
28384
|
-
/* @__PURE__ */
|
|
28348
|
+
/* @__PURE__ */ jsx127(BalanceView, {})
|
|
28385
28349
|
] }),
|
|
28386
28350
|
/* @__PURE__ */ jsxs110("div", { className: "flex items-center space-x-1", children: [
|
|
28387
28351
|
/* @__PURE__ */ jsxs110("div", { className: "group relative", children: [
|
|
28388
|
-
/* @__PURE__ */
|
|
28352
|
+
/* @__PURE__ */ jsx127(
|
|
28389
28353
|
Cloud4,
|
|
28390
28354
|
{
|
|
28391
28355
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
@@ -28407,7 +28371,7 @@ function ConnectWalletButton(props) {
|
|
|
28407
28371
|
)
|
|
28408
28372
|
] }),
|
|
28409
28373
|
/* @__PURE__ */ jsxs110("div", { className: "group relative", children: [
|
|
28410
|
-
/* @__PURE__ */
|
|
28374
|
+
/* @__PURE__ */ jsx127(
|
|
28411
28375
|
Laptop2,
|
|
28412
28376
|
{
|
|
28413
28377
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
@@ -28429,7 +28393,7 @@ function ConnectWalletButton(props) {
|
|
|
28429
28393
|
)
|
|
28430
28394
|
] }),
|
|
28431
28395
|
/* @__PURE__ */ jsxs110("div", { className: "group relative", children: [
|
|
28432
|
-
/* @__PURE__ */
|
|
28396
|
+
/* @__PURE__ */ jsx127(
|
|
28433
28397
|
Shield3,
|
|
28434
28398
|
{
|
|
28435
28399
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
@@ -28451,7 +28415,7 @@ function ConnectWalletButton(props) {
|
|
|
28451
28415
|
)
|
|
28452
28416
|
] })
|
|
28453
28417
|
] }),
|
|
28454
|
-
!!settingsNotifications.length && /* @__PURE__ */
|
|
28418
|
+
!!settingsNotifications.length && /* @__PURE__ */ jsx127(
|
|
28455
28419
|
"div",
|
|
28456
28420
|
{
|
|
28457
28421
|
className: cn(
|
|
@@ -28529,24 +28493,24 @@ init_useColorMode();
|
|
|
28529
28493
|
init_button();
|
|
28530
28494
|
init_utils2();
|
|
28531
28495
|
import { Moon, Sun } from "lucide-react";
|
|
28532
|
-
import { jsx as
|
|
28496
|
+
import { jsx as jsx128 } from "react/jsx-runtime";
|
|
28533
28497
|
function ThemeToggle(props) {
|
|
28534
28498
|
const { className, ...btnProps } = props;
|
|
28535
28499
|
const { colorMode, setColorMode } = useColorMode();
|
|
28536
|
-
return /* @__PURE__ */
|
|
28500
|
+
return /* @__PURE__ */ jsx128(
|
|
28537
28501
|
"div",
|
|
28538
28502
|
{
|
|
28539
28503
|
className: cn("embarkai-ui-scope", className),
|
|
28540
28504
|
"data-current-theme-mode": colorMode,
|
|
28541
28505
|
style: { width: "fit-content", height: "fit-content" },
|
|
28542
|
-
children: /* @__PURE__ */
|
|
28506
|
+
children: /* @__PURE__ */ jsx128(
|
|
28543
28507
|
Button,
|
|
28544
28508
|
{
|
|
28545
28509
|
...btnProps,
|
|
28546
28510
|
variant: "ghost",
|
|
28547
28511
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
28548
28512
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
28549
|
-
children: colorMode === "dark" ? /* @__PURE__ */
|
|
28513
|
+
children: colorMode === "dark" ? /* @__PURE__ */ jsx128(Sun, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx128(Moon, { className: "w-4 h-4" })
|
|
28550
28514
|
}
|
|
28551
28515
|
)
|
|
28552
28516
|
}
|
|
@@ -28558,18 +28522,18 @@ init_i18n();
|
|
|
28558
28522
|
init_button();
|
|
28559
28523
|
init_useLayoutDataStore();
|
|
28560
28524
|
init_utils2();
|
|
28561
|
-
import { jsx as
|
|
28525
|
+
import { jsx as jsx129 } from "react/jsx-runtime";
|
|
28562
28526
|
function LangToggle(props) {
|
|
28563
28527
|
const { className, ...btnProps } = props;
|
|
28564
28528
|
const { i18n } = useT();
|
|
28565
28529
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
28566
|
-
return /* @__PURE__ */
|
|
28530
|
+
return /* @__PURE__ */ jsx129(
|
|
28567
28531
|
"div",
|
|
28568
28532
|
{
|
|
28569
28533
|
className: cn("embarkai-ui-scope", className),
|
|
28570
28534
|
"data-mbark-language": i18n.resolvedLanguage || "en",
|
|
28571
28535
|
style: { width: "fit-content", height: "fit-content" },
|
|
28572
|
-
children: /* @__PURE__ */
|
|
28536
|
+
children: /* @__PURE__ */ jsx129(
|
|
28573
28537
|
Button,
|
|
28574
28538
|
{
|
|
28575
28539
|
...btnProps,
|
|
@@ -28587,18 +28551,94 @@ function LangToggle(props) {
|
|
|
28587
28551
|
init_useLayoutDataStore();
|
|
28588
28552
|
|
|
28589
28553
|
// src/internal/components/UserOpStatus.tsx
|
|
28590
|
-
init_getUserOperationByHash();
|
|
28591
|
-
init_getUserOperationReceipt();
|
|
28592
|
-
init_cn();
|
|
28593
28554
|
import { AlertCircle as AlertCircle8, CheckCircle2 as CheckCircle27, Clock as Clock2, Copy as Copy7, ExternalLink as ExternalLink3, RefreshCw as RefreshCw4 } from "lucide-react";
|
|
28594
28555
|
import * as React12 from "react";
|
|
28595
28556
|
|
|
28557
|
+
// src/clients/bundler/getUserOperationByHash.ts
|
|
28558
|
+
init_SessionContext();
|
|
28559
|
+
import { bundlerRpc } from "@embarkai/core";
|
|
28560
|
+
import { getChainConfig as getChainConfig10 } from "@embarkai/core/read";
|
|
28561
|
+
async function getUserOperationByHash(userOpHash, chainId) {
|
|
28562
|
+
const targetChainId = chainId ?? requireActiveChainId();
|
|
28563
|
+
const chainConfig = getChainConfig10(targetChainId);
|
|
28564
|
+
if (!chainConfig) {
|
|
28565
|
+
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
28566
|
+
}
|
|
28567
|
+
if (!chainConfig.bundlerUrl) {
|
|
28568
|
+
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
28569
|
+
}
|
|
28570
|
+
if (!userOpHash) {
|
|
28571
|
+
throw new Error("Operation hash is required");
|
|
28572
|
+
}
|
|
28573
|
+
try {
|
|
28574
|
+
const result = await bundlerRpc("eth_getUserOperationByHash", [userOpHash], chainConfig.bundlerUrl);
|
|
28575
|
+
if (!result) {
|
|
28576
|
+
return null;
|
|
28577
|
+
}
|
|
28578
|
+
console.log("[getUserOperationByHash] Receipt:", JSON.stringify(result, null, 2));
|
|
28579
|
+
return {
|
|
28580
|
+
entryPoint: result.entryPoint,
|
|
28581
|
+
userOperation: result.userOperation,
|
|
28582
|
+
transactionHash: result.transactionHash,
|
|
28583
|
+
blockNumber: result.blockNumber,
|
|
28584
|
+
blockHash: result.blockHash
|
|
28585
|
+
};
|
|
28586
|
+
} catch (error) {
|
|
28587
|
+
console.warn("[getUserOperationByHash] Failed to get user operation:", error);
|
|
28588
|
+
return null;
|
|
28589
|
+
}
|
|
28590
|
+
}
|
|
28591
|
+
|
|
28592
|
+
// src/clients/bundler/getUserOperationReceipt.ts
|
|
28593
|
+
init_SessionContext();
|
|
28594
|
+
import { bundlerRpc as bundlerRpc2 } from "@embarkai/core";
|
|
28595
|
+
import { getChainConfig as getChainConfig11 } from "@embarkai/core/read";
|
|
28596
|
+
async function getUserOperationReceipt(userOpHash, chainId) {
|
|
28597
|
+
const targetChainId = chainId ?? requireActiveChainId();
|
|
28598
|
+
const chainConfig = getChainConfig11(targetChainId);
|
|
28599
|
+
if (!chainConfig) {
|
|
28600
|
+
throw new Error(`Chain ${targetChainId} is not supported`);
|
|
28601
|
+
}
|
|
28602
|
+
if (!chainConfig.bundlerUrl) {
|
|
28603
|
+
throw new Error(`Chain ${targetChainId} has no bundlerUrl configured`);
|
|
28604
|
+
}
|
|
28605
|
+
if (!userOpHash) {
|
|
28606
|
+
throw new Error("Operation hash is required");
|
|
28607
|
+
}
|
|
28608
|
+
try {
|
|
28609
|
+
const result = await bundlerRpc2("eth_getUserOperationReceipt", [userOpHash], chainConfig.bundlerUrl);
|
|
28610
|
+
if (!result) {
|
|
28611
|
+
return null;
|
|
28612
|
+
}
|
|
28613
|
+
console.log("[getUserOperationReceipt] Receipt:", JSON.stringify(result, null, 2));
|
|
28614
|
+
return {
|
|
28615
|
+
userOpHash: result.userOpHash,
|
|
28616
|
+
entryPoint: result.entryPoint,
|
|
28617
|
+
sender: result.sender,
|
|
28618
|
+
nonce: result.nonce,
|
|
28619
|
+
success: result.success,
|
|
28620
|
+
actualGasCost: result.actualGasCost,
|
|
28621
|
+
actualGasUsed: result.actualGasUsed,
|
|
28622
|
+
paymaster: result.paymaster,
|
|
28623
|
+
receipt: result.receipt,
|
|
28624
|
+
logs: result.logs,
|
|
28625
|
+
reason: result.reason
|
|
28626
|
+
};
|
|
28627
|
+
} catch (error) {
|
|
28628
|
+
console.warn("[getUserOperationReceipt] Failed to get receipt:", error);
|
|
28629
|
+
return null;
|
|
28630
|
+
}
|
|
28631
|
+
}
|
|
28632
|
+
|
|
28633
|
+
// src/internal/components/UserOpStatus.tsx
|
|
28634
|
+
init_cn();
|
|
28635
|
+
|
|
28596
28636
|
// src/internal/components/Address.tsx
|
|
28597
28637
|
init_cn();
|
|
28598
28638
|
init_button();
|
|
28599
28639
|
import { Copy as Copy6, ExternalLink as ExternalLink2 } from "lucide-react";
|
|
28600
28640
|
import * as React11 from "react";
|
|
28601
|
-
import { jsx as
|
|
28641
|
+
import { jsx as jsx130, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
28602
28642
|
function toExplorerAddressUrl(address, chain) {
|
|
28603
28643
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
28604
28644
|
if (!base2) return null;
|
|
@@ -28620,11 +28660,11 @@ var Address = ({
|
|
|
28620
28660
|
const addr = address || "";
|
|
28621
28661
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
28622
28662
|
const [copied, setCopied] = React11.useState(false);
|
|
28623
|
-
if (!addr) return /* @__PURE__ */
|
|
28663
|
+
if (!addr) return /* @__PURE__ */ jsx130("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
28624
28664
|
return /* @__PURE__ */ jsxs111("div", { className: cn2("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
28625
|
-
label && /* @__PURE__ */
|
|
28626
|
-
/* @__PURE__ */
|
|
28627
|
-
showCopy && /* @__PURE__ */
|
|
28665
|
+
label && /* @__PURE__ */ jsx130("span", { className: "text-sm font-medium", children: label }),
|
|
28666
|
+
/* @__PURE__ */ jsx130("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
|
|
28667
|
+
showCopy && /* @__PURE__ */ jsx130(
|
|
28628
28668
|
Button,
|
|
28629
28669
|
{
|
|
28630
28670
|
variant: "ghost",
|
|
@@ -28638,10 +28678,10 @@ var Address = ({
|
|
|
28638
28678
|
} catch {
|
|
28639
28679
|
}
|
|
28640
28680
|
},
|
|
28641
|
-
children: /* @__PURE__ */
|
|
28681
|
+
children: /* @__PURE__ */ jsx130(Copy6, { className: "h-4 w-4" })
|
|
28642
28682
|
}
|
|
28643
28683
|
),
|
|
28644
|
-
showExplorer && explorer && /* @__PURE__ */
|
|
28684
|
+
showExplorer && explorer && /* @__PURE__ */ jsx130(
|
|
28645
28685
|
"a",
|
|
28646
28686
|
{
|
|
28647
28687
|
href: explorer,
|
|
@@ -28649,7 +28689,7 @@ var Address = ({
|
|
|
28649
28689
|
rel: "noreferrer noopener",
|
|
28650
28690
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
28651
28691
|
title: "Open in explorer",
|
|
28652
|
-
children: /* @__PURE__ */
|
|
28692
|
+
children: /* @__PURE__ */ jsx130(ExternalLink2, { className: "h-4 w-4" })
|
|
28653
28693
|
}
|
|
28654
28694
|
)
|
|
28655
28695
|
] });
|
|
@@ -28658,7 +28698,7 @@ var Address = ({
|
|
|
28658
28698
|
// src/internal/components/UserOpStatus.tsx
|
|
28659
28699
|
init_badge();
|
|
28660
28700
|
init_button();
|
|
28661
|
-
import { jsx as
|
|
28701
|
+
import { jsx as jsx131, jsxs as jsxs112 } from "react/jsx-runtime";
|
|
28662
28702
|
var UserOpStatus = ({
|
|
28663
28703
|
userOpHash,
|
|
28664
28704
|
chain,
|
|
@@ -28774,30 +28814,30 @@ var UserOpStatus = ({
|
|
|
28774
28814
|
if (receipt) {
|
|
28775
28815
|
const ok = !!receipt.success;
|
|
28776
28816
|
return /* @__PURE__ */ jsxs112(Badge, { variant: ok ? "success" : "destructive", children: [
|
|
28777
|
-
ok ? /* @__PURE__ */
|
|
28817
|
+
ok ? /* @__PURE__ */ jsx131(CheckCircle27, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx131(AlertCircle8, { className: "h-3 w-3" }),
|
|
28778
28818
|
ok ? "Included" : "Failed"
|
|
28779
28819
|
] });
|
|
28780
28820
|
}
|
|
28781
28821
|
if (rejected) {
|
|
28782
28822
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "destructive", children: [
|
|
28783
|
-
/* @__PURE__ */
|
|
28823
|
+
/* @__PURE__ */ jsx131(AlertCircle8, { className: "h-3 w-3" }),
|
|
28784
28824
|
" Rejected by bundler"
|
|
28785
28825
|
] });
|
|
28786
28826
|
}
|
|
28787
28827
|
if (timedOut) {
|
|
28788
28828
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "warning", children: [
|
|
28789
|
-
/* @__PURE__ */
|
|
28829
|
+
/* @__PURE__ */ jsx131(AlertCircle8, { className: "h-3 w-3" }),
|
|
28790
28830
|
" Timeout - may be rejected"
|
|
28791
28831
|
] });
|
|
28792
28832
|
}
|
|
28793
28833
|
if (mempool) {
|
|
28794
28834
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "outline", children: [
|
|
28795
|
-
/* @__PURE__ */
|
|
28835
|
+
/* @__PURE__ */ jsx131(Clock2, { className: "h-3 w-3" }),
|
|
28796
28836
|
" Pending in bundler"
|
|
28797
28837
|
] });
|
|
28798
28838
|
}
|
|
28799
28839
|
return /* @__PURE__ */ jsxs112(Badge, { variant: "secondary", children: [
|
|
28800
|
-
/* @__PURE__ */
|
|
28840
|
+
/* @__PURE__ */ jsx131(Clock2, { className: "h-3 w-3" }),
|
|
28801
28841
|
" Waiting"
|
|
28802
28842
|
] });
|
|
28803
28843
|
};
|
|
@@ -28813,17 +28853,17 @@ var UserOpStatus = ({
|
|
|
28813
28853
|
/* @__PURE__ */ jsxs112("div", { className: "flex items-center justify-between mb-3", children: [
|
|
28814
28854
|
/* @__PURE__ */ jsxs112("div", { className: "flex items-center gap-2", children: [
|
|
28815
28855
|
stateBadge(),
|
|
28816
|
-
/* @__PURE__ */
|
|
28856
|
+
/* @__PURE__ */ jsx131("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
|
|
28817
28857
|
] }),
|
|
28818
28858
|
/* @__PURE__ */ jsxs112(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
28819
|
-
/* @__PURE__ */
|
|
28820
|
-
/* @__PURE__ */
|
|
28859
|
+
/* @__PURE__ */ jsx131(RefreshCw4, { className: cn2("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
28860
|
+
/* @__PURE__ */ jsx131("span", { className: "text-xs", children: "Refresh" })
|
|
28821
28861
|
] })
|
|
28822
28862
|
] }),
|
|
28823
28863
|
/* @__PURE__ */ jsxs112("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
28824
|
-
/* @__PURE__ */
|
|
28825
|
-
/* @__PURE__ */
|
|
28826
|
-
/* @__PURE__ */
|
|
28864
|
+
/* @__PURE__ */ jsx131("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
|
|
28865
|
+
/* @__PURE__ */ jsx131("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
|
|
28866
|
+
/* @__PURE__ */ jsx131(
|
|
28827
28867
|
Button,
|
|
28828
28868
|
{
|
|
28829
28869
|
variant: "ghost",
|
|
@@ -28835,14 +28875,14 @@ var UserOpStatus = ({
|
|
|
28835
28875
|
} catch {
|
|
28836
28876
|
}
|
|
28837
28877
|
},
|
|
28838
|
-
children: /* @__PURE__ */
|
|
28878
|
+
children: /* @__PURE__ */ jsx131(Copy7, { className: "h-3.5 w-3.5" })
|
|
28839
28879
|
}
|
|
28840
28880
|
)
|
|
28841
28881
|
] }),
|
|
28842
28882
|
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ jsxs112("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
28843
|
-
/* @__PURE__ */
|
|
28844
|
-
/* @__PURE__ */
|
|
28845
|
-
/* @__PURE__ */
|
|
28883
|
+
/* @__PURE__ */ jsx131("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
|
|
28884
|
+
/* @__PURE__ */ jsx131("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
|
|
28885
|
+
/* @__PURE__ */ jsx131(
|
|
28846
28886
|
Button,
|
|
28847
28887
|
{
|
|
28848
28888
|
variant: "ghost",
|
|
@@ -28854,10 +28894,10 @@ var UserOpStatus = ({
|
|
|
28854
28894
|
} catch {
|
|
28855
28895
|
}
|
|
28856
28896
|
},
|
|
28857
|
-
children: /* @__PURE__ */
|
|
28897
|
+
children: /* @__PURE__ */ jsx131(Copy7, { className: "h-3.5 w-3.5" })
|
|
28858
28898
|
}
|
|
28859
28899
|
),
|
|
28860
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */
|
|
28900
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ jsx131(
|
|
28861
28901
|
"a",
|
|
28862
28902
|
{
|
|
28863
28903
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -28865,7 +28905,7 @@ var UserOpStatus = ({
|
|
|
28865
28905
|
rel: "noreferrer noopener",
|
|
28866
28906
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
28867
28907
|
title: "Open in explorer",
|
|
28868
|
-
children: /* @__PURE__ */
|
|
28908
|
+
children: /* @__PURE__ */ jsx131(ExternalLink3, { className: "h-3.5 w-3.5" })
|
|
28869
28909
|
}
|
|
28870
28910
|
)
|
|
28871
28911
|
] }),
|
|
@@ -28878,7 +28918,7 @@ var UserOpStatus = ({
|
|
|
28878
28918
|
" \u2022 Success ",
|
|
28879
28919
|
String(!!receipt.success)
|
|
28880
28920
|
] }),
|
|
28881
|
-
/* @__PURE__ */
|
|
28921
|
+
/* @__PURE__ */ jsx131("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ jsxs112("span", { className: "ml-2", children: [
|
|
28882
28922
|
"\u2022 Polling for ",
|
|
28883
28923
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
28884
28924
|
"s"
|
|
@@ -28886,24 +28926,24 @@ var UserOpStatus = ({
|
|
|
28886
28926
|
mempool && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
|
|
28887
28927
|
/* @__PURE__ */ jsxs112("div", { children: [
|
|
28888
28928
|
"Seen by bundler at ",
|
|
28889
|
-
/* @__PURE__ */
|
|
28929
|
+
/* @__PURE__ */ jsx131(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
28890
28930
|
] }),
|
|
28891
28931
|
/* @__PURE__ */ jsxs112("div", { children: [
|
|
28892
28932
|
"sender ",
|
|
28893
|
-
/* @__PURE__ */
|
|
28933
|
+
/* @__PURE__ */ jsx131(Address, { address: mempool.sender, chain, truncate: false })
|
|
28894
28934
|
] })
|
|
28895
28935
|
] }),
|
|
28896
28936
|
error && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
28897
|
-
/* @__PURE__ */
|
|
28937
|
+
/* @__PURE__ */ jsx131(AlertCircle8, { className: "h-4 w-4" }),
|
|
28898
28938
|
" ",
|
|
28899
28939
|
error
|
|
28900
28940
|
] }),
|
|
28901
28941
|
rejected && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
28902
|
-
/* @__PURE__ */
|
|
28942
|
+
/* @__PURE__ */ jsx131(AlertCircle8, { className: "h-4 w-4" }),
|
|
28903
28943
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
28904
28944
|
] }),
|
|
28905
28945
|
timedOut && /* @__PURE__ */ jsxs112("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
28906
|
-
/* @__PURE__ */
|
|
28946
|
+
/* @__PURE__ */ jsx131(AlertCircle8, { className: "h-4 w-4" }),
|
|
28907
28947
|
"Stopped polling after ",
|
|
28908
28948
|
Math.round(maxPollTimeMs / 1e3),
|
|
28909
28949
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -28918,7 +28958,7 @@ init_cn();
|
|
|
28918
28958
|
init_button();
|
|
28919
28959
|
import { Copy as Copy8, ExternalLink as ExternalLink4 } from "lucide-react";
|
|
28920
28960
|
import * as React13 from "react";
|
|
28921
|
-
import { jsx as
|
|
28961
|
+
import { jsx as jsx132, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
28922
28962
|
function toExplorerUrl(kind, value, chain) {
|
|
28923
28963
|
const base2 = chain?.blockExplorers?.default?.url;
|
|
28924
28964
|
if (!base2) return null;
|
|
@@ -28942,11 +28982,11 @@ var Hash = ({
|
|
|
28942
28982
|
const value = hash || "";
|
|
28943
28983
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
28944
28984
|
const [copied, setCopied] = React13.useState(false);
|
|
28945
|
-
if (!value) return /* @__PURE__ */
|
|
28985
|
+
if (!value) return /* @__PURE__ */ jsx132("span", { className: cn2("text-muted-foreground", className), children: "\u2014" });
|
|
28946
28986
|
return /* @__PURE__ */ jsxs113("div", { className: cn2("flex items-center gap-2", className), children: [
|
|
28947
|
-
label && /* @__PURE__ */
|
|
28948
|
-
/* @__PURE__ */
|
|
28949
|
-
showCopy && /* @__PURE__ */
|
|
28987
|
+
label && /* @__PURE__ */ jsx132("span", { className: "text-sm font-medium", children: label }),
|
|
28988
|
+
/* @__PURE__ */ jsx132("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
|
|
28989
|
+
showCopy && /* @__PURE__ */ jsx132(
|
|
28950
28990
|
Button,
|
|
28951
28991
|
{
|
|
28952
28992
|
variant: "ghost",
|
|
@@ -28960,10 +29000,10 @@ var Hash = ({
|
|
|
28960
29000
|
} catch {
|
|
28961
29001
|
}
|
|
28962
29002
|
},
|
|
28963
|
-
children: /* @__PURE__ */
|
|
29003
|
+
children: /* @__PURE__ */ jsx132(Copy8, { className: "h-4 w-4" })
|
|
28964
29004
|
}
|
|
28965
29005
|
),
|
|
28966
|
-
showExplorer && explorer && /* @__PURE__ */
|
|
29006
|
+
showExplorer && explorer && /* @__PURE__ */ jsx132(
|
|
28967
29007
|
"a",
|
|
28968
29008
|
{
|
|
28969
29009
|
href: explorer,
|
|
@@ -28971,7 +29011,7 @@ var Hash = ({
|
|
|
28971
29011
|
rel: "noreferrer noopener",
|
|
28972
29012
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
28973
29013
|
title: "Open in explorer",
|
|
28974
|
-
children: /* @__PURE__ */
|
|
29014
|
+
children: /* @__PURE__ */ jsx132(ExternalLink4, { className: "h-4 w-4" })
|
|
28975
29015
|
}
|
|
28976
29016
|
)
|
|
28977
29017
|
] });
|
|
@@ -28979,12 +29019,12 @@ var Hash = ({
|
|
|
28979
29019
|
|
|
28980
29020
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
28981
29021
|
init_base();
|
|
28982
|
-
import { useEffect as useEffect53, useState as
|
|
28983
|
-
import { jsx as
|
|
29022
|
+
import { useEffect as useEffect53, useState as useState37 } from "react";
|
|
29023
|
+
import { jsx as jsx133, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
28984
29024
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
28985
|
-
const [transactions, setTransactions] =
|
|
28986
|
-
const [loading, setLoading] =
|
|
28987
|
-
const [error, setError] =
|
|
29025
|
+
const [transactions, setTransactions] = useState37([]);
|
|
29026
|
+
const [loading, setLoading] = useState37(true);
|
|
29027
|
+
const [error, setError] = useState37(null);
|
|
28988
29028
|
useEffect53(() => {
|
|
28989
29029
|
const fetchTransactions2 = async () => {
|
|
28990
29030
|
try {
|
|
@@ -29032,20 +29072,20 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
29032
29072
|
};
|
|
29033
29073
|
if (loading) {
|
|
29034
29074
|
return /* @__PURE__ */ jsxs114("div", { className: "p-4 text-center", children: [
|
|
29035
|
-
/* @__PURE__ */
|
|
29036
|
-
/* @__PURE__ */
|
|
29075
|
+
/* @__PURE__ */ jsx133("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
|
|
29076
|
+
/* @__PURE__ */ jsx133("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
|
|
29037
29077
|
] });
|
|
29038
29078
|
}
|
|
29039
29079
|
if (error) {
|
|
29040
29080
|
return /* @__PURE__ */ jsxs114("div", { className: "p-4 text-center", children: [
|
|
29041
|
-
/* @__PURE__ */
|
|
29042
|
-
/* @__PURE__ */
|
|
29081
|
+
/* @__PURE__ */ jsx133("p", { className: "text-red-600 text-sm", children: error }),
|
|
29082
|
+
/* @__PURE__ */ jsx133("button", { onClick: () => window.location.reload(), className: "mt-2 text-blue-600 text-sm hover:underline", children: "Retry" })
|
|
29043
29083
|
] });
|
|
29044
29084
|
}
|
|
29045
29085
|
if (transactions.length === 0) {
|
|
29046
|
-
return /* @__PURE__ */
|
|
29086
|
+
return /* @__PURE__ */ jsx133("div", { className: "p-4 text-center", children: /* @__PURE__ */ jsx133("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
|
|
29047
29087
|
}
|
|
29048
|
-
return /* @__PURE__ */
|
|
29088
|
+
return /* @__PURE__ */ jsx133("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ jsx133("div", { className: "space-y-2 p-2", children: transactions.map((tx) => /* @__PURE__ */ jsxs114(
|
|
29049
29089
|
"div",
|
|
29050
29090
|
{
|
|
29051
29091
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
@@ -29054,8 +29094,8 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
29054
29094
|
/* @__PURE__ */ jsxs114("div", { className: "flex justify-between items-start mb-2", children: [
|
|
29055
29095
|
/* @__PURE__ */ jsxs114("div", { className: "flex-1", children: [
|
|
29056
29096
|
/* @__PURE__ */ jsxs114("div", { className: "flex items-center space-x-2 mb-1", children: [
|
|
29057
|
-
/* @__PURE__ */
|
|
29058
|
-
/* @__PURE__ */
|
|
29097
|
+
/* @__PURE__ */ jsx133("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress3(tx.hash) }),
|
|
29098
|
+
/* @__PURE__ */ jsx133(
|
|
29059
29099
|
"span",
|
|
29060
29100
|
{
|
|
29061
29101
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -29065,21 +29105,21 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
29065
29105
|
] }),
|
|
29066
29106
|
/* @__PURE__ */ jsxs114("div", { className: "text-sm space-y-1", children: [
|
|
29067
29107
|
/* @__PURE__ */ jsxs114("div", { children: [
|
|
29068
|
-
/* @__PURE__ */
|
|
29108
|
+
/* @__PURE__ */ jsx133("span", { className: "text-gray-600", children: "From:" }),
|
|
29069
29109
|
/* @__PURE__ */ jsxs114("span", { className: "font-mono ml-1", children: [
|
|
29070
29110
|
formatAddress3(tx.from.hash),
|
|
29071
|
-
tx.from.is_contract && /* @__PURE__ */
|
|
29111
|
+
tx.from.is_contract && /* @__PURE__ */ jsx133("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
29072
29112
|
] })
|
|
29073
29113
|
] }),
|
|
29074
29114
|
/* @__PURE__ */ jsxs114("div", { children: [
|
|
29075
|
-
/* @__PURE__ */
|
|
29115
|
+
/* @__PURE__ */ jsx133("span", { className: "text-gray-600", children: "To:" }),
|
|
29076
29116
|
/* @__PURE__ */ jsxs114("span", { className: "font-mono ml-1", children: [
|
|
29077
29117
|
formatAddress3(tx.to.hash),
|
|
29078
|
-
tx.to.is_contract && /* @__PURE__ */
|
|
29118
|
+
tx.to.is_contract && /* @__PURE__ */ jsx133("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
29079
29119
|
] })
|
|
29080
29120
|
] }),
|
|
29081
29121
|
/* @__PURE__ */ jsxs114("div", { children: [
|
|
29082
|
-
/* @__PURE__ */
|
|
29122
|
+
/* @__PURE__ */ jsx133("span", { className: "text-gray-600", children: "Value:" }),
|
|
29083
29123
|
/* @__PURE__ */ jsxs114("span", { className: "font-semibold ml-1", children: [
|
|
29084
29124
|
formatValue3(tx.value),
|
|
29085
29125
|
" LUMIA"
|
|
@@ -29088,15 +29128,15 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
29088
29128
|
] })
|
|
29089
29129
|
] }),
|
|
29090
29130
|
/* @__PURE__ */ jsxs114("div", { className: "text-right text-xs text-gray-500", children: [
|
|
29091
|
-
/* @__PURE__ */
|
|
29131
|
+
/* @__PURE__ */ jsx133("div", { children: formatDate2(tx.timestamp) }),
|
|
29092
29132
|
/* @__PURE__ */ jsxs114("div", { className: "mt-1", children: [
|
|
29093
29133
|
"Gas: ",
|
|
29094
29134
|
parseInt(tx.gas_used).toLocaleString()
|
|
29095
29135
|
] }),
|
|
29096
|
-
tx.method && /* @__PURE__ */
|
|
29136
|
+
tx.method && /* @__PURE__ */ jsx133("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
29097
29137
|
] })
|
|
29098
29138
|
] }),
|
|
29099
|
-
tx.transaction_types.length > 0 && /* @__PURE__ */
|
|
29139
|
+
tx.transaction_types.length > 0 && /* @__PURE__ */ jsx133("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ jsx133("span", { className: "text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full", children: type.replace("_", " ") }, idx)) })
|
|
29100
29140
|
]
|
|
29101
29141
|
},
|
|
29102
29142
|
tx.hash
|
|
@@ -29109,8 +29149,38 @@ init_vaultClient();
|
|
|
29109
29149
|
init_useSendTransaction();
|
|
29110
29150
|
|
|
29111
29151
|
// src/hooks/useUserOpStatus.ts
|
|
29112
|
-
init_bundler();
|
|
29113
29152
|
import * as React15 from "react";
|
|
29153
|
+
|
|
29154
|
+
// src/clients/bundler/waitForUserOperationReceipt.ts
|
|
29155
|
+
init_SessionContext();
|
|
29156
|
+
var UserOperationTimeoutError = class extends Error {
|
|
29157
|
+
constructor(userOpHash, chainId, timeoutMs) {
|
|
29158
|
+
super(`Timeout waiting for UserOperation receipt after ${timeoutMs}ms (hash: ${userOpHash}, chainId: ${chainId})`);
|
|
29159
|
+
this.name = "UserOperationTimeoutError";
|
|
29160
|
+
this.userOpHash = userOpHash;
|
|
29161
|
+
this.chainId = chainId;
|
|
29162
|
+
this.timeoutMs = timeoutMs;
|
|
29163
|
+
}
|
|
29164
|
+
};
|
|
29165
|
+
async function waitForUserOperationReceipt(userOpHash, options) {
|
|
29166
|
+
const pollIntervalMs = options?.pollIntervalMs ?? 1e3;
|
|
29167
|
+
const maxPollTimeMs = options?.maxPollTimeMs ?? 6e4;
|
|
29168
|
+
const targetChainId = options?.chainId ?? requireActiveChainId();
|
|
29169
|
+
const startTime = Date.now();
|
|
29170
|
+
while (true) {
|
|
29171
|
+
const elapsed = Date.now() - startTime;
|
|
29172
|
+
if (elapsed >= maxPollTimeMs) {
|
|
29173
|
+
throw new UserOperationTimeoutError(userOpHash, targetChainId, maxPollTimeMs);
|
|
29174
|
+
}
|
|
29175
|
+
const receipt = await getUserOperationReceipt(userOpHash, targetChainId);
|
|
29176
|
+
if (receipt) {
|
|
29177
|
+
return receipt;
|
|
29178
|
+
}
|
|
29179
|
+
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
29180
|
+
}
|
|
29181
|
+
}
|
|
29182
|
+
|
|
29183
|
+
// src/hooks/useUserOpStatus.ts
|
|
29114
29184
|
function useUserOpStatus(options = {}) {
|
|
29115
29185
|
const {
|
|
29116
29186
|
userOpHash,
|
|
@@ -29335,7 +29405,7 @@ function useDirectWallet() {
|
|
|
29335
29405
|
|
|
29336
29406
|
// src/hooks/useSendDirectTransaction.ts
|
|
29337
29407
|
init_useExternalWalletStore();
|
|
29338
|
-
import { useCallback as useCallback36, useState as
|
|
29408
|
+
import { useCallback as useCallback36, useState as useState39 } from "react";
|
|
29339
29409
|
import { isAddress as isAddress3, parseEther as parseEther3 } from "viem";
|
|
29340
29410
|
import { useSendTransaction as useWagmiSendTransaction, useSwitchChain as useSwitchChain3 } from "wagmi";
|
|
29341
29411
|
function useSendDirectTransaction() {
|
|
@@ -29343,9 +29413,9 @@ function useSendDirectTransaction() {
|
|
|
29343
29413
|
const externalChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
29344
29414
|
const { sendTransactionAsync } = useWagmiSendTransaction();
|
|
29345
29415
|
const { switchChainAsync } = useSwitchChain3();
|
|
29346
|
-
const [isPending, setIsPending] =
|
|
29347
|
-
const [error, setError] =
|
|
29348
|
-
const [txHash, setTxHash] =
|
|
29416
|
+
const [isPending, setIsPending] = useState39(false);
|
|
29417
|
+
const [error, setError] = useState39(null);
|
|
29418
|
+
const [txHash, setTxHash] = useState39(null);
|
|
29349
29419
|
const sendTransaction = useCallback36(
|
|
29350
29420
|
async (params) => {
|
|
29351
29421
|
if (!isConnected) {
|
|
@@ -29392,7 +29462,7 @@ function useSendDirectTransaction() {
|
|
|
29392
29462
|
init_SessionContext();
|
|
29393
29463
|
init_account2();
|
|
29394
29464
|
init_linkedProfiles();
|
|
29395
|
-
import { useCallback as useCallback37, useMemo as
|
|
29465
|
+
import { useCallback as useCallback37, useMemo as useMemo13, useState as useState40 } from "react";
|
|
29396
29466
|
import { encodeFunctionData as encodeFunctionData3, isAddress as isAddress4, parseEther as parseEther4, parseUnits as parseUnits3 } from "viem";
|
|
29397
29467
|
var ERC20_TRANSFER_ABI2 = [
|
|
29398
29468
|
{
|
|
@@ -29408,10 +29478,10 @@ var ERC20_TRANSFER_ABI2 = [
|
|
|
29408
29478
|
function useTransferToLinkedWallet() {
|
|
29409
29479
|
const session = useSession((st) => st.session);
|
|
29410
29480
|
const { profiles } = useLinkedProfiles();
|
|
29411
|
-
const [isPending, setIsPending] =
|
|
29412
|
-
const [error, setError] =
|
|
29413
|
-
const [userOpHash, setUserOpHash] =
|
|
29414
|
-
const linkedWallets =
|
|
29481
|
+
const [isPending, setIsPending] = useState40(false);
|
|
29482
|
+
const [error, setError] = useState40(null);
|
|
29483
|
+
const [userOpHash, setUserOpHash] = useState40(null);
|
|
29484
|
+
const linkedWallets = useMemo13(
|
|
29415
29485
|
() => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
|
|
29416
29486
|
[profiles]
|
|
29417
29487
|
);
|
|
@@ -29530,7 +29600,6 @@ function useLogout() {
|
|
|
29530
29600
|
// src/index.ts
|
|
29531
29601
|
init_useNicknameResolve();
|
|
29532
29602
|
init_account2();
|
|
29533
|
-
init_clients2();
|
|
29534
29603
|
init_auth();
|
|
29535
29604
|
init_profile();
|
|
29536
29605
|
init_hooks2();
|