@embarkai/ui-kit 0.4.119 → 0.4.121
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 +1 -1
- package/dist/index.cjs +615 -461
- package/dist/index.d.cts +57 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.js +432 -279
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -5415,6 +5415,7 @@ var init_useLayoutDataStore = __esm({
|
|
|
5415
5415
|
init_constants();
|
|
5416
5416
|
PageKey = /* @__PURE__ */ ((PageKey3) => {
|
|
5417
5417
|
PageKey3["AUTH"] = "auth";
|
|
5418
|
+
PageKey3["USER_ACTIVITY"] = "user-activity";
|
|
5418
5419
|
PageKey3["LANGUAGES"] = "languages";
|
|
5419
5420
|
PageKey3["MAIN_MENU"] = "main-menu";
|
|
5420
5421
|
PageKey3["ACTIVITY_LOG"] = "activity-log";
|
|
@@ -7499,6 +7500,7 @@ var init_en = __esm({
|
|
|
7499
7500
|
select: "Select",
|
|
7500
7501
|
selectAll: "Select All",
|
|
7501
7502
|
selectNone: "Select None",
|
|
7503
|
+
comingSoon: "Coming Soon",
|
|
7502
7504
|
errors: {
|
|
7503
7505
|
oops: "Oops, something went wrong. Please try again."
|
|
7504
7506
|
},
|
|
@@ -7599,6 +7601,15 @@ var init_en = __esm({
|
|
|
7599
7601
|
activityLogMenu: {
|
|
7600
7602
|
title: "My Activity"
|
|
7601
7603
|
},
|
|
7604
|
+
userActivityMenu: {
|
|
7605
|
+
title: "Activity",
|
|
7606
|
+
description: "Your recent activity",
|
|
7607
|
+
noActivities: "No recent activity",
|
|
7608
|
+
onboarding: {
|
|
7609
|
+
title: "Your recent activity",
|
|
7610
|
+
description: "Activity log of your recent actions like login, profile connection/disconnection, backup operations etc."
|
|
7611
|
+
}
|
|
7612
|
+
},
|
|
7602
7613
|
connectMenu: {
|
|
7603
7614
|
connectWallet: "Connect Wallet Profile",
|
|
7604
7615
|
noWallets: "No wallets available to connect",
|
|
@@ -7861,7 +7872,7 @@ var init_en = __esm({
|
|
|
7861
7872
|
}
|
|
7862
7873
|
},
|
|
7863
7874
|
profilesMenu: {
|
|
7864
|
-
title: "Profiles",
|
|
7875
|
+
title: "Connected Profiles",
|
|
7865
7876
|
email: {
|
|
7866
7877
|
placeholder: "Provide Email to connect",
|
|
7867
7878
|
sentTo: "We sent a verification code to",
|
|
@@ -8112,6 +8123,7 @@ var init_ru = __esm({
|
|
|
8112
8123
|
select: "\u0412\u044B\u0431\u0440\u0430\u0442\u044C",
|
|
8113
8124
|
selectAll: "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435",
|
|
8114
8125
|
selectNone: "\u0421\u043D\u044F\u0442\u044C \u0432\u044B\u0431\u043E\u0440",
|
|
8126
|
+
comingSoon: "\u0421\u043A\u043E\u0440\u043E",
|
|
8115
8127
|
errors: {
|
|
8116
8128
|
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."
|
|
8117
8129
|
},
|
|
@@ -8177,13 +8189,19 @@ var init_ru = __esm({
|
|
|
8177
8189
|
},
|
|
8178
8190
|
main: {
|
|
8179
8191
|
send: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C",
|
|
8192
|
+
bridge: "\u041C\u043E\u0441\u0442",
|
|
8180
8193
|
receive: "\u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C",
|
|
8181
8194
|
buy: "\u041A\u0443\u043F\u0438\u0442\u044C",
|
|
8182
8195
|
assets: "\u041F\u043E\u0440\u0442\u0444\u043E\u043B\u0438\u043E",
|
|
8196
|
+
activity: "\u041E\u043D\u0447\u0435\u0439\u043D-\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C",
|
|
8183
8197
|
onboarding: {
|
|
8184
8198
|
sendButton: {
|
|
8185
8199
|
title: "\u041C\u0435\u043D\u044E \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438",
|
|
8186
|
-
description: "\u041E\u0442\u043F\u0440\u0430\u0432\u044C\u0442\u0435 \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E \u043D\u0430 \u0430\u0434\u0440\u0435\u0441 \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430 \u0432 \u0442\u043E\u0439 \u0436\u0435 \u0441\u0435\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 \u043C\u0435\u043D\u044E \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438
|
|
8200
|
+
description: "\u041E\u0442\u043F\u0440\u0430\u0432\u044C\u0442\u0435 \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E \u043D\u0430 \u0430\u0434\u0440\u0435\u0441 \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430 \u0432 \u0442\u043E\u0439 \u0436\u0435 \u0441\u0435\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 \u043C\u0435\u043D\u044E \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0438."
|
|
8201
|
+
},
|
|
8202
|
+
bridgeButton: {
|
|
8203
|
+
title: "\u041C\u0435\u043D\u044E \u043C\u043E\u0441\u0442\u0430",
|
|
8204
|
+
description: "\u041F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0435 \u0430\u043A\u0442\u0438\u0432\u044B \u043C\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043D\u044B\u043C\u0438 \u0441\u0435\u0442\u044F\u043C\u0438 \u0438 \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430\u043C\u0438 \u0447\u0435\u0440\u0435\u0437 \u043C\u0435\u043D\u044E \u043C\u043E\u0441\u0442\u0430."
|
|
8187
8205
|
},
|
|
8188
8206
|
receiveButton: {
|
|
8189
8207
|
title: "\u041C\u0435\u043D\u044E \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F",
|
|
@@ -8193,12 +8211,28 @@ var init_ru = __esm({
|
|
|
8193
8211
|
title: "\u041C\u0435\u043D\u044E \u043F\u043E\u043A\u0443\u043F\u043A\u0438",
|
|
8194
8212
|
description: "\u041F\u043E\u043A\u0443\u043F\u0430\u0439\u0442\u0435 \u043A\u0440\u0438\u043F\u0442\u043E\u0432\u0430\u043B\u044E\u0442\u0443 \u0437\u0430 \u0444\u0438\u0430\u0442 \u0432 \u043A\u043E\u0448\u0435\u043B\u0451\u043A embarkAI \u0447\u0435\u0440\u0435\u0437 \u043C\u0435\u043D\u044E \u043F\u043E\u043A\u0443\u043F\u043A\u0438."
|
|
8195
8213
|
},
|
|
8214
|
+
portfolioSection: {
|
|
8215
|
+
title: "\u0420\u0430\u0437\u0434\u0435\u043B \u043F\u043E\u0440\u0442\u0444\u043E\u043B\u0438\u043E",
|
|
8216
|
+
description: "\u0418\u0437\u0443\u0447\u0438\u0442\u0435 \u0430\u043A\u0442\u0438\u0432\u044B \u0432\u0430\u0448\u0435\u0433\u043E \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430 embarkAI."
|
|
8217
|
+
},
|
|
8196
8218
|
portfolioButton: {
|
|
8197
8219
|
title: "\u041C\u0435\u043D\u044E \u043F\u043E\u0440\u0442\u0444\u043E\u043B\u0438\u043E",
|
|
8198
8220
|
description: "\u0418\u0437\u0443\u0447\u0438\u0442\u0435 \u043A\u0440\u0438\u043F\u0442\u043E\u0430\u043A\u0442\u0438\u0432\u044B \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430 embarkAI \u0447\u0435\u0440\u0435\u0437 \u043C\u0435\u043D\u044E \u043F\u043E\u0440\u0442\u0444\u043E\u043B\u0438\u043E."
|
|
8199
8221
|
}
|
|
8200
8222
|
}
|
|
8201
8223
|
},
|
|
8224
|
+
activityLogMenu: {
|
|
8225
|
+
title: "\u041C\u043E\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C"
|
|
8226
|
+
},
|
|
8227
|
+
userActivityMenu: {
|
|
8228
|
+
title: "\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C",
|
|
8229
|
+
description: "\u0412\u0430\u0448\u0430 \u043D\u0435\u0434\u0430\u0432\u043D\u044F\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C",
|
|
8230
|
+
noActivities: "\u041D\u0435\u0442 \u043D\u0435\u0434\u0430\u0432\u043D\u0435\u0439 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0438",
|
|
8231
|
+
onboarding: {
|
|
8232
|
+
title: "\u041C\u0435\u043D\u044E \u043D\u0435\u0434\u0430\u0432\u043D\u0435\u0439 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0438",
|
|
8233
|
+
description: "\u0416\u0443\u0440\u043D\u0430\u043B \u0432\u0430\u0448\u0438\u0445 \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439: \u0432\u0445\u043E\u0434, \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435/\u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0444\u0438\u043B\u044F, \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043D\u043E\u0433\u043E \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0438 \u0442. \u0434."
|
|
8234
|
+
}
|
|
8235
|
+
},
|
|
8202
8236
|
connectMenu: {
|
|
8203
8237
|
connectWallet: "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0440\u043E\u0444\u0438\u043B\u044C \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430",
|
|
8204
8238
|
noWallets: "\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u043E\u0432 \u0434\u043B\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F",
|
|
@@ -8461,7 +8495,7 @@ var init_ru = __esm({
|
|
|
8461
8495
|
}
|
|
8462
8496
|
},
|
|
8463
8497
|
profilesMenu: {
|
|
8464
|
-
title: "\u041F\u0440\u043E\u0444\u0438\u043B\u0438",
|
|
8498
|
+
title: "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u044B\u0435 \u043F\u0440\u043E\u0444\u0438\u043B\u0438",
|
|
8465
8499
|
email: {
|
|
8466
8500
|
placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448 email",
|
|
8467
8501
|
sentTo: "\u041C\u044B \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u043B\u0438 \u043A\u043E\u0434 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u043D\u0430",
|
|
@@ -8712,6 +8746,7 @@ var init_zh = __esm({
|
|
|
8712
8746
|
select: "\u9009\u62E9",
|
|
8713
8747
|
selectAll: "\u5168\u9009",
|
|
8714
8748
|
selectNone: "\u5168\u4E0D\u9009",
|
|
8749
|
+
comingSoon: "\u5373\u5C06\u63A8\u51FA",
|
|
8715
8750
|
errors: {
|
|
8716
8751
|
oops: "\u54CE\u5440\uFF0C\u51FA\u4E86\u70B9\u95EE\u9898\u3002\u8BF7\u518D\u8BD5\u4E00\u6B21\u3002"
|
|
8717
8752
|
},
|
|
@@ -8777,13 +8812,19 @@ var init_zh = __esm({
|
|
|
8777
8812
|
},
|
|
8778
8813
|
main: {
|
|
8779
8814
|
send: "\u53D1\u9001",
|
|
8815
|
+
bridge: "\u8DE8\u94FE",
|
|
8780
8816
|
receive: "\u63A5\u6536",
|
|
8781
8817
|
buy: "\u8D2D\u4E70",
|
|
8782
8818
|
assets: "\u6295\u8D44\u7EC4\u5408",
|
|
8819
|
+
activity: "\u94FE\u4E0A\u6D3B\u52A8",
|
|
8783
8820
|
onboarding: {
|
|
8784
8821
|
sendButton: {
|
|
8785
8822
|
title: "\u53D1\u9001\u83DC\u5355",
|
|
8786
|
-
description: "\u901A\u8FC7\u53D1\u9001\u83DC\u5355\u76F4\u63A5\u53D1\u9001\u5230\u540C\u4E00\u94FE\u4E0A\u7684\u94B1\u5305\u5730\u5740\
|
|
8823
|
+
description: "\u901A\u8FC7\u53D1\u9001\u83DC\u5355\u76F4\u63A5\u53D1\u9001\u5230\u540C\u4E00\u94FE\u4E0A\u7684\u94B1\u5305\u5730\u5740\u3002"
|
|
8824
|
+
},
|
|
8825
|
+
bridgeButton: {
|
|
8826
|
+
title: "\u8DE8\u94FE\u83DC\u5355",
|
|
8827
|
+
description: "\u901A\u8FC7\u8DE8\u94FE\u83DC\u5355\u5728\u4E0D\u540C\u94FE\u548C\u94B1\u5305\u4E4B\u95F4\u6865\u63A5\u8D44\u4EA7\u3002"
|
|
8787
8828
|
},
|
|
8788
8829
|
receiveButton: {
|
|
8789
8830
|
title: "\u63A5\u6536\u83DC\u5355",
|
|
@@ -8793,12 +8834,28 @@ var init_zh = __esm({
|
|
|
8793
8834
|
title: "\u8D2D\u4E70\u83DC\u5355",
|
|
8794
8835
|
description: "\u901A\u8FC7\u8D2D\u4E70\u83DC\u5355\u5C06\u6CD5\u5E01\u8D2D\u4E70\u7684\u52A0\u5BC6\u8D27\u5E01\u5B58\u5165 embarkAI \u94B1\u5305\u3002"
|
|
8795
8836
|
},
|
|
8837
|
+
portfolioSection: {
|
|
8838
|
+
title: "\u6295\u8D44\u7EC4\u5408\u677F\u5757",
|
|
8839
|
+
description: "\u63A2\u7D22\u60A8\u7684 embarkAI \u94B1\u5305\u8D44\u4EA7\u3002"
|
|
8840
|
+
},
|
|
8796
8841
|
portfolioButton: {
|
|
8797
8842
|
title: "\u6295\u8D44\u7EC4\u5408\u83DC\u5355",
|
|
8798
8843
|
description: "\u901A\u8FC7\u6295\u8D44\u7EC4\u5408\u83DC\u5355\u63A2\u7D22 embarkAI \u94B1\u5305\u7684\u52A0\u5BC6\u8D44\u4EA7\u3002"
|
|
8799
8844
|
}
|
|
8800
8845
|
}
|
|
8801
8846
|
},
|
|
8847
|
+
activityLogMenu: {
|
|
8848
|
+
title: "\u6211\u7684\u6D3B\u52A8"
|
|
8849
|
+
},
|
|
8850
|
+
userActivityMenu: {
|
|
8851
|
+
title: "\u6D3B\u52A8",
|
|
8852
|
+
description: "\u60A8\u6700\u8FD1\u7684\u6D3B\u52A8",
|
|
8853
|
+
noActivities: "\u6682\u65E0\u6700\u8FD1\u6D3B\u52A8",
|
|
8854
|
+
onboarding: {
|
|
8855
|
+
title: "\u6700\u8FD1\u6D3B\u52A8\u83DC\u5355",
|
|
8856
|
+
description: "\u60A8\u6700\u8FD1\u64CD\u4F5C\u7684\u6D3B\u52A8\u65E5\u5FD7\uFF0C\u5982\u767B\u5F55\u3001\u4E2A\u4EBA\u8D44\u6599\u8FDE\u63A5/\u65AD\u5F00\u3001\u5907\u4EFD\u64CD\u4F5C\u7B49\u3002"
|
|
8857
|
+
}
|
|
8858
|
+
},
|
|
8802
8859
|
connectMenu: {
|
|
8803
8860
|
connectWallet: "\u8FDE\u63A5\u94B1\u5305\u914D\u7F6E\u6587\u4EF6",
|
|
8804
8861
|
noWallets: "\u6CA1\u6709\u53EF\u8FDE\u63A5\u7684\u94B1\u5305",
|
|
@@ -9061,7 +9118,7 @@ var init_zh = __esm({
|
|
|
9061
9118
|
}
|
|
9062
9119
|
},
|
|
9063
9120
|
profilesMenu: {
|
|
9064
|
-
title: "\u4E2A\u4EBA\u8D44\u6599",
|
|
9121
|
+
title: "\u5DF2\u8FDE\u63A5\u7684\u4E2A\u4EBA\u8D44\u6599",
|
|
9065
9122
|
email: {
|
|
9066
9123
|
placeholder: "\u63D0\u4F9B\u90AE\u7BB1\u4EE5\u8FDE\u63A5",
|
|
9067
9124
|
sentTo: "\u6211\u4EEC\u5DF2\u5411\u60A8\u7684\u90AE\u7BB1\u53D1\u9001\u9A8C\u8BC1\u7801",
|
|
@@ -21587,7 +21644,7 @@ var init_SumsubIframe = __esm({
|
|
|
21587
21644
|
src: iframeUrl,
|
|
21588
21645
|
title: "Sumsub KYC Verification",
|
|
21589
21646
|
className: "noScrollbars w-full border-0 rounded-[10px]",
|
|
21590
|
-
sandbox: "allow-scripts allow-same-origin allow-forms allow-popups",
|
|
21647
|
+
sandbox: "allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox",
|
|
21591
21648
|
allow: "camera; microphone; geolocation; clipboard-write",
|
|
21592
21649
|
style: { height: isLoading || error ? 0 : height }
|
|
21593
21650
|
},
|
|
@@ -21600,23 +21657,42 @@ var init_SumsubIframe = __esm({
|
|
|
21600
21657
|
|
|
21601
21658
|
// src/internal/components/KYC/KycMenu.tsx
|
|
21602
21659
|
function KycMenu() {
|
|
21603
|
-
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
21604
21660
|
const { t } = useT();
|
|
21661
|
+
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
21662
|
+
(0, import_react65.useEffect)(() => {
|
|
21663
|
+
if (isMobileView) return;
|
|
21664
|
+
const embarkaiContentElement = document.querySelector(".embarkai-ui-scope-content");
|
|
21665
|
+
embarkaiContentElement?.style.setProperty("--ui-kit-content-maw", "clamp(0px, 100dvw, 768px)");
|
|
21666
|
+
return () => {
|
|
21667
|
+
embarkaiContentElement?.style.removeProperty("--ui-kit-content-maw");
|
|
21668
|
+
};
|
|
21669
|
+
}, [isMobileView]);
|
|
21605
21670
|
return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
21606
21671
|
/* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
21607
|
-
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
21672
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
21673
|
+
Button,
|
|
21674
|
+
{
|
|
21675
|
+
variant: "ghost",
|
|
21676
|
+
size: "icon",
|
|
21677
|
+
title: t("passport:common.back"),
|
|
21678
|
+
onClick: () => useLayoutDataStore.getState().setPage("settings" /* SETTINGS */),
|
|
21679
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react49.ArrowLeft, { className: "h-4 w-4" })
|
|
21680
|
+
}
|
|
21681
|
+
),
|
|
21608
21682
|
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "text-xl font-semibold", children: t("passport:kycMenu.title") })
|
|
21609
21683
|
] }),
|
|
21610
21684
|
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(KycContent, {})
|
|
21611
21685
|
] });
|
|
21612
21686
|
}
|
|
21613
|
-
var import_lucide_react49, import_jsx_runtime90, KycContent;
|
|
21687
|
+
var import_lucide_react49, import_react65, import_jsx_runtime90, KycContent;
|
|
21614
21688
|
var init_KycMenu = __esm({
|
|
21615
21689
|
"src/internal/components/KYC/KycMenu.tsx"() {
|
|
21616
21690
|
init_ProviderContext();
|
|
21617
21691
|
init_i18n();
|
|
21618
21692
|
import_lucide_react49 = require("lucide-react");
|
|
21693
|
+
import_react65 = require("react");
|
|
21619
21694
|
init_useLayoutDataStore();
|
|
21695
|
+
init_useLayoutStore();
|
|
21620
21696
|
init_Expandable2();
|
|
21621
21697
|
init_button();
|
|
21622
21698
|
init_SumsubIframe();
|
|
@@ -21768,11 +21844,11 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
|
|
|
21768
21844
|
const activeChainConfig = useSession((st) => st.chainConfig);
|
|
21769
21845
|
const resolvedChainId = chainId ?? activeChainId;
|
|
21770
21846
|
const shouldUseActiveClient = !chainId || chainId === activeChainId;
|
|
21771
|
-
const chainConfig = (0,
|
|
21847
|
+
const chainConfig = (0, import_react66.useMemo)(() => {
|
|
21772
21848
|
if (shouldUseActiveClient) return activeChainConfig;
|
|
21773
21849
|
return (0, import_read16.getChainConfig)(chainId);
|
|
21774
21850
|
}, [activeChainConfig, chainId, shouldUseActiveClient]);
|
|
21775
|
-
const publicClient = (0,
|
|
21851
|
+
const publicClient = (0, import_react66.useMemo)(() => {
|
|
21776
21852
|
if (shouldUseActiveClient) return activePublicClient;
|
|
21777
21853
|
if (!chainId) return activePublicClient;
|
|
21778
21854
|
try {
|
|
@@ -21789,12 +21865,12 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
|
|
|
21789
21865
|
resolvedChainId
|
|
21790
21866
|
};
|
|
21791
21867
|
}
|
|
21792
|
-
var import_read16,
|
|
21868
|
+
var import_read16, import_react66, publicClientByChainId;
|
|
21793
21869
|
var init_useResolvedPublicClient = __esm({
|
|
21794
21870
|
"src/internal/hooks/useResolvedPublicClient.ts"() {
|
|
21795
21871
|
init_SessionContext();
|
|
21796
21872
|
import_read16 = require("@embarkai/core/read");
|
|
21797
|
-
|
|
21873
|
+
import_react66 = require("react");
|
|
21798
21874
|
publicClientByChainId = /* @__PURE__ */ new Map();
|
|
21799
21875
|
}
|
|
21800
21876
|
});
|
|
@@ -21858,7 +21934,7 @@ var init_useNativeBalance = __esm({
|
|
|
21858
21934
|
function useWatchTokens(options) {
|
|
21859
21935
|
const { address, chainId, enabled, publicClient } = options;
|
|
21860
21936
|
const { config } = useProviderConfig();
|
|
21861
|
-
const watchTokens = (0,
|
|
21937
|
+
const watchTokens = (0, import_react67.useMemo)(() => {
|
|
21862
21938
|
const allWatchTokens = config.current.watchTokens;
|
|
21863
21939
|
const tokensForChain = chainId ? allWatchTokens?.[chainId] || [] : [];
|
|
21864
21940
|
return tokensForChain;
|
|
@@ -21926,12 +22002,12 @@ function useWatchTokens(options) {
|
|
|
21926
22002
|
}
|
|
21927
22003
|
});
|
|
21928
22004
|
}
|
|
21929
|
-
var import_react_query36,
|
|
22005
|
+
var import_react_query36, import_react67, import_viem8;
|
|
21930
22006
|
var init_useWatchTokens = __esm({
|
|
21931
22007
|
"src/internal/hooks/useBlockscoutAssets/useWatchTokens.ts"() {
|
|
21932
22008
|
init_ProviderContext();
|
|
21933
22009
|
import_react_query36 = require("@tanstack/react-query");
|
|
21934
|
-
|
|
22010
|
+
import_react67 = require("react");
|
|
21935
22011
|
import_viem8 = require("viem");
|
|
21936
22012
|
init_constants6();
|
|
21937
22013
|
}
|
|
@@ -22080,11 +22156,11 @@ function useBlockscoutAssets(options) {
|
|
|
22080
22156
|
tokenBalancesQueryKey: customTokenBalancesQueryKey
|
|
22081
22157
|
} = useProviderConfig().config?.current?.portfolio || {};
|
|
22082
22158
|
const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
|
|
22083
|
-
const blockscoutClient = (0,
|
|
22159
|
+
const blockscoutClient = (0, import_react68.useMemo)(
|
|
22084
22160
|
() => blockscoutApiUrl ? (0, import_core4.createBlockscoutClient)({ baseUrl: blockscoutApiUrl }) : null,
|
|
22085
22161
|
[blockscoutApiUrl]
|
|
22086
22162
|
);
|
|
22087
|
-
const lastRefreshRef = (0,
|
|
22163
|
+
const lastRefreshRef = (0, import_react68.useRef)(0);
|
|
22088
22164
|
const {
|
|
22089
22165
|
data: watchTokenAssets = [],
|
|
22090
22166
|
isLoading: watchTokensLoading,
|
|
@@ -22156,7 +22232,7 @@ function useBlockscoutAssets(options) {
|
|
|
22156
22232
|
queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", resolvedChainId, blockscoutApiUrl, address],
|
|
22157
22233
|
queryFn: () => blockscoutClient.getNfts(address)
|
|
22158
22234
|
});
|
|
22159
|
-
const erc20TokenAddresses = (0,
|
|
22235
|
+
const erc20TokenAddresses = (0, import_react68.useMemo)(() => {
|
|
22160
22236
|
if (!blockscoutItems) return [];
|
|
22161
22237
|
return blockscoutItems.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
|
|
22162
22238
|
}, [blockscoutItems]);
|
|
@@ -22201,7 +22277,7 @@ function useBlockscoutAssets(options) {
|
|
|
22201
22277
|
// 1 minute
|
|
22202
22278
|
// gcTime: BLOCKSCOUT_QUERY_GC_TIME,
|
|
22203
22279
|
});
|
|
22204
|
-
const assets = (0,
|
|
22280
|
+
const assets = (0, import_react68.useMemo)(() => {
|
|
22205
22281
|
const result = [];
|
|
22206
22282
|
const addedAddresses = /* @__PURE__ */ new Set();
|
|
22207
22283
|
if (nativeBalanceData) {
|
|
@@ -22295,7 +22371,7 @@ function useBlockscoutAssets(options) {
|
|
|
22295
22371
|
watchTokenAssets,
|
|
22296
22372
|
chainConfig
|
|
22297
22373
|
]);
|
|
22298
|
-
const nativeBalance = (0,
|
|
22374
|
+
const nativeBalance = (0, import_react68.useMemo)(() => {
|
|
22299
22375
|
if (!nativeBalanceData) return null;
|
|
22300
22376
|
return {
|
|
22301
22377
|
value: nativeBalanceData.value,
|
|
@@ -22303,11 +22379,11 @@ function useBlockscoutAssets(options) {
|
|
|
22303
22379
|
symbol: nativeBalanceData.symbol
|
|
22304
22380
|
};
|
|
22305
22381
|
}, [nativeBalanceData]);
|
|
22306
|
-
const error = (0,
|
|
22382
|
+
const error = (0, import_react68.useMemo)(() => {
|
|
22307
22383
|
if (!blockscoutError) return null;
|
|
22308
22384
|
return createError(blockscoutError);
|
|
22309
22385
|
}, [blockscoutError]);
|
|
22310
|
-
const refreshBalances = (0,
|
|
22386
|
+
const refreshBalances = (0, import_react68.useCallback)(async () => {
|
|
22311
22387
|
const now = Date.now();
|
|
22312
22388
|
if (now - lastRefreshRef.current < BLOCKSCOUT_REFRESH_DEBOUNCE) {
|
|
22313
22389
|
return;
|
|
@@ -22323,7 +22399,7 @@ function useBlockscoutAssets(options) {
|
|
|
22323
22399
|
qc.invalidateQueries({ queryKey: [WATCH_TOKENS_QUERY_KEY] })
|
|
22324
22400
|
]);
|
|
22325
22401
|
}, [qc, customTokenBalancesQueryKey]);
|
|
22326
|
-
const getTokenBalance = (0,
|
|
22402
|
+
const getTokenBalance = (0, import_react68.useCallback)(
|
|
22327
22403
|
(tokenAddress) => {
|
|
22328
22404
|
return assets.find((a) => a.address?.toLowerCase() === tokenAddress.toLowerCase()) || null;
|
|
22329
22405
|
},
|
|
@@ -22342,13 +22418,13 @@ function useBlockscoutAssets(options) {
|
|
|
22342
22418
|
lastUpdated: dataUpdatedAt || null
|
|
22343
22419
|
};
|
|
22344
22420
|
}
|
|
22345
|
-
var import_core4, import_react_query37,
|
|
22421
|
+
var import_core4, import_react_query37, import_react68;
|
|
22346
22422
|
var init_useBlockscoutAssets = __esm({
|
|
22347
22423
|
"src/internal/hooks/useBlockscoutAssets/useBlockscoutAssets.ts"() {
|
|
22348
22424
|
init_ProviderContext();
|
|
22349
22425
|
import_core4 = require("@embarkai/core");
|
|
22350
22426
|
import_react_query37 = require("@tanstack/react-query");
|
|
22351
|
-
|
|
22427
|
+
import_react68 = require("react");
|
|
22352
22428
|
init_initial();
|
|
22353
22429
|
init_constants();
|
|
22354
22430
|
init_useResolvedPublicClient();
|
|
@@ -22468,9 +22544,9 @@ function SecurityTokenBadge() {
|
|
|
22468
22544
|
}
|
|
22469
22545
|
function PortfolioItemImage(props) {
|
|
22470
22546
|
const { asset } = props;
|
|
22471
|
-
const [logoError, setLogoError] = (0,
|
|
22472
|
-
const [nftImageError, setNftImageError] = (0,
|
|
22473
|
-
const resolvedImage = (0,
|
|
22547
|
+
const [logoError, setLogoError] = (0, import_react69.useState)(false);
|
|
22548
|
+
const [nftImageError, setNftImageError] = (0, import_react69.useState)(false);
|
|
22549
|
+
const resolvedImage = (0, import_react69.useMemo)(() => {
|
|
22474
22550
|
const isNft = isNftAsset(asset);
|
|
22475
22551
|
const nftImage = getNftImage(asset);
|
|
22476
22552
|
const isSecurity = isSecurityToken(asset);
|
|
@@ -22625,13 +22701,13 @@ function PortfolioItem(props) {
|
|
|
22625
22701
|
}
|
|
22626
22702
|
);
|
|
22627
22703
|
}
|
|
22628
|
-
var import_react_query38, import_lucide_react51,
|
|
22704
|
+
var import_react_query38, import_lucide_react51, import_react69, import_viem11, import_jsx_runtime94, PORTFOLIO_ASSET_RATE_QUERY_KEY;
|
|
22629
22705
|
var init_PortfolioItem = __esm({
|
|
22630
22706
|
"src/internal/components/PortfolioMenu/PortfolioItem.tsx"() {
|
|
22631
22707
|
init_ProviderContext();
|
|
22632
22708
|
import_react_query38 = require("@tanstack/react-query");
|
|
22633
22709
|
import_lucide_react51 = require("lucide-react");
|
|
22634
|
-
|
|
22710
|
+
import_react69 = require("react");
|
|
22635
22711
|
import_viem11 = require("viem");
|
|
22636
22712
|
init_tokens();
|
|
22637
22713
|
init_base3();
|
|
@@ -22663,7 +22739,7 @@ function PortfolioMenu() {
|
|
|
22663
22739
|
enabled: !!address
|
|
22664
22740
|
});
|
|
22665
22741
|
const shownProjectAssets = projectAssets.filter((asset) => !asset.hideInPortfolio);
|
|
22666
|
-
const refreshAllAssetsBalances = (0,
|
|
22742
|
+
const refreshAllAssetsBalances = (0, import_react70.useCallback)(() => {
|
|
22667
22743
|
Promise.all(shownProjectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
22668
22744
|
refreshBlockscoutBalances();
|
|
22669
22745
|
}, [qc, shownProjectAssets, refreshBlockscoutBalances]);
|
|
@@ -22709,7 +22785,7 @@ function PortfolioMenu() {
|
|
|
22709
22785
|
blockscoutError && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Highlight, { type: "error", children: blockscoutError?.message })
|
|
22710
22786
|
] });
|
|
22711
22787
|
}
|
|
22712
|
-
var import_react_query39, import_lucide_react52,
|
|
22788
|
+
var import_react_query39, import_lucide_react52, import_react70, import_jsx_runtime95;
|
|
22713
22789
|
var init_PortfolioMenu = __esm({
|
|
22714
22790
|
"src/internal/components/PortfolioMenu/PortfolioMenu.tsx"() {
|
|
22715
22791
|
init_ProviderContext();
|
|
@@ -22717,7 +22793,7 @@ var init_PortfolioMenu = __esm({
|
|
|
22717
22793
|
init_i18n();
|
|
22718
22794
|
import_react_query39 = require("@tanstack/react-query");
|
|
22719
22795
|
import_lucide_react52 = require("lucide-react");
|
|
22720
|
-
|
|
22796
|
+
import_react70 = require("react");
|
|
22721
22797
|
init_useBlockscoutAssets2();
|
|
22722
22798
|
init_useLayoutDataStore();
|
|
22723
22799
|
init_Expandable2();
|
|
@@ -23028,7 +23104,7 @@ var init_useNicknameStore = __esm({
|
|
|
23028
23104
|
function useNicknameAvailability(currentNickname) {
|
|
23029
23105
|
const { t } = useT();
|
|
23030
23106
|
const nicknameValue = useNicknameStore((st) => st.nicknameValue);
|
|
23031
|
-
(0,
|
|
23107
|
+
(0, import_react71.useEffect)(() => {
|
|
23032
23108
|
if (!currentNickname) return;
|
|
23033
23109
|
useNicknameStore.getState().setNicknameValue(currentNickname);
|
|
23034
23110
|
}, [currentNickname]);
|
|
@@ -23049,8 +23125,8 @@ function useNicknameAvailability(currentNickname) {
|
|
|
23049
23125
|
useNicknameStore.getState().setError(error?.message || "Failed to check nickname availability");
|
|
23050
23126
|
}
|
|
23051
23127
|
});
|
|
23052
|
-
const debouncedCheckAvailability = (0,
|
|
23053
|
-
(0,
|
|
23128
|
+
const debouncedCheckAvailability = (0, import_react71.useCallback)((0, import_lodash_es14.debounce)(checkAvailability, DEBOUNCE_MS), [checkAvailability]);
|
|
23129
|
+
(0, import_react71.useEffect)(() => {
|
|
23054
23130
|
if (!currentNickname) return;
|
|
23055
23131
|
const normalizedInputValue = normalizeNickname(nicknameValue);
|
|
23056
23132
|
const { valid: isNicknameValid } = validateNickname(nicknameValue);
|
|
@@ -23064,13 +23140,13 @@ function useNicknameAvailability(currentNickname) {
|
|
|
23064
23140
|
}, [nicknameValue, currentNickname, debouncedCheckAvailability]);
|
|
23065
23141
|
return { isCheckingAvailability };
|
|
23066
23142
|
}
|
|
23067
|
-
var import_react_query40, import_lodash_es14,
|
|
23143
|
+
var import_react_query40, import_lodash_es14, import_react71, DEBOUNCE_MS;
|
|
23068
23144
|
var init_useNicknameAvailability = __esm({
|
|
23069
23145
|
"src/internal/components/NicknameMenu/useNicknameAvailability.ts"() {
|
|
23070
23146
|
init_i18n();
|
|
23071
23147
|
import_react_query40 = require("@tanstack/react-query");
|
|
23072
23148
|
import_lodash_es14 = require("lodash-es");
|
|
23073
|
-
|
|
23149
|
+
import_react71 = require("react");
|
|
23074
23150
|
init_nickname();
|
|
23075
23151
|
init_nickname_errors();
|
|
23076
23152
|
init_nickname_validation();
|
|
@@ -23091,9 +23167,9 @@ function NicknameEditForm(props) {
|
|
|
23091
23167
|
const nicknameValue = useNicknameStore((st) => st.nicknameValue);
|
|
23092
23168
|
const nicknameAvailability = useNicknameStore((st) => st.availability);
|
|
23093
23169
|
const { isCheckingAvailability } = useNicknameAvailability(nicknameInfo ? nicknameInfo.handle : "");
|
|
23094
|
-
const [isNicknameCopied, setIsNicknameCopied] = (0,
|
|
23095
|
-
const exitTimerRef = (0,
|
|
23096
|
-
(0,
|
|
23170
|
+
const [isNicknameCopied, setIsNicknameCopied] = (0, import_react72.useState)(false);
|
|
23171
|
+
const exitTimerRef = (0, import_react72.useRef)(null);
|
|
23172
|
+
(0, import_react72.useEffect)(() => () => {
|
|
23097
23173
|
if (exitTimerRef.current) clearTimeout(exitTimerRef.current);
|
|
23098
23174
|
}, []);
|
|
23099
23175
|
const { mutate: changeNickname2, isPending: isNicknameChanging } = (0, import_react_query41.useMutation)({
|
|
@@ -23127,7 +23203,7 @@ function NicknameEditForm(props) {
|
|
|
23127
23203
|
);
|
|
23128
23204
|
}
|
|
23129
23205
|
});
|
|
23130
|
-
const handleNicknameInputChange = (0,
|
|
23206
|
+
const handleNicknameInputChange = (0, import_react72.useCallback)(
|
|
23131
23207
|
(e) => {
|
|
23132
23208
|
const { error, setError, setNicknameValue } = useNicknameStore.getState();
|
|
23133
23209
|
const nextInputValue = e.target.value;
|
|
@@ -23141,7 +23217,7 @@ function NicknameEditForm(props) {
|
|
|
23141
23217
|
},
|
|
23142
23218
|
[t]
|
|
23143
23219
|
);
|
|
23144
|
-
const handleSubmit = (0,
|
|
23220
|
+
const handleSubmit = (0, import_react72.useCallback)(
|
|
23145
23221
|
(e) => {
|
|
23146
23222
|
const { nicknameValue: nicknameValue2, setError } = useNicknameStore.getState();
|
|
23147
23223
|
if (!canChange) {
|
|
@@ -23233,7 +23309,7 @@ function NicknameEditForm(props) {
|
|
|
23233
23309
|
!!canChange && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { className: "w-full flex items-center leadding-4 text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:nicknameMenu.hint") })
|
|
23234
23310
|
] });
|
|
23235
23311
|
}
|
|
23236
|
-
var import_react_query41, import_lucide_react55,
|
|
23312
|
+
var import_react_query41, import_lucide_react55, import_react72, import_jsx_runtime98;
|
|
23237
23313
|
var init_NicknameEditForm = __esm({
|
|
23238
23314
|
"src/internal/components/NicknameMenu/NicknameEditForm.tsx"() {
|
|
23239
23315
|
init_ProviderContext();
|
|
@@ -23241,7 +23317,7 @@ var init_NicknameEditForm = __esm({
|
|
|
23241
23317
|
init_i18n();
|
|
23242
23318
|
import_react_query41 = require("@tanstack/react-query");
|
|
23243
23319
|
import_lucide_react55 = require("lucide-react");
|
|
23244
|
-
|
|
23320
|
+
import_react72 = require("react");
|
|
23245
23321
|
init_icons();
|
|
23246
23322
|
init_nickname();
|
|
23247
23323
|
init_profile();
|
|
@@ -23277,7 +23353,7 @@ function NicknameMenu() {
|
|
|
23277
23353
|
queryFn: async () => await getNicknameInfo()
|
|
23278
23354
|
});
|
|
23279
23355
|
const resolvedError = nicknameError || nicknameInfoError?.message || null;
|
|
23280
|
-
(0,
|
|
23356
|
+
(0, import_react73.useEffect)(() => () => useNicknameStore.getState().reset(), []);
|
|
23281
23357
|
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
23282
23358
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] ", children: [
|
|
23283
23359
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
@@ -23344,7 +23420,7 @@ function NicknameMenu() {
|
|
|
23344
23420
|
!!resolvedError?.length && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Highlight, { type: "error", children: resolvedError })
|
|
23345
23421
|
] });
|
|
23346
23422
|
}
|
|
23347
|
-
var import_react_query42, import_dayjs5, import_lucide_react56,
|
|
23423
|
+
var import_react_query42, import_dayjs5, import_lucide_react56, import_react73, import_jsx_runtime99;
|
|
23348
23424
|
var init_NicknameMenu = __esm({
|
|
23349
23425
|
"src/internal/components/NicknameMenu/NicknameMenu.tsx"() {
|
|
23350
23426
|
init_SessionContext();
|
|
@@ -23353,7 +23429,7 @@ var init_NicknameMenu = __esm({
|
|
|
23353
23429
|
import_react_query42 = require("@tanstack/react-query");
|
|
23354
23430
|
import_dayjs5 = __toESM(require("dayjs"), 1);
|
|
23355
23431
|
import_lucide_react56 = require("lucide-react");
|
|
23356
|
-
|
|
23432
|
+
import_react73 = require("react");
|
|
23357
23433
|
init_nickname();
|
|
23358
23434
|
init_profile();
|
|
23359
23435
|
init_useLayoutDataStore();
|
|
@@ -23483,12 +23559,12 @@ function ReceiveMenu() {
|
|
|
23483
23559
|
queryKey: [QUERY_KEYS.nicknameInfo, address],
|
|
23484
23560
|
queryFn: async () => await getNicknameInfo()
|
|
23485
23561
|
});
|
|
23486
|
-
const [qrCodeUrl, setQrCodeUrl] = (0,
|
|
23487
|
-
const [isAddressCopied, setAddressCopied] = (0,
|
|
23488
|
-
const [isNicknameCopied, setNicknameCopied] = (0,
|
|
23489
|
-
const [fingerprintCopied, setFingerprintCopied] = (0,
|
|
23562
|
+
const [qrCodeUrl, setQrCodeUrl] = (0, import_react74.useState)("");
|
|
23563
|
+
const [isAddressCopied, setAddressCopied] = (0, import_react74.useState)(false);
|
|
23564
|
+
const [isNicknameCopied, setNicknameCopied] = (0, import_react74.useState)(false);
|
|
23565
|
+
const [fingerprintCopied, setFingerprintCopied] = (0, import_react74.useState)(false);
|
|
23490
23566
|
useOnboardingTourAvailable(true);
|
|
23491
|
-
const fingerprint = (0,
|
|
23567
|
+
const fingerprint = (0, import_react74.useMemo)(() => {
|
|
23492
23568
|
if (!session?.ownerAddress) return null;
|
|
23493
23569
|
try {
|
|
23494
23570
|
return generateFingerprint(session.ownerAddress);
|
|
@@ -23496,7 +23572,7 @@ function ReceiveMenu() {
|
|
|
23496
23572
|
return null;
|
|
23497
23573
|
}
|
|
23498
23574
|
}, [session?.ownerAddress]);
|
|
23499
|
-
(0,
|
|
23575
|
+
(0, import_react74.useEffect)(() => {
|
|
23500
23576
|
if (!address) return;
|
|
23501
23577
|
import_qrcode.default.toDataURL(address, {
|
|
23502
23578
|
width: 200,
|
|
@@ -23595,7 +23671,7 @@ function ReceiveMenu() {
|
|
|
23595
23671
|
] })
|
|
23596
23672
|
] });
|
|
23597
23673
|
}
|
|
23598
|
-
var import_react_query43, import_lucide_react57, import_qrcode,
|
|
23674
|
+
var import_react_query43, import_lucide_react57, import_qrcode, import_react74, import_jsx_runtime100;
|
|
23599
23675
|
var init_ReceiveMenu = __esm({
|
|
23600
23676
|
"src/internal/components/ReceiveMenu/ReceiveMenu.tsx"() {
|
|
23601
23677
|
init_SessionContext();
|
|
@@ -23603,7 +23679,7 @@ var init_ReceiveMenu = __esm({
|
|
|
23603
23679
|
import_react_query43 = require("@tanstack/react-query");
|
|
23604
23680
|
import_lucide_react57 = require("lucide-react");
|
|
23605
23681
|
import_qrcode = __toESM(require("qrcode"), 1);
|
|
23606
|
-
|
|
23682
|
+
import_react74 = require("react");
|
|
23607
23683
|
init_nickname();
|
|
23608
23684
|
init_profile();
|
|
23609
23685
|
init_useLayoutDataStore();
|
|
@@ -23983,14 +24059,14 @@ var init_ConnectedApps2 = __esm({
|
|
|
23983
24059
|
});
|
|
23984
24060
|
|
|
23985
24061
|
// src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx
|
|
23986
|
-
var import_lucide_react60,
|
|
24062
|
+
var import_lucide_react60, import_react75, import_jsx_runtime103, KeyshareStatus;
|
|
23987
24063
|
var init_KeyshareStatus = __esm({
|
|
23988
24064
|
"src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx"() {
|
|
23989
24065
|
import_lucide_react60 = require("lucide-react");
|
|
23990
|
-
|
|
24066
|
+
import_react75 = require("react");
|
|
23991
24067
|
init_utils();
|
|
23992
24068
|
import_jsx_runtime103 = require("react/jsx-runtime");
|
|
23993
|
-
KeyshareStatus = (0,
|
|
24069
|
+
KeyshareStatus = (0, import_react75.forwardRef)((props, ref) => {
|
|
23994
24070
|
const { isLoading, content, icon: Icon2, children } = props;
|
|
23995
24071
|
if (isLoading) return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react60.Loader, { className: "w-4 h-4 animate-spin" });
|
|
23996
24072
|
return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { ref, className: "group relative w-full h-full", children: [
|
|
@@ -24317,10 +24393,10 @@ function updateLimits(patch) {
|
|
|
24317
24393
|
usePolicyForm.setState((st) => ({ ...st, limits: { ...st?.limits, ...patch } }));
|
|
24318
24394
|
}
|
|
24319
24395
|
function useWatchFormData() {
|
|
24320
|
-
const [showFormErrors, setShowFormErrors] = (0,
|
|
24396
|
+
const [showFormErrors, setShowFormErrors] = (0, import_react76.useState)(false);
|
|
24321
24397
|
const formData = usePolicyForm();
|
|
24322
24398
|
const formState = usePolicyFormValidation();
|
|
24323
|
-
(0,
|
|
24399
|
+
(0, import_react76.useEffect)(() => {
|
|
24324
24400
|
if (!formData) return;
|
|
24325
24401
|
setShowFormErrors(false);
|
|
24326
24402
|
const errors = {};
|
|
@@ -24347,7 +24423,7 @@ function useWatchFormData() {
|
|
|
24347
24423
|
}
|
|
24348
24424
|
usePolicyFormValidation.setState(errors, true);
|
|
24349
24425
|
}, [formData]);
|
|
24350
|
-
(0,
|
|
24426
|
+
(0, import_react76.useEffect)(() => () => usePolicyFormValidation.setState({}, true), []);
|
|
24351
24427
|
const formErrorItem = Object.entries(formState).find(([_, value]) => value?.error);
|
|
24352
24428
|
const formErrorMessage = formErrorItem ? `${formErrorItem[0].toUpperCase()}: ${formErrorItem[1]?.error}` : "";
|
|
24353
24429
|
return {
|
|
@@ -24358,10 +24434,10 @@ function useWatchFormData() {
|
|
|
24358
24434
|
setShowFormErrors
|
|
24359
24435
|
};
|
|
24360
24436
|
}
|
|
24361
|
-
var
|
|
24437
|
+
var import_react76, import_zustand14, usePolicyForm, usePolicyFormValidation;
|
|
24362
24438
|
var init_usePolicyForm = __esm({
|
|
24363
24439
|
"src/internal/components/SecurityMenu/UserPolicies/usePolicyForm.ts"() {
|
|
24364
|
-
|
|
24440
|
+
import_react76 = require("react");
|
|
24365
24441
|
import_zustand14 = require("zustand");
|
|
24366
24442
|
init_utils10();
|
|
24367
24443
|
usePolicyForm = (0, import_zustand14.create)(() => null);
|
|
@@ -24392,10 +24468,10 @@ var init_useUserAssetsPolicies = __esm({
|
|
|
24392
24468
|
// src/internal/components/SecurityMenu/UserPolicies/PolicyForm.tsx
|
|
24393
24469
|
function AddressListEditor(props) {
|
|
24394
24470
|
const { label, assets = [], addresses, onChange } = props;
|
|
24395
|
-
const [isAssetSelector, setIsAssetSelector] = (0,
|
|
24396
|
-
const [customAddress, setCustomAddress] = (0,
|
|
24397
|
-
const [customAddressError, setCustomAddressError] = (0,
|
|
24398
|
-
const handleAddress = (0,
|
|
24471
|
+
const [isAssetSelector, setIsAssetSelector] = (0, import_react77.useState)(false);
|
|
24472
|
+
const [customAddress, setCustomAddress] = (0, import_react77.useState)("");
|
|
24473
|
+
const [customAddressError, setCustomAddressError] = (0, import_react77.useState)(null);
|
|
24474
|
+
const handleAddress = (0, import_react77.useCallback)(
|
|
24399
24475
|
(addressToAdd) => {
|
|
24400
24476
|
if (!isValidAddress(addressToAdd)) {
|
|
24401
24477
|
setCustomAddressError("Bad address");
|
|
@@ -24622,14 +24698,14 @@ function PolicyForm() {
|
|
|
24622
24698
|
showFormErrors && formErrorMessage && /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(Highlight, { type: "error", children: formErrorMessage })
|
|
24623
24699
|
] });
|
|
24624
24700
|
}
|
|
24625
|
-
var import_react_query48, import_lucide_react63,
|
|
24701
|
+
var import_react_query48, import_lucide_react63, import_react77, import_jsx_runtime106;
|
|
24626
24702
|
var init_PolicyForm = __esm({
|
|
24627
24703
|
"src/internal/components/SecurityMenu/UserPolicies/PolicyForm.tsx"() {
|
|
24628
24704
|
init_SessionContext();
|
|
24629
24705
|
init_useT();
|
|
24630
24706
|
import_react_query48 = require("@tanstack/react-query");
|
|
24631
24707
|
import_lucide_react63 = require("lucide-react");
|
|
24632
|
-
|
|
24708
|
+
import_react77 = require("react");
|
|
24633
24709
|
init_button();
|
|
24634
24710
|
init_highlight();
|
|
24635
24711
|
init_input();
|
|
@@ -24711,7 +24787,7 @@ function UserPolicies() {
|
|
|
24711
24787
|
const config = useProviderConfig().config;
|
|
24712
24788
|
const mpcUserId = useSession((st) => st.session?.mpcUserId);
|
|
24713
24789
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
24714
|
-
const [isConfirmingDelete, setIsConfirmingDelete] = (0,
|
|
24790
|
+
const [isConfirmingDelete, setIsConfirmingDelete] = (0, import_react78.useState)(false);
|
|
24715
24791
|
const { data: policyView, isLoading: isPolicyLoading } = useUserAssetsPolicies(activeChainId);
|
|
24716
24792
|
const { mutate: cancelPending, isPending: isCancellingPending } = (0, import_react_query49.useMutation)({
|
|
24717
24793
|
mutationFn: async () => {
|
|
@@ -24824,7 +24900,7 @@ function UserPolicies() {
|
|
|
24824
24900
|
] })
|
|
24825
24901
|
] });
|
|
24826
24902
|
}
|
|
24827
|
-
var import_react_query49, import_clsx3, import_lucide_react64,
|
|
24903
|
+
var import_react_query49, import_clsx3, import_lucide_react64, import_react78, import_jsx_runtime107;
|
|
24828
24904
|
var init_UserPolicies = __esm({
|
|
24829
24905
|
"src/internal/components/SecurityMenu/UserPolicies/UserPolicies.tsx"() {
|
|
24830
24906
|
init_ProviderContext();
|
|
@@ -24833,7 +24909,7 @@ var init_UserPolicies = __esm({
|
|
|
24833
24909
|
import_react_query49 = require("@tanstack/react-query");
|
|
24834
24910
|
import_clsx3 = __toESM(require("clsx"), 1);
|
|
24835
24911
|
import_lucide_react64 = require("lucide-react");
|
|
24836
|
-
|
|
24912
|
+
import_react78 = require("react");
|
|
24837
24913
|
init_button();
|
|
24838
24914
|
init_highlight();
|
|
24839
24915
|
init_api4();
|
|
@@ -24858,7 +24934,7 @@ var init_UserPolicies2 = __esm({
|
|
|
24858
24934
|
|
|
24859
24935
|
// src/internal/components/SecurityMenu/useSecurityMenuParams.ts
|
|
24860
24936
|
function useSecurityMenuParams() {
|
|
24861
|
-
(0,
|
|
24937
|
+
(0, import_react79.useEffect)(() => {
|
|
24862
24938
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
24863
24939
|
if (!pageParams || !(0, import_lodash_es15.keys)(pageParams).length) return;
|
|
24864
24940
|
const { submenu } = pageParams;
|
|
@@ -24882,11 +24958,11 @@ function useSecurityMenuParams() {
|
|
|
24882
24958
|
setPageParams(null);
|
|
24883
24959
|
}, []);
|
|
24884
24960
|
}
|
|
24885
|
-
var import_lodash_es15,
|
|
24961
|
+
var import_lodash_es15, import_react79;
|
|
24886
24962
|
var init_useSecurityMenuParams = __esm({
|
|
24887
24963
|
"src/internal/components/SecurityMenu/useSecurityMenuParams.ts"() {
|
|
24888
24964
|
import_lodash_es15 = require("lodash-es");
|
|
24889
|
-
|
|
24965
|
+
import_react79 = require("react");
|
|
24890
24966
|
init_useLayoutDataStore();
|
|
24891
24967
|
init_UserPolicies2();
|
|
24892
24968
|
init_useSecurityStore();
|
|
@@ -24901,7 +24977,7 @@ function SecurityMenuContent() {
|
|
|
24901
24977
|
const { appToUntrust, showConnectedApps, showAssetsPolicies } = useSecurityStore();
|
|
24902
24978
|
const policyForm = usePolicyForm();
|
|
24903
24979
|
useOnboardingTourAvailable(!showConnectedApps && !showAssetsPolicies);
|
|
24904
|
-
(0,
|
|
24980
|
+
(0, import_react80.useEffect)(() => {
|
|
24905
24981
|
let securityTitle = "";
|
|
24906
24982
|
switch (true) {
|
|
24907
24983
|
case showConnectedApps:
|
|
@@ -24922,7 +24998,7 @@ function SecurityMenuContent() {
|
|
|
24922
24998
|
return () => {
|
|
24923
24999
|
};
|
|
24924
25000
|
}, [t, showConnectedApps, showAssetsPolicies, policyForm]);
|
|
24925
|
-
(0,
|
|
25001
|
+
(0, import_react80.useEffect)(
|
|
24926
25002
|
() => () => {
|
|
24927
25003
|
usePolicyForm.setState(null, true);
|
|
24928
25004
|
useSecurityStore.setState(
|
|
@@ -25016,13 +25092,13 @@ function SecurityMenu() {
|
|
|
25016
25092
|
/* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SecurityMenuContent, {})
|
|
25017
25093
|
] });
|
|
25018
25094
|
}
|
|
25019
|
-
var import_lucide_react65,
|
|
25095
|
+
var import_lucide_react65, import_react80, import_jsx_runtime108;
|
|
25020
25096
|
var init_SecurityMenu = __esm({
|
|
25021
25097
|
"src/internal/components/SecurityMenu/SecurityMenu.tsx"() {
|
|
25022
25098
|
init_ProviderContext();
|
|
25023
25099
|
init_i18n();
|
|
25024
25100
|
import_lucide_react65 = require("lucide-react");
|
|
25025
|
-
|
|
25101
|
+
import_react80 = require("react");
|
|
25026
25102
|
init_useLayoutDataStore();
|
|
25027
25103
|
init_Expandable2();
|
|
25028
25104
|
init_Onboarding();
|
|
@@ -25226,8 +25302,8 @@ var init_SenderSelector = __esm({
|
|
|
25226
25302
|
function useAvailableSenders() {
|
|
25227
25303
|
const address = useSession((st) => st.address);
|
|
25228
25304
|
const { profiles } = useLinkedProfiles();
|
|
25229
|
-
const lastCalcedSenders = (0,
|
|
25230
|
-
(0,
|
|
25305
|
+
const lastCalcedSenders = (0, import_react81.useRef)([]);
|
|
25306
|
+
(0, import_react81.useEffect)(() => {
|
|
25231
25307
|
const sendersAccumulator = [
|
|
25232
25308
|
{
|
|
25233
25309
|
type: "embarkai-wallet",
|
|
@@ -25261,13 +25337,13 @@ function useAvailableSenders() {
|
|
|
25261
25337
|
directWalletProfiles: profiles.filter((p) => p.provider === "wallet")
|
|
25262
25338
|
};
|
|
25263
25339
|
}
|
|
25264
|
-
var
|
|
25340
|
+
var import_react81;
|
|
25265
25341
|
var init_useAvailableSenders = __esm({
|
|
25266
25342
|
"src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts"() {
|
|
25267
25343
|
init_SessionContext();
|
|
25268
25344
|
init_tokens();
|
|
25269
25345
|
init_linkedProfiles();
|
|
25270
|
-
|
|
25346
|
+
import_react81 = require("react");
|
|
25271
25347
|
init_wallets();
|
|
25272
25348
|
init_useBridgeStore();
|
|
25273
25349
|
}
|
|
@@ -25682,18 +25758,18 @@ function useHyperlaneHistory() {
|
|
|
25682
25758
|
getNextPageParam: (lastPage) => lastPage.page < lastPage.pageCount ? lastPage.page + 1 : void 0,
|
|
25683
25759
|
queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
|
|
25684
25760
|
});
|
|
25685
|
-
const txList = (0,
|
|
25761
|
+
const txList = (0, import_react82.useMemo)(
|
|
25686
25762
|
() => query?.data?.pages?.map((p) => p.data).flat(Infinity) || [],
|
|
25687
25763
|
[query?.data]
|
|
25688
25764
|
);
|
|
25689
25765
|
return { query, txList };
|
|
25690
25766
|
}
|
|
25691
|
-
var import_react_query50,
|
|
25767
|
+
var import_react_query50, import_react82, HYPERLANE_HISTORY_QUERY_KEY, TX_HISTORY_PAGE_SIZE, TX_HISTORY_POLLING_INTERVAL;
|
|
25692
25768
|
var init_useHyperlaneHistory = __esm({
|
|
25693
25769
|
"src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts"() {
|
|
25694
25770
|
init_SessionContext();
|
|
25695
25771
|
import_react_query50 = require("@tanstack/react-query");
|
|
25696
|
-
|
|
25772
|
+
import_react82 = require("react");
|
|
25697
25773
|
init_useLayoutDataStore();
|
|
25698
25774
|
init_useFlowSelector();
|
|
25699
25775
|
init_api5();
|
|
@@ -25725,7 +25801,7 @@ function useBridge() {
|
|
|
25725
25801
|
const address = useSession((st) => st.address);
|
|
25726
25802
|
const { data: walletClient } = (0, import_wagmi5.useWalletClient)();
|
|
25727
25803
|
const { mutateAsync: switchChainAsync } = (0, import_wagmi5.useSwitchChain)();
|
|
25728
|
-
const swapDirection = (0,
|
|
25804
|
+
const swapDirection = (0, import_react83.useCallback)(() => {
|
|
25729
25805
|
const {
|
|
25730
25806
|
// bridgeStep,
|
|
25731
25807
|
originChain,
|
|
@@ -25776,7 +25852,7 @@ function useBridge() {
|
|
|
25776
25852
|
useFlowSelectorStore.getState().setError(error instanceof Error ? error.message : String(error));
|
|
25777
25853
|
}
|
|
25778
25854
|
});
|
|
25779
|
-
const handleQuoteEstimation = (0,
|
|
25855
|
+
const handleQuoteEstimation = (0, import_react83.useCallback)((amnt) => {
|
|
25780
25856
|
const { originChain, destinationChain, bridgeSender } = useBridgeStore.getState();
|
|
25781
25857
|
if (!amnt || !Number(amnt)) {
|
|
25782
25858
|
useBridgeStore.getState().setQuote(null);
|
|
@@ -25911,13 +25987,13 @@ function useBridge() {
|
|
|
25911
25987
|
isAssetBridging
|
|
25912
25988
|
};
|
|
25913
25989
|
}
|
|
25914
|
-
var import_react_query51,
|
|
25990
|
+
var import_react_query51, import_react83, import_wagmi5;
|
|
25915
25991
|
var init_useBridge = __esm({
|
|
25916
25992
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts"() {
|
|
25917
25993
|
init_SessionContext();
|
|
25918
25994
|
init_i18n();
|
|
25919
25995
|
import_react_query51 = require("@tanstack/react-query");
|
|
25920
|
-
|
|
25996
|
+
import_react83 = require("react");
|
|
25921
25997
|
import_wagmi5 = require("wagmi");
|
|
25922
25998
|
init_useLayoutStore();
|
|
25923
25999
|
init_useExternalWalletStore();
|
|
@@ -25948,7 +26024,7 @@ function useHyperlaneRoutes() {
|
|
|
25948
26024
|
queryKey: [HYPERLANE_WARP_ROUTES_QUERY_KEY, address],
|
|
25949
26025
|
queryFn: async () => await getHyperlaneWarpRoutes()
|
|
25950
26026
|
});
|
|
25951
|
-
(0,
|
|
26027
|
+
(0, import_react84.useEffect)(() => {
|
|
25952
26028
|
if (!errorWarpRoutes) return;
|
|
25953
26029
|
useFlowSelectorStore.getState().setError(errorWarpRoutes.message);
|
|
25954
26030
|
const { resetSelections, setRecipient, setOriginChain, setDestinationChain } = useBridgeStore.getState();
|
|
@@ -25957,7 +26033,7 @@ function useHyperlaneRoutes() {
|
|
|
25957
26033
|
setOriginChain(null);
|
|
25958
26034
|
setDestinationChain(null);
|
|
25959
26035
|
}, [errorWarpRoutes]);
|
|
25960
|
-
(0,
|
|
26036
|
+
(0, import_react84.useEffect)(() => {
|
|
25961
26037
|
if (!!hyperRoute || !hyperlaneWarpRoutes.length) return;
|
|
25962
26038
|
let targetHyperRouteToSelect = hyperlaneWarpRoutes.find((route) => route.routeId === hyperRoute);
|
|
25963
26039
|
if (!targetHyperRouteToSelect) {
|
|
@@ -25982,12 +26058,12 @@ function useHyperlaneRoutes() {
|
|
|
25982
26058
|
}, [hyperRoute, hyperlaneWarpRoutes]);
|
|
25983
26059
|
return { hyperlaneWarpRoutes, isLoadingWarpRoutes };
|
|
25984
26060
|
}
|
|
25985
|
-
var import_react_query52,
|
|
26061
|
+
var import_react_query52, import_react84, HYPERLANE_WARP_ROUTES_QUERY_KEY;
|
|
25986
26062
|
var init_useHyperlaneRoutes = __esm({
|
|
25987
26063
|
"src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneRoutes.ts"() {
|
|
25988
26064
|
init_SessionContext();
|
|
25989
26065
|
import_react_query52 = require("@tanstack/react-query");
|
|
25990
|
-
|
|
26066
|
+
import_react84 = require("react");
|
|
25991
26067
|
init_useLayoutDataStore();
|
|
25992
26068
|
init_useFlowSelector();
|
|
25993
26069
|
init_api5();
|
|
@@ -26003,7 +26079,7 @@ function useMenuTitle(warpRoutes) {
|
|
|
26003
26079
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
26004
26080
|
const hyperRoute = useBridgeStore((st) => st.hyperRoute);
|
|
26005
26081
|
const hyperRouteMeta = warpRoutes?.length ? warpRoutes.find((route) => route.routeId === hyperRoute) : null;
|
|
26006
|
-
(0,
|
|
26082
|
+
(0, import_react85.useEffect)(() => {
|
|
26007
26083
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
26008
26084
|
switch (true) {
|
|
26009
26085
|
case bridgeStep === "sender-selector":
|
|
@@ -26031,11 +26107,11 @@ function useMenuTitle(warpRoutes) {
|
|
|
26031
26107
|
}
|
|
26032
26108
|
}, [bridgeStep, hyperRouteMeta, t]);
|
|
26033
26109
|
}
|
|
26034
|
-
var
|
|
26110
|
+
var import_react85;
|
|
26035
26111
|
var init_useMenuTitle = __esm({
|
|
26036
26112
|
"src/internal/components/SendMenu/hyperbridge/hooks/useMenuTitle.ts"() {
|
|
26037
26113
|
init_i18n();
|
|
26038
|
-
|
|
26114
|
+
import_react85 = require("react");
|
|
26039
26115
|
init_useFlowSelector();
|
|
26040
26116
|
init_useBridgeStore();
|
|
26041
26117
|
}
|
|
@@ -26285,7 +26361,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26285
26361
|
};
|
|
26286
26362
|
}
|
|
26287
26363
|
});
|
|
26288
|
-
const refreshRouteTokenBalance = (0,
|
|
26364
|
+
const refreshRouteTokenBalance = (0, import_react86.useCallback)(
|
|
26289
26365
|
(senderWallet) => {
|
|
26290
26366
|
switch (true) {
|
|
26291
26367
|
case senderWallet === "embarkai-wallet":
|
|
@@ -26301,7 +26377,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26301
26377
|
},
|
|
26302
26378
|
[refreshBalances, qc]
|
|
26303
26379
|
);
|
|
26304
|
-
(0,
|
|
26380
|
+
(0, import_react86.useEffect)(() => {
|
|
26305
26381
|
if (!!isLoadingWarpRoutes || !bridgeSender || !originChain) return;
|
|
26306
26382
|
switch (bridgeSender) {
|
|
26307
26383
|
case "embarkai-wallet":
|
|
@@ -26332,14 +26408,14 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26332
26408
|
isRouteTokenBalanceLoading: isAssetsLoading || isExternalBalanceLoading || isExternalNativeBalanceLoading
|
|
26333
26409
|
};
|
|
26334
26410
|
}
|
|
26335
|
-
var import_core8, import_react_query53,
|
|
26411
|
+
var import_core8, import_react_query53, import_react86, import_viem15, import_wagmi6, EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, EXTERNAL_WALLET_BRIDGING_NATIVE_BALANCE_QUERY;
|
|
26336
26412
|
var init_useBridgeBalance = __esm({
|
|
26337
26413
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts"() {
|
|
26338
26414
|
init_SessionContext();
|
|
26339
26415
|
init_i18n();
|
|
26340
26416
|
import_core8 = require("@embarkai/core");
|
|
26341
26417
|
import_react_query53 = require("@tanstack/react-query");
|
|
26342
|
-
|
|
26418
|
+
import_react86 = require("react");
|
|
26343
26419
|
import_viem15 = require("viem");
|
|
26344
26420
|
import_wagmi6 = require("wagmi");
|
|
26345
26421
|
init_useBlockscoutAssets2();
|
|
@@ -26468,7 +26544,7 @@ function SelectStep(props) {
|
|
|
26468
26544
|
variant: "outline",
|
|
26469
26545
|
size: "medium",
|
|
26470
26546
|
className: "bg-[var(--ui-kit-bg)] flex items-center gap-[var(--ui-kit-gap)]",
|
|
26471
|
-
children: selectedWarpRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
|
|
26547
|
+
children: selectedWarpRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(import_react87.Fragment, { children: [
|
|
26472
26548
|
chIdx > 0 && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react67.ArrowLeftRightIcon, { className: "w-4 h-4 " }),
|
|
26473
26549
|
/* @__PURE__ */ (0, import_jsx_runtime111.jsx)(ResolveChainIcon, { chainName: chain.chainName, className: "w-4 h-4" })
|
|
26474
26550
|
] }, `${selectedWarpRoute.id}-icon-${chain.chainID}-${chIdx}`))
|
|
@@ -26612,13 +26688,13 @@ function SelectStep(props) {
|
|
|
26612
26688
|
)
|
|
26613
26689
|
] });
|
|
26614
26690
|
}
|
|
26615
|
-
var import_lucide_react67,
|
|
26691
|
+
var import_lucide_react67, import_react87, import_jsx_runtime111;
|
|
26616
26692
|
var init_SelectStep = __esm({
|
|
26617
26693
|
"src/internal/components/SendMenu/hyperbridge/steps/SelectStep.tsx"() {
|
|
26618
26694
|
init_tokens();
|
|
26619
26695
|
init_i18n();
|
|
26620
26696
|
import_lucide_react67 = require("lucide-react");
|
|
26621
|
-
|
|
26697
|
+
import_react87 = require("react");
|
|
26622
26698
|
init_priceFormatter();
|
|
26623
26699
|
init_utils();
|
|
26624
26700
|
init_useExternalWalletStore();
|
|
@@ -26669,7 +26745,7 @@ var init_checkbox = __esm({
|
|
|
26669
26745
|
// src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx
|
|
26670
26746
|
function ConfirmStep(props) {
|
|
26671
26747
|
const { isAssetBridging, bridgeAsset, hyperlaneWarpRoutes } = props;
|
|
26672
|
-
const [userConsent, setUserConsent] = (0,
|
|
26748
|
+
const [userConsent, setUserConsent] = (0, import_react88.useState)(false);
|
|
26673
26749
|
const { t } = useT();
|
|
26674
26750
|
const address = useSession((st) => st.address);
|
|
26675
26751
|
const bridgeSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
|
|
@@ -26785,13 +26861,13 @@ function ConfirmStep(props) {
|
|
|
26785
26861
|
}
|
|
26786
26862
|
);
|
|
26787
26863
|
}
|
|
26788
|
-
var import_lucide_react69,
|
|
26864
|
+
var import_lucide_react69, import_react88, import_jsx_runtime113, P_CN;
|
|
26789
26865
|
var init_ConfirmStep = __esm({
|
|
26790
26866
|
"src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx"() {
|
|
26791
26867
|
init_SessionContext();
|
|
26792
26868
|
init_i18n();
|
|
26793
26869
|
import_lucide_react69 = require("lucide-react");
|
|
26794
|
-
|
|
26870
|
+
import_react88 = require("react");
|
|
26795
26871
|
init_priceFormatter();
|
|
26796
26872
|
init_utils();
|
|
26797
26873
|
init_Onboarding();
|
|
@@ -27168,7 +27244,7 @@ function SelectAssetRoute(props) {
|
|
|
27168
27244
|
const { hyperlaneWarpRoutes } = props;
|
|
27169
27245
|
const { t } = useT();
|
|
27170
27246
|
const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
|
|
27171
|
-
const tokenList = (0,
|
|
27247
|
+
const tokenList = (0, import_react89.useMemo)(() => {
|
|
27172
27248
|
const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
|
|
27173
27249
|
const uniqueTokens = Array.from(new Set(tokens));
|
|
27174
27250
|
return uniqueTokens.map((symbol) => ({
|
|
@@ -27245,13 +27321,13 @@ function SelectAssetRoute(props) {
|
|
|
27245
27321
|
] })
|
|
27246
27322
|
] });
|
|
27247
27323
|
}
|
|
27248
|
-
var import_lucide_react71,
|
|
27324
|
+
var import_lucide_react71, import_react89, import_jsx_runtime116;
|
|
27249
27325
|
var init_SelectAssetRoute = __esm({
|
|
27250
27326
|
"src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx"() {
|
|
27251
27327
|
init_tokens();
|
|
27252
27328
|
init_i18n();
|
|
27253
27329
|
import_lucide_react71 = require("lucide-react");
|
|
27254
|
-
|
|
27330
|
+
import_react89 = require("react");
|
|
27255
27331
|
init_button();
|
|
27256
27332
|
init_ResolveChainIcon();
|
|
27257
27333
|
init_useBridgeStore();
|
|
@@ -27278,7 +27354,7 @@ function HyperlaneBridge() {
|
|
|
27278
27354
|
const { hyperlaneWarpRoutes, isLoadingWarpRoutes } = useHyperlaneRoutes();
|
|
27279
27355
|
const { directWalletProfiles } = useAvailableSenders();
|
|
27280
27356
|
useMenuTitle(hyperlaneWarpRoutes);
|
|
27281
|
-
(0,
|
|
27357
|
+
(0, import_react90.useEffect)(() => {
|
|
27282
27358
|
return () => {
|
|
27283
27359
|
useBridgeStore.getState().resetSelections();
|
|
27284
27360
|
};
|
|
@@ -27311,10 +27387,10 @@ function HyperlaneBridge() {
|
|
|
27311
27387
|
bridgeStep === "tx-history-details" && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(HistoryDetailsStep, {})
|
|
27312
27388
|
] });
|
|
27313
27389
|
}
|
|
27314
|
-
var
|
|
27390
|
+
var import_react90, import_jsx_runtime117;
|
|
27315
27391
|
var init_HyperlaneBridge = __esm({
|
|
27316
27392
|
"src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx"() {
|
|
27317
|
-
|
|
27393
|
+
import_react90 = require("react");
|
|
27318
27394
|
init_SenderSelector();
|
|
27319
27395
|
init_useAvailableSenders();
|
|
27320
27396
|
init_useBridge();
|
|
@@ -27332,7 +27408,7 @@ function BridgeHistorySwitch(props) {
|
|
|
27332
27408
|
const selectorFlow = useFlowSelectorStore((st) => st.flow);
|
|
27333
27409
|
const isUiLocked = useFlowSelectorStore((st) => st.isUiLocked);
|
|
27334
27410
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
27335
|
-
const lastBridgeStepRef = (0,
|
|
27411
|
+
const lastBridgeStepRef = (0, import_react91.useRef)(null);
|
|
27336
27412
|
if (selectorFlow !== "bridge" || bridgeStep === "confirm" || bridgeStep === "success" || bridgeStep === "sender-selector" || bridgeStep === "select-token" || bridgeStep === "tx-history-details") {
|
|
27337
27413
|
return null;
|
|
27338
27414
|
}
|
|
@@ -27351,10 +27427,10 @@ function BridgeHistorySwitch(props) {
|
|
|
27351
27427
|
}
|
|
27352
27428
|
);
|
|
27353
27429
|
}
|
|
27354
|
-
var
|
|
27430
|
+
var import_react91, import_jsx_runtime118;
|
|
27355
27431
|
var init_HistorySwitch = __esm({
|
|
27356
27432
|
"src/internal/components/SendMenu/hyperbridge/components/HistorySwitch.tsx"() {
|
|
27357
|
-
|
|
27433
|
+
import_react91 = require("react");
|
|
27358
27434
|
init_switch();
|
|
27359
27435
|
init_useFlowSelector();
|
|
27360
27436
|
init_useBridgeStore();
|
|
@@ -27445,11 +27521,11 @@ function looksLikeNickname(input) {
|
|
|
27445
27521
|
}
|
|
27446
27522
|
function useNicknameResolve(input, options) {
|
|
27447
27523
|
const { enabled = true, chainId } = options;
|
|
27448
|
-
const [debouncedInput, setDebouncedInput] = (0,
|
|
27449
|
-
const [isDebouncing, setIsDebouncing] = (0,
|
|
27524
|
+
const [debouncedInput, setDebouncedInput] = (0, import_react92.useState)("");
|
|
27525
|
+
const [isDebouncing, setIsDebouncing] = (0, import_react92.useState)(false);
|
|
27450
27526
|
const normalized = normalizeNickname(input);
|
|
27451
27527
|
const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
|
|
27452
|
-
(0,
|
|
27528
|
+
(0, import_react92.useEffect)(() => {
|
|
27453
27529
|
if (!isNicknameInput || !enabled) {
|
|
27454
27530
|
setDebouncedInput("");
|
|
27455
27531
|
setIsDebouncing(false);
|
|
@@ -27475,7 +27551,7 @@ function useNicknameResolve(input, options) {
|
|
|
27475
27551
|
const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
|
|
27476
27552
|
const isWalletNotSetup = !!query.data && query.data.resolvedTarget === null;
|
|
27477
27553
|
const isFrozen = query.data?.isFrozen ?? false;
|
|
27478
|
-
const fingerprintVerification = (0,
|
|
27554
|
+
const fingerprintVerification = (0, import_react92.useMemo)(() => {
|
|
27479
27555
|
if (!query.data?.owner || !query.data?.fingerprint) {
|
|
27480
27556
|
return null;
|
|
27481
27557
|
}
|
|
@@ -27497,11 +27573,11 @@ function useNicknameResolve(input, options) {
|
|
|
27497
27573
|
resolvedAddress
|
|
27498
27574
|
};
|
|
27499
27575
|
}
|
|
27500
|
-
var import_react_query55,
|
|
27576
|
+
var import_react_query55, import_react92, DEBOUNCE_MS2;
|
|
27501
27577
|
var init_useNicknameResolve = __esm({
|
|
27502
27578
|
"src/hooks/useNicknameResolve.ts"() {
|
|
27503
27579
|
import_react_query55 = require("@tanstack/react-query");
|
|
27504
|
-
|
|
27580
|
+
import_react92 = require("react");
|
|
27505
27581
|
init_nickname();
|
|
27506
27582
|
init_profile();
|
|
27507
27583
|
init_nickname_fingerprint();
|
|
@@ -27514,10 +27590,10 @@ var init_useNicknameResolve = __esm({
|
|
|
27514
27590
|
function useSendTransaction() {
|
|
27515
27591
|
const session = useSession((st) => st.session);
|
|
27516
27592
|
const address = useSession((st) => st.address);
|
|
27517
|
-
const [isLoading, setIsLoading] = (0,
|
|
27518
|
-
const [error, setError] = (0,
|
|
27519
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
27520
|
-
const sendTransaction = (0,
|
|
27593
|
+
const [isLoading, setIsLoading] = (0, import_react93.useState)(false);
|
|
27594
|
+
const [error, setError] = (0, import_react93.useState)(null);
|
|
27595
|
+
const [userOpHash, setUserOpHash] = (0, import_react93.useState)(null);
|
|
27596
|
+
const sendTransaction = (0, import_react93.useCallback)(
|
|
27521
27597
|
async (params) => {
|
|
27522
27598
|
if (!session || !address) {
|
|
27523
27599
|
setError("No active session");
|
|
@@ -27614,7 +27690,7 @@ function useSendTransaction() {
|
|
|
27614
27690
|
},
|
|
27615
27691
|
[session, address]
|
|
27616
27692
|
);
|
|
27617
|
-
const reset = (0,
|
|
27693
|
+
const reset = (0, import_react93.useCallback)(() => {
|
|
27618
27694
|
setError(null);
|
|
27619
27695
|
setUserOpHash(null);
|
|
27620
27696
|
setIsLoading(false);
|
|
@@ -27627,10 +27703,10 @@ function useSendTransaction() {
|
|
|
27627
27703
|
reset
|
|
27628
27704
|
};
|
|
27629
27705
|
}
|
|
27630
|
-
var
|
|
27706
|
+
var import_react93, import_viem16, ERC20_TRANSFER_ABI, ERC721_SAFE_TRANSFER_ABI, ERC1155_SAFE_TRANSFER_ABI;
|
|
27631
27707
|
var init_useSendTransaction = __esm({
|
|
27632
27708
|
"src/hooks/useSendTransaction.ts"() {
|
|
27633
|
-
|
|
27709
|
+
import_react93 = require("react");
|
|
27634
27710
|
import_viem16 = require("viem");
|
|
27635
27711
|
init_SessionContext();
|
|
27636
27712
|
init_account2();
|
|
@@ -27781,7 +27857,7 @@ var init_AssetInputIcon = __esm({
|
|
|
27781
27857
|
|
|
27782
27858
|
// src/internal/components/SendMenu/send/components/NftDisplayCard.tsx
|
|
27783
27859
|
function NftDisplayCard({ asset }) {
|
|
27784
|
-
const [imageError, setImageError] = (0,
|
|
27860
|
+
const [imageError, setImageError] = (0, import_react94.useState)(false);
|
|
27785
27861
|
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
27786
27862
|
return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)("div", { className: "flex items-center gap-3 p-3 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-bg-secondary)]", children: [
|
|
27787
27863
|
nftImage && !imageError ? /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
|
|
@@ -27809,11 +27885,11 @@ function NftDisplayCard({ asset }) {
|
|
|
27809
27885
|
] })
|
|
27810
27886
|
] });
|
|
27811
27887
|
}
|
|
27812
|
-
var import_lucide_react73,
|
|
27888
|
+
var import_lucide_react73, import_react94, import_jsx_runtime120;
|
|
27813
27889
|
var init_NftDisplayCard = __esm({
|
|
27814
27890
|
"src/internal/components/SendMenu/send/components/NftDisplayCard.tsx"() {
|
|
27815
27891
|
import_lucide_react73 = require("lucide-react");
|
|
27816
|
-
|
|
27892
|
+
import_react94 = require("react");
|
|
27817
27893
|
import_jsx_runtime120 = require("react/jsx-runtime");
|
|
27818
27894
|
}
|
|
27819
27895
|
});
|
|
@@ -27933,7 +28009,7 @@ function NicknameData(props) {
|
|
|
27933
28009
|
isWalletNotSetup,
|
|
27934
28010
|
isFrozen
|
|
27935
28011
|
} = resolvedNicknameData;
|
|
27936
|
-
(0,
|
|
28012
|
+
(0, import_react95.useEffect)(() => {
|
|
27937
28013
|
if (isResolving) return;
|
|
27938
28014
|
let errMessage = null;
|
|
27939
28015
|
switch (true) {
|
|
@@ -27988,11 +28064,11 @@ function NicknameData(props) {
|
|
|
27988
28064
|
] })
|
|
27989
28065
|
] });
|
|
27990
28066
|
}
|
|
27991
|
-
var import_lucide_react74,
|
|
28067
|
+
var import_lucide_react74, import_react95, import_jsx_runtime122;
|
|
27992
28068
|
var init_NicknameData = __esm({
|
|
27993
28069
|
"src/internal/components/SendMenu/send/components/NicknameData.tsx"() {
|
|
27994
28070
|
import_lucide_react74 = require("lucide-react");
|
|
27995
|
-
|
|
28071
|
+
import_react95 = require("react");
|
|
27996
28072
|
init_no_image();
|
|
27997
28073
|
init_utils();
|
|
27998
28074
|
init_useFlowSelector();
|
|
@@ -28525,16 +28601,16 @@ function SendMenu() {
|
|
|
28525
28601
|
userOpHash,
|
|
28526
28602
|
reset
|
|
28527
28603
|
} = useSendTransaction();
|
|
28528
|
-
(0,
|
|
28604
|
+
(0, import_react96.useEffect)(() => {
|
|
28529
28605
|
useFlowSelectorStore.getState().setIsUiLocked(isAssetsLoading || isTransactionPending);
|
|
28530
28606
|
}, [isAssetsLoading, isTransactionPending]);
|
|
28531
|
-
(0,
|
|
28607
|
+
(0, import_react96.useEffect)(() => {
|
|
28532
28608
|
useFlowSelectorStore.getState().setError(sendTransactionError || null);
|
|
28533
28609
|
}, [sendTransactionError]);
|
|
28534
28610
|
const { txStep, recipient, amount, selectedAsset, setSelectedAsset } = useSendStore();
|
|
28535
28611
|
const isNft = isNftAsset3(selectedAsset);
|
|
28536
28612
|
const isSecurity = isSecurityToken2(selectedAsset);
|
|
28537
|
-
(0,
|
|
28613
|
+
(0, import_react96.useEffect)(() => {
|
|
28538
28614
|
const shouldDefaultAsset = assets.length > 0 && !selectedAsset;
|
|
28539
28615
|
if (!shouldDefaultAsset) return;
|
|
28540
28616
|
const chainNativeCurrency = useSession.getState().chainConfig?.nativeCurrency;
|
|
@@ -28544,7 +28620,7 @@ function SendMenu() {
|
|
|
28544
28620
|
if (isBalance(erc20)) return setSelectedAsset(erc20);
|
|
28545
28621
|
setSelectedAsset(assets[0]);
|
|
28546
28622
|
}, [assets, selectedAsset]);
|
|
28547
|
-
(0,
|
|
28623
|
+
(0, import_react96.useEffect)(
|
|
28548
28624
|
() => () => {
|
|
28549
28625
|
useSendStore.getState().reset();
|
|
28550
28626
|
reset();
|
|
@@ -28554,7 +28630,7 @@ function SendMenu() {
|
|
|
28554
28630
|
const isNicknameInput = looksLikeNickname(recipient);
|
|
28555
28631
|
const resolvedNicknameData = useNicknameResolve(recipient, { enabled: isNicknameInput, chainId: activeChainId });
|
|
28556
28632
|
const effectiveAddress = isNicknameInput ? resolvedNicknameData?.resolvedAddress : recipient;
|
|
28557
|
-
const complianceAmount = (0,
|
|
28633
|
+
const complianceAmount = (0, import_react96.useMemo)(() => {
|
|
28558
28634
|
if (!isSecurity || !amount || !selectedAsset) return void 0;
|
|
28559
28635
|
try {
|
|
28560
28636
|
return (0, import_viem21.parseUnits)(amount, selectedAsset.decimals || 18);
|
|
@@ -28569,7 +28645,7 @@ function SendMenu() {
|
|
|
28569
28645
|
enabled: isSecurity && !!effectiveAddress && !!complianceAmount,
|
|
28570
28646
|
chainId: activeChainId
|
|
28571
28647
|
});
|
|
28572
|
-
(0,
|
|
28648
|
+
(0, import_react96.useEffect)(() => {
|
|
28573
28649
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
28574
28650
|
switch (true) {
|
|
28575
28651
|
case txStep === "select-asset":
|
|
@@ -28639,7 +28715,7 @@ function SendMenu() {
|
|
|
28639
28715
|
] })
|
|
28640
28716
|
] });
|
|
28641
28717
|
}
|
|
28642
|
-
var import_lucide_react77,
|
|
28718
|
+
var import_lucide_react77, import_react96, import_viem21, import_jsx_runtime125;
|
|
28643
28719
|
var init_SendMenu = __esm({
|
|
28644
28720
|
"src/internal/components/SendMenu/send/SendMenu.tsx"() {
|
|
28645
28721
|
init_SessionContext();
|
|
@@ -28648,7 +28724,7 @@ var init_SendMenu = __esm({
|
|
|
28648
28724
|
init_useSendTransaction();
|
|
28649
28725
|
init_useT();
|
|
28650
28726
|
import_lucide_react77 = require("lucide-react");
|
|
28651
|
-
|
|
28727
|
+
import_react96 = require("react");
|
|
28652
28728
|
import_viem21 = require("viem");
|
|
28653
28729
|
init_useBlockscoutAssets2();
|
|
28654
28730
|
init_useLayoutDataStore();
|
|
@@ -28674,7 +28750,7 @@ var init_send = __esm({
|
|
|
28674
28750
|
// src/internal/components/SendMenu/useSendMenuParams.ts
|
|
28675
28751
|
function useSendMenuParams() {
|
|
28676
28752
|
const { config } = useProviderConfig();
|
|
28677
|
-
(0,
|
|
28753
|
+
(0, import_react97.useEffect)(() => {
|
|
28678
28754
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
28679
28755
|
if (!pageParams || !(0, import_lodash_es16.keys)(pageParams).length) return;
|
|
28680
28756
|
const { sendFlow, send, bridge } = pageParams || {};
|
|
@@ -28727,12 +28803,12 @@ function useSendMenuParams() {
|
|
|
28727
28803
|
setPageParams(null);
|
|
28728
28804
|
}, []);
|
|
28729
28805
|
}
|
|
28730
|
-
var import_lodash_es16,
|
|
28806
|
+
var import_lodash_es16, import_react97;
|
|
28731
28807
|
var init_useSendMenuParams = __esm({
|
|
28732
28808
|
"src/internal/components/SendMenu/useSendMenuParams.ts"() {
|
|
28733
28809
|
init_ProviderContext();
|
|
28734
28810
|
import_lodash_es16 = require("lodash-es");
|
|
28735
|
-
|
|
28811
|
+
import_react97 = require("react");
|
|
28736
28812
|
init_useLayoutDataStore();
|
|
28737
28813
|
init_useBridgeStore();
|
|
28738
28814
|
init_useSendStore();
|
|
@@ -28800,17 +28876,17 @@ function SendFlowSelector() {
|
|
|
28800
28876
|
const sendStep = useSendStore((st) => st.txStep);
|
|
28801
28877
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
28802
28878
|
useOnboardingTourAvailable(sendStep === "input" && bridgeStep === "select");
|
|
28803
|
-
(0,
|
|
28879
|
+
(0, import_react98.useEffect)(
|
|
28804
28880
|
() => () => {
|
|
28805
28881
|
useFlowSelectorStore.getState().setError(null);
|
|
28806
28882
|
},
|
|
28807
28883
|
[]
|
|
28808
28884
|
);
|
|
28809
|
-
(0,
|
|
28885
|
+
(0, import_react98.useEffect)(() => {
|
|
28810
28886
|
if (!!config?.current?.features?.showAssetBridge) return;
|
|
28811
28887
|
if (selectorFlow === "bridge") useFlowSelectorStore.getState().setFlow("send");
|
|
28812
28888
|
}, [selectorFlow]);
|
|
28813
|
-
const availableFlows = (0,
|
|
28889
|
+
const availableFlows = (0, import_react98.useMemo)(() => {
|
|
28814
28890
|
const selectorFlows = { send: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(SendMenu, {}) };
|
|
28815
28891
|
if (!!config?.current?.features?.showAssetBridge) selectorFlows.bridge = /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(HyperlaneBridge, {});
|
|
28816
28892
|
return selectorFlows;
|
|
@@ -28875,13 +28951,13 @@ function SendFlowSelector() {
|
|
|
28875
28951
|
] })
|
|
28876
28952
|
] });
|
|
28877
28953
|
}
|
|
28878
|
-
var import_lucide_react78,
|
|
28954
|
+
var import_lucide_react78, import_react98, import_jsx_runtime126;
|
|
28879
28955
|
var init_SendFlowSelector = __esm({
|
|
28880
28956
|
"src/internal/components/SendMenu/SendFlowSelector.tsx"() {
|
|
28881
28957
|
init_ProviderContext();
|
|
28882
28958
|
init_i18n();
|
|
28883
28959
|
import_lucide_react78 = require("lucide-react");
|
|
28884
|
-
|
|
28960
|
+
import_react98 = require("react");
|
|
28885
28961
|
init_useLayoutDataStore();
|
|
28886
28962
|
init_utils();
|
|
28887
28963
|
init_Expandable2();
|
|
@@ -28944,12 +29020,12 @@ function getServerSnapshot() {
|
|
|
28944
29020
|
return false;
|
|
28945
29021
|
}
|
|
28946
29022
|
function useProMode() {
|
|
28947
|
-
return (0,
|
|
29023
|
+
return (0, import_react99.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot);
|
|
28948
29024
|
}
|
|
28949
|
-
var
|
|
29025
|
+
var import_react99, STORAGE_KEY, EVENT_NAME;
|
|
28950
29026
|
var init_pro_mode = __esm({
|
|
28951
29027
|
"src/internal/lib/pro-mode.ts"() {
|
|
28952
|
-
|
|
29028
|
+
import_react99 = require("react");
|
|
28953
29029
|
STORAGE_KEY = "embarkai_pro_mode";
|
|
28954
29030
|
EVENT_NAME = "embarkai-pro-mode-changed";
|
|
28955
29031
|
}
|
|
@@ -29755,7 +29831,7 @@ function TransactionsMenu() {
|
|
|
29755
29831
|
const { t } = useT();
|
|
29756
29832
|
useOnboardingTourAvailable(true);
|
|
29757
29833
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
29758
|
-
const [expandedGroups, setExpandedGroups] = (0,
|
|
29834
|
+
const [expandedGroups, setExpandedGroups] = (0, import_react100.useState)({});
|
|
29759
29835
|
const historySupported = isTransactionHistorySupported(chainConfig?.id);
|
|
29760
29836
|
const {
|
|
29761
29837
|
data: txHistoryGroups = [],
|
|
@@ -29768,7 +29844,7 @@ function TransactionsMenu() {
|
|
|
29768
29844
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address],
|
|
29769
29845
|
queryFn: () => getTransactionsListQuery({ address, chainConfig })
|
|
29770
29846
|
});
|
|
29771
|
-
const refreshTxHistory = (0,
|
|
29847
|
+
const refreshTxHistory = (0, import_react100.useCallback)(
|
|
29772
29848
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address] }),
|
|
29773
29849
|
[qc, chainConfig.id, address]
|
|
29774
29850
|
);
|
|
@@ -29807,14 +29883,14 @@ function TransactionsMenu() {
|
|
|
29807
29883
|
)) })
|
|
29808
29884
|
] });
|
|
29809
29885
|
}
|
|
29810
|
-
var import_react_query58, import_lucide_react80,
|
|
29886
|
+
var import_react_query58, import_lucide_react80, import_react100, import_jsx_runtime128;
|
|
29811
29887
|
var init_TransactionsMenu = __esm({
|
|
29812
29888
|
"src/internal/components/TransactionsMenu/TransactionsMenu.tsx"() {
|
|
29813
29889
|
init_SessionContext();
|
|
29814
29890
|
init_i18n();
|
|
29815
29891
|
import_react_query58 = require("@tanstack/react-query");
|
|
29816
29892
|
import_lucide_react80 = require("lucide-react");
|
|
29817
|
-
|
|
29893
|
+
import_react100 = require("react");
|
|
29818
29894
|
init_useLayoutDataStore();
|
|
29819
29895
|
init_Expandable2();
|
|
29820
29896
|
init_Onboarding();
|
|
@@ -29859,6 +29935,7 @@ var init_constants9 = __esm({
|
|
|
29859
29935
|
init_icons();
|
|
29860
29936
|
NAV_BUTTONS = [
|
|
29861
29937
|
{ id: "transactions" /* TRANSACTIONS */, name: "passport:transactionsMenu.title", Icon: import_lucide_react81.ArrowLeftRight },
|
|
29938
|
+
{ id: "user-activity" /* USER_ACTIVITY */, name: "passport:userActivityMenu.title", Icon: import_lucide_react81.ActivityIcon },
|
|
29862
29939
|
{ id: "kyc" /* KYC */, name: "passport:kycMenu.title", Icon: kyc_default },
|
|
29863
29940
|
{ id: "nickname-settings" /* NICKNAME_SETTINGS */, name: "passport:nicknameMenu.title", Icon: import_lucide_react81.AtSign },
|
|
29864
29941
|
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "passport:profilesMenu.title", Icon: import_lucide_react81.UsersRound },
|
|
@@ -29977,6 +30054,69 @@ var init_SettingsMenu2 = __esm({
|
|
|
29977
30054
|
}
|
|
29978
30055
|
});
|
|
29979
30056
|
|
|
30057
|
+
// src/internal/components/UserActivityMenu/UserActivityMenu.tsx
|
|
30058
|
+
function UserActivityMenu() {
|
|
30059
|
+
const { t } = useT();
|
|
30060
|
+
useOnboardingTourAvailable(true);
|
|
30061
|
+
const activities = [];
|
|
30062
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
30063
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsxs)("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
30064
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
|
|
30065
|
+
Button,
|
|
30066
|
+
{
|
|
30067
|
+
variant: "ghost",
|
|
30068
|
+
size: "icon",
|
|
30069
|
+
title: "Back",
|
|
30070
|
+
onClick: () => useLayoutDataStore.getState().setPage("settings" /* SETTINGS */),
|
|
30071
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_lucide_react83.ArrowLeft, { className: "h-4 w-4" })
|
|
30072
|
+
}
|
|
30073
|
+
),
|
|
30074
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)("span", { className: "text-xl font-semibold", children: t("passport:userActivityMenu.title") })
|
|
30075
|
+
] }),
|
|
30076
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)("span", { className: "text-xs text-[var(--ui-kit-fg-muted)]", children: t("passport:userActivityMenu.description") }),
|
|
30077
|
+
activities.length === 0 ? (
|
|
30078
|
+
// <Highlight>{t('passport:userActivityMenu.noActivities')}</Highlight>
|
|
30079
|
+
/* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Highlight, { className: "text-[var(--ui-kit-fg-muted)]", children: t("passport:common.comingSoon") })
|
|
30080
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime130.jsx)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]" })
|
|
30081
|
+
] });
|
|
30082
|
+
}
|
|
30083
|
+
var import_lucide_react83, import_jsx_runtime130;
|
|
30084
|
+
var init_UserActivityMenu = __esm({
|
|
30085
|
+
"src/internal/components/UserActivityMenu/UserActivityMenu.tsx"() {
|
|
30086
|
+
init_i18n();
|
|
30087
|
+
import_lucide_react83 = require("lucide-react");
|
|
30088
|
+
init_useLayoutDataStore();
|
|
30089
|
+
init_Expandable2();
|
|
30090
|
+
init_Onboarding();
|
|
30091
|
+
init_button();
|
|
30092
|
+
init_highlight();
|
|
30093
|
+
import_jsx_runtime130 = require("react/jsx-runtime");
|
|
30094
|
+
}
|
|
30095
|
+
});
|
|
30096
|
+
|
|
30097
|
+
// src/internal/components/UserActivityMenu/onboarding.setup.ts
|
|
30098
|
+
var USER_ACTIVITY_MENU_TOUR;
|
|
30099
|
+
var init_onboarding_setup12 = __esm({
|
|
30100
|
+
"src/internal/components/UserActivityMenu/onboarding.setup.ts"() {
|
|
30101
|
+
init_constants();
|
|
30102
|
+
USER_ACTIVITY_MENU_TOUR = [
|
|
30103
|
+
{
|
|
30104
|
+
elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"user-activity" /* USER_ACTIVITY */}`,
|
|
30105
|
+
title: "passport:userActivityMenu.onboarding.title",
|
|
30106
|
+
description: "passport:userActivityMenu.onboarding.description"
|
|
30107
|
+
}
|
|
30108
|
+
];
|
|
30109
|
+
}
|
|
30110
|
+
});
|
|
30111
|
+
|
|
30112
|
+
// src/internal/components/UserActivityMenu/index.ts
|
|
30113
|
+
var init_UserActivityMenu2 = __esm({
|
|
30114
|
+
"src/internal/components/UserActivityMenu/index.ts"() {
|
|
30115
|
+
init_UserActivityMenu();
|
|
30116
|
+
init_onboarding_setup12();
|
|
30117
|
+
}
|
|
30118
|
+
});
|
|
30119
|
+
|
|
29980
30120
|
// src/internal/components/PageMap.tsx
|
|
29981
30121
|
var PAGE_MAP;
|
|
29982
30122
|
var init_PageMap = __esm({
|
|
@@ -30002,6 +30142,7 @@ var init_PageMap = __esm({
|
|
|
30002
30142
|
init_SendMenu2();
|
|
30003
30143
|
init_SettingsMenu2();
|
|
30004
30144
|
init_TransactionsMenu2();
|
|
30145
|
+
init_UserActivityMenu2();
|
|
30005
30146
|
PAGE_MAP = {
|
|
30006
30147
|
["auth" /* AUTH */]: {
|
|
30007
30148
|
key: "auth" /* AUTH */,
|
|
@@ -30009,6 +30150,12 @@ var init_PageMap = __esm({
|
|
|
30009
30150
|
description: "Authenticate to access your wallet",
|
|
30010
30151
|
component: AuthMenu
|
|
30011
30152
|
},
|
|
30153
|
+
["user-activity" /* USER_ACTIVITY */]: {
|
|
30154
|
+
key: "user-activity" /* USER_ACTIVITY */,
|
|
30155
|
+
title: "User Activity",
|
|
30156
|
+
description: "View your recent activity",
|
|
30157
|
+
component: UserActivityMenu
|
|
30158
|
+
},
|
|
30012
30159
|
["languages" /* LANGUAGES */]: {
|
|
30013
30160
|
key: "languages" /* LANGUAGES */,
|
|
30014
30161
|
title: "Languages",
|
|
@@ -30154,7 +30301,7 @@ var init_PageMap = __esm({
|
|
|
30154
30301
|
// src/internal/hooks/usePageMapper.tsx
|
|
30155
30302
|
function usePageMapper() {
|
|
30156
30303
|
const page = useLayoutDataStore((st) => st.page);
|
|
30157
|
-
const closeDialog = (0,
|
|
30304
|
+
const closeDialog = (0, import_react101.useCallback)(() => {
|
|
30158
30305
|
useLayoutStore.setState({ isDialogAnimating: true });
|
|
30159
30306
|
setTimeout(() => {
|
|
30160
30307
|
useLayoutStore.setState({
|
|
@@ -30166,14 +30313,14 @@ function usePageMapper() {
|
|
|
30166
30313
|
});
|
|
30167
30314
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
30168
30315
|
}, []);
|
|
30169
|
-
const openDialog = (0,
|
|
30316
|
+
const openDialog = (0, import_react101.useCallback)((pageItem) => {
|
|
30170
30317
|
useLayoutStore.setState({
|
|
30171
|
-
dialogContent: /* @__PURE__ */ (0,
|
|
30318
|
+
dialogContent: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(pageItem.component, {}),
|
|
30172
30319
|
isDialogOpen: true
|
|
30173
30320
|
// isDialogAnimating: true
|
|
30174
30321
|
});
|
|
30175
30322
|
}, []);
|
|
30176
|
-
(0,
|
|
30323
|
+
(0, import_react101.useEffect)(() => {
|
|
30177
30324
|
if (page === null) return closeDialog();
|
|
30178
30325
|
const pageItem = PAGE_MAP[page];
|
|
30179
30326
|
if (!pageItem) {
|
|
@@ -30184,15 +30331,15 @@ function usePageMapper() {
|
|
|
30184
30331
|
openDialog(pageItem);
|
|
30185
30332
|
}, [page, closeDialog, openDialog]);
|
|
30186
30333
|
}
|
|
30187
|
-
var
|
|
30334
|
+
var import_react101, import_jsx_runtime131, CLEAR_DIALOG_TIMEOUT;
|
|
30188
30335
|
var init_usePageMapper = __esm({
|
|
30189
30336
|
"src/internal/hooks/usePageMapper.tsx"() {
|
|
30190
|
-
|
|
30337
|
+
import_react101 = require("react");
|
|
30191
30338
|
init_PageMap();
|
|
30192
30339
|
init_constants();
|
|
30193
30340
|
init_useLayoutDataStore();
|
|
30194
30341
|
init_useLayoutStore();
|
|
30195
|
-
|
|
30342
|
+
import_jsx_runtime131 = require("react/jsx-runtime");
|
|
30196
30343
|
CLEAR_DIALOG_TIMEOUT = MAIN_DIALOG_ANIMATION_SPEED + 5;
|
|
30197
30344
|
}
|
|
30198
30345
|
});
|
|
@@ -30203,24 +30350,24 @@ function useSettingsNotifications() {
|
|
|
30203
30350
|
const providers = import_auth25.jwtTokenManager.getProviders();
|
|
30204
30351
|
const hasEmail = providers.includes("email");
|
|
30205
30352
|
const { data: userProfile = null } = useUserProfile();
|
|
30206
|
-
(0,
|
|
30353
|
+
(0, import_react102.useEffect)(() => {
|
|
30207
30354
|
const isKYCVerified = userProfile?.kycDetails?.kycStatus === "verified";
|
|
30208
30355
|
setSettingsNotifications({
|
|
30209
30356
|
...COMPLETE_KYC_PROGRESS,
|
|
30210
30357
|
status: isKYCVerified ? "resolved" : "active"
|
|
30211
30358
|
});
|
|
30212
30359
|
}, [userProfile, setSettingsNotifications]);
|
|
30213
|
-
(0,
|
|
30360
|
+
(0, import_react102.useEffect)(() => {
|
|
30214
30361
|
setSettingsNotifications({
|
|
30215
30362
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
30216
30363
|
status: hasEmail ? "resolved" : "active"
|
|
30217
30364
|
});
|
|
30218
30365
|
}, [hasEmail, setSettingsNotifications]);
|
|
30219
30366
|
}
|
|
30220
|
-
var
|
|
30367
|
+
var import_react102, EMAIL_NOT_CONNECTED_NOTIFICATION, COMPLETE_KYC_PROGRESS;
|
|
30221
30368
|
var init_useSettingsNotifications = __esm({
|
|
30222
30369
|
"src/internal/hooks/useSettingsNotifications.ts"() {
|
|
30223
|
-
|
|
30370
|
+
import_react102 = require("react");
|
|
30224
30371
|
init_auth();
|
|
30225
30372
|
init_useLayoutDataStore();
|
|
30226
30373
|
init_useUserProfile();
|
|
@@ -30243,7 +30390,7 @@ var init_package = __esm({
|
|
|
30243
30390
|
"package.json"() {
|
|
30244
30391
|
package_default = {
|
|
30245
30392
|
name: "@embarkai/ui-kit",
|
|
30246
|
-
version: "0.4.
|
|
30393
|
+
version: "0.4.121",
|
|
30247
30394
|
description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
|
|
30248
30395
|
type: "module",
|
|
30249
30396
|
main: "./dist/index.cjs",
|
|
@@ -30401,15 +30548,15 @@ function Footer() {
|
|
|
30401
30548
|
useLayoutStore.getState().setIsDialogForced(false);
|
|
30402
30549
|
}
|
|
30403
30550
|
});
|
|
30404
|
-
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */ (0,
|
|
30405
|
-
return /* @__PURE__ */ (0,
|
|
30551
|
+
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */ (0, import_jsx_runtime132.jsx)("div", { className: "flex-none w-4 h-4 rounded-full flex items-center justify-center bg-[var(--ui-kit-primary)]", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)("span", { className: "text-[var(--ui-kit-fg-inverted)] text-xs font-bold", children: chainConfig.name.charAt(0) }) }));
|
|
30552
|
+
return /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(
|
|
30406
30553
|
"div",
|
|
30407
30554
|
{
|
|
30408
30555
|
style: { borderTop: "1px solid var(--ui-kit-bd)" },
|
|
30409
30556
|
className: "relative w-full flex flex-col items-center p-[var(--ui-kit-pd)] pb-5",
|
|
30410
30557
|
children: [
|
|
30411
|
-
/* @__PURE__ */ (0,
|
|
30412
|
-
/* @__PURE__ */ (0,
|
|
30558
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsxs)("div", { className: cn2("w-full flex justify-between", !!address ? "justify-between" : "justify-center"), children: [
|
|
30559
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(
|
|
30413
30560
|
Button,
|
|
30414
30561
|
{
|
|
30415
30562
|
ref: (inst) => onboarder.registerElement(FOOTER_ONBOARDING_CHAIN_BUTTON, inst),
|
|
@@ -30425,12 +30572,12 @@ function Footer() {
|
|
|
30425
30572
|
useLayoutDataStore.getState().setPage("chain" /* CHAIN */);
|
|
30426
30573
|
},
|
|
30427
30574
|
children: [
|
|
30428
|
-
/* @__PURE__ */ (0,
|
|
30429
|
-
/* @__PURE__ */ (0,
|
|
30575
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(ChainIcon, { className: "flex-none w-6 h-6" }),
|
|
30576
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)("span", { className: "text-xs font-bold", children: chainConfig.name || "EmbarkAI Wallet" })
|
|
30430
30577
|
]
|
|
30431
30578
|
}
|
|
30432
30579
|
),
|
|
30433
|
-
!!address ? /* @__PURE__ */ (0,
|
|
30580
|
+
!!address ? /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(
|
|
30434
30581
|
Button,
|
|
30435
30582
|
{
|
|
30436
30583
|
ref: (inst) => onboarder.registerElement(FOOTER_ONBOARDING_LOGOUT_BUTTON, inst),
|
|
@@ -30440,13 +30587,13 @@ function Footer() {
|
|
|
30440
30587
|
onClick: () => disconnect(address),
|
|
30441
30588
|
disabled: isDisconnecting || isDialogForced,
|
|
30442
30589
|
children: [
|
|
30443
|
-
/* @__PURE__ */ (0,
|
|
30444
|
-
isDisconnecting ? /* @__PURE__ */ (0,
|
|
30590
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)("span", { children: t("passport:auth.logout") }),
|
|
30591
|
+
isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_lucide_react84.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_lucide_react84.LogOut, { className: "w-4 h-4" })
|
|
30445
30592
|
]
|
|
30446
30593
|
}
|
|
30447
30594
|
) : null
|
|
30448
30595
|
] }),
|
|
30449
|
-
/* @__PURE__ */ (0,
|
|
30596
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
30450
30597
|
"span",
|
|
30451
30598
|
{
|
|
30452
30599
|
className: cn2(
|
|
@@ -30460,7 +30607,7 @@ function Footer() {
|
|
|
30460
30607
|
}
|
|
30461
30608
|
);
|
|
30462
30609
|
}
|
|
30463
|
-
var import_react_query60,
|
|
30610
|
+
var import_react_query60, import_lucide_react84, import_jsx_runtime132, FOOTER_ONBOARDING_CHAIN_BUTTON, FOOTER_ONBOARDING_LOGOUT_BUTTON, FOOTER_TOUR;
|
|
30464
30611
|
var init_Footer = __esm({
|
|
30465
30612
|
"src/internal/components/Footer/Footer.tsx"() {
|
|
30466
30613
|
init_package();
|
|
@@ -30470,7 +30617,7 @@ var init_Footer = __esm({
|
|
|
30470
30617
|
init_i18n();
|
|
30471
30618
|
init_useSafeDisconnect();
|
|
30472
30619
|
import_react_query60 = require("@tanstack/react-query");
|
|
30473
|
-
|
|
30620
|
+
import_lucide_react84 = require("lucide-react");
|
|
30474
30621
|
init_auth();
|
|
30475
30622
|
init_base3();
|
|
30476
30623
|
init_useLayoutDataStore();
|
|
@@ -30480,7 +30627,7 @@ var init_Footer = __esm({
|
|
|
30480
30627
|
init_constants5();
|
|
30481
30628
|
init_Onboarding();
|
|
30482
30629
|
init_button();
|
|
30483
|
-
|
|
30630
|
+
import_jsx_runtime132 = require("react/jsx-runtime");
|
|
30484
30631
|
FOOTER_ONBOARDING_CHAIN_BUTTON = "embark-footer-chain-button";
|
|
30485
30632
|
FOOTER_ONBOARDING_LOGOUT_BUTTON = "embark-footer-logout-button";
|
|
30486
30633
|
FOOTER_TOUR = [
|
|
@@ -30523,6 +30670,7 @@ var init_onborading_setup = __esm({
|
|
|
30523
30670
|
init_SendMenu2();
|
|
30524
30671
|
init_SettingsMenu2();
|
|
30525
30672
|
init_TransactionsMenu2();
|
|
30673
|
+
init_UserActivityMenu2();
|
|
30526
30674
|
EMBARKAI_HEADER_ONBOARDING_ID = "embark-header-user-section";
|
|
30527
30675
|
EMBARKAI_HEADER_TOUR_BUTTON_ID = "embark-header-tour-button-section";
|
|
30528
30676
|
ONBOARDING_TOURS = {
|
|
@@ -30540,6 +30688,7 @@ var init_onborading_setup = __esm({
|
|
|
30540
30688
|
...MAIN_MENU_TOUR,
|
|
30541
30689
|
...FOOTER_TOUR
|
|
30542
30690
|
],
|
|
30691
|
+
["user-activity" /* USER_ACTIVITY */]: () => USER_ACTIVITY_MENU_TOUR,
|
|
30543
30692
|
["settings" /* SETTINGS */]: () => SETTINGS_MENU_TOUR,
|
|
30544
30693
|
["buy" /* BUY */]: () => BUY_MENU_BINANCE_TOUR,
|
|
30545
30694
|
["send" /* SEND */]: () => {
|
|
@@ -30578,11 +30727,11 @@ function Header() {
|
|
|
30578
30727
|
const embarkPage = useLayoutDataStore((st) => st.page);
|
|
30579
30728
|
const isOnboardingTourAvailable = useOnboardingStore((st) => st.isTourAvailable);
|
|
30580
30729
|
const proMode = useProMode();
|
|
30581
|
-
const [proToast, setProToast] = (0,
|
|
30582
|
-
const [copied, setCopied] = (0,
|
|
30583
|
-
const clickCountRef = (0,
|
|
30584
|
-
const clickTimerRef = (0,
|
|
30585
|
-
const handleAvatarClick = (0,
|
|
30730
|
+
const [proToast, setProToast] = (0, import_react103.useState)(false);
|
|
30731
|
+
const [copied, setCopied] = (0, import_react103.useState)(false);
|
|
30732
|
+
const clickCountRef = (0, import_react103.useRef)(0);
|
|
30733
|
+
const clickTimerRef = (0, import_react103.useRef)(null);
|
|
30734
|
+
const handleAvatarClick = (0, import_react103.useCallback)(() => {
|
|
30586
30735
|
clickCountRef.current += 1;
|
|
30587
30736
|
if (clickTimerRef.current) {
|
|
30588
30737
|
clearTimeout(clickTimerRef.current);
|
|
@@ -30604,35 +30753,35 @@ function Header() {
|
|
|
30604
30753
|
const avatar = profile?.avatar || import_auth25.jwtTokenManager.getAvatar();
|
|
30605
30754
|
const displayName = profile?.nicknameDisplay || profile?.displayName || import_auth25.jwtTokenManager.getDisplayName();
|
|
30606
30755
|
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || null;
|
|
30607
|
-
return /* @__PURE__ */ (0,
|
|
30756
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(
|
|
30608
30757
|
"div",
|
|
30609
30758
|
{
|
|
30610
30759
|
ref: (inst) => onboarder.registerElement(EMBARKAI_HEADER_ONBOARDING_ID, inst),
|
|
30611
30760
|
style: { borderBottom: "1px solid var(--ui-kit-bd)" },
|
|
30612
30761
|
className: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)] pt-5",
|
|
30613
30762
|
children: [
|
|
30614
|
-
/* @__PURE__ */ (0,
|
|
30615
|
-
/* @__PURE__ */ (0,
|
|
30763
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
30764
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(
|
|
30616
30765
|
"div",
|
|
30617
30766
|
{
|
|
30618
30767
|
className: "relative flex-none w-12 h-12 flex items-center justify-center cursor-pointer select-none",
|
|
30619
30768
|
onClick: handleAvatarClick,
|
|
30620
30769
|
children: [
|
|
30621
|
-
proMode && /* @__PURE__ */ (0,
|
|
30622
|
-
avatar ? /* @__PURE__ */ (0,
|
|
30770
|
+
proMode && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("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" }),
|
|
30771
|
+
avatar ? /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("img", { src: avatar, alt: displayName, className: "w-full h-full object-cover rounded-full" }) : /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(lumia_default2, { className: "w-12 h-12" })
|
|
30623
30772
|
]
|
|
30624
30773
|
}
|
|
30625
30774
|
),
|
|
30626
|
-
/* @__PURE__ */ (0,
|
|
30775
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(
|
|
30627
30776
|
"div",
|
|
30628
30777
|
{
|
|
30629
30778
|
style: { width: "calc(100% - 48px - var(--ui-kit-gap))" },
|
|
30630
30779
|
className: "flex-1 flex flex-col justify-center gap-1",
|
|
30631
30780
|
children: [
|
|
30632
|
-
isProfileLoading && /* @__PURE__ */ (0,
|
|
30633
|
-
!!address && !isProfileLoading && !!profile && /* @__PURE__ */ (0,
|
|
30634
|
-
/* @__PURE__ */ (0,
|
|
30635
|
-
/* @__PURE__ */ (0,
|
|
30781
|
+
isProfileLoading && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_lucide_react85.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
30782
|
+
!!address && !isProfileLoading && !!profile && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_jsx_runtime133.Fragment, { children: [
|
|
30783
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
30784
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
30636
30785
|
"span",
|
|
30637
30786
|
{
|
|
30638
30787
|
className: cn2(
|
|
@@ -30642,21 +30791,21 @@ function Header() {
|
|
|
30642
30791
|
children: displayName || config.current?.ui?.title || "EmbarkAI"
|
|
30643
30792
|
}
|
|
30644
30793
|
),
|
|
30645
|
-
/* @__PURE__ */ (0,
|
|
30794
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(KYCStatus, {})
|
|
30646
30795
|
] }),
|
|
30647
|
-
/* @__PURE__ */ (0,
|
|
30796
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(BalanceView, {})
|
|
30648
30797
|
] })
|
|
30649
30798
|
]
|
|
30650
30799
|
}
|
|
30651
30800
|
)
|
|
30652
30801
|
] }),
|
|
30653
|
-
!!address && /* @__PURE__ */ (0,
|
|
30654
|
-
/* @__PURE__ */ (0,
|
|
30655
|
-
!!ChainIcon ? /* @__PURE__ */ (0,
|
|
30656
|
-
/* @__PURE__ */ (0,
|
|
30802
|
+
!!address && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "w-full flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
30803
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "flex items-center w-fit text-[10px] px-2 leading-6 text-[var(--ui-kit-fg)] gap-2", children: [
|
|
30804
|
+
!!ChainIcon ? /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(ChainIcon, { className: "flex-none w-6 h-6" }) : /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { className: "flex-none w-6 h-6 rounded-full flex items-center justify-center bg-[var(--ui-kit-primary)]", children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { className: "text-[var(--ui-kit-fg-inverted)] text-sm font-bold", children: chainConfig.name.charAt(0) }) }),
|
|
30805
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { className: cn2("transition-colors", copied && "text-[var(--ui-kit-bg-success)]"), children: formatAddress3(address) })
|
|
30657
30806
|
] }),
|
|
30658
|
-
/* @__PURE__ */ (0,
|
|
30659
|
-
/* @__PURE__ */ (0,
|
|
30807
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "w-fit flex items-center", children: [
|
|
30808
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
30660
30809
|
Button,
|
|
30661
30810
|
{
|
|
30662
30811
|
size: "small",
|
|
@@ -30667,10 +30816,10 @@ function Header() {
|
|
|
30667
30816
|
setCopied(true);
|
|
30668
30817
|
setTimeout(() => setCopied(false), 1500);
|
|
30669
30818
|
},
|
|
30670
|
-
children: copied ? /* @__PURE__ */ (0,
|
|
30819
|
+
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(PositiveIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_lucide_react85.Copy, { className: "w-4 h-4" })
|
|
30671
30820
|
}
|
|
30672
30821
|
),
|
|
30673
|
-
!!isOnboardingTourAvailable && ONBOARDING_TOURS[embarkPage] && /* @__PURE__ */ (0,
|
|
30822
|
+
!!isOnboardingTourAvailable && ONBOARDING_TOURS[embarkPage] && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
30674
30823
|
Button,
|
|
30675
30824
|
{
|
|
30676
30825
|
ref: (inst) => onboarder.registerElement(EMBARKAI_HEADER_TOUR_BUTTON_ID, inst),
|
|
@@ -30678,25 +30827,25 @@ function Header() {
|
|
|
30678
30827
|
variant: "ghost",
|
|
30679
30828
|
className: "text-[10px] px-2",
|
|
30680
30829
|
onClick: () => onboarder.startTour(ONBOARDING_TOURS[embarkPage]({ config: config.current })),
|
|
30681
|
-
children: /* @__PURE__ */ (0,
|
|
30830
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_lucide_react85.CircleQuestionMarkIcon, { className: "w-4 h-4" })
|
|
30682
30831
|
}
|
|
30683
30832
|
)
|
|
30684
30833
|
] })
|
|
30685
30834
|
] }),
|
|
30686
|
-
proToast && /* @__PURE__ */ (0,
|
|
30835
|
+
proToast && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { className: "text-xs text-center text-[var(--ui-kit-primary)] font-medium animate-pulse", children: "Pro Mode activated" })
|
|
30687
30836
|
]
|
|
30688
30837
|
}
|
|
30689
30838
|
);
|
|
30690
30839
|
}
|
|
30691
|
-
var
|
|
30840
|
+
var import_lucide_react85, import_react103, import_jsx_runtime133;
|
|
30692
30841
|
var init_Header = __esm({
|
|
30693
30842
|
"src/internal/components/Header/Header.tsx"() {
|
|
30694
30843
|
init_lumia2();
|
|
30695
30844
|
init_networks3();
|
|
30696
30845
|
init_ProviderContext();
|
|
30697
30846
|
init_SessionContext();
|
|
30698
|
-
|
|
30699
|
-
|
|
30847
|
+
import_lucide_react85 = require("lucide-react");
|
|
30848
|
+
import_react103 = require("react");
|
|
30700
30849
|
init_icons();
|
|
30701
30850
|
init_auth();
|
|
30702
30851
|
init_useLayoutDataStore();
|
|
@@ -30708,7 +30857,7 @@ var init_Header = __esm({
|
|
|
30708
30857
|
init_Onboarding();
|
|
30709
30858
|
init_button();
|
|
30710
30859
|
init_onborading_setup();
|
|
30711
|
-
|
|
30860
|
+
import_jsx_runtime133 = require("react/jsx-runtime");
|
|
30712
30861
|
}
|
|
30713
30862
|
});
|
|
30714
30863
|
|
|
@@ -30731,7 +30880,7 @@ function useDecideContentStyles() {
|
|
|
30731
30880
|
style: (0, import_lodash_es17.merge)({}, mobileStyles)
|
|
30732
30881
|
};
|
|
30733
30882
|
}
|
|
30734
|
-
var DialogPrimitive, import_lodash_es17,
|
|
30883
|
+
var DialogPrimitive, import_lodash_es17, import_lucide_react86, import_react104, import_jsx_runtime134, Dialog, DialogPortal, DialogOverlay, CONTENT_BG_SETUP, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription;
|
|
30735
30884
|
var init_dialog = __esm({
|
|
30736
30885
|
"src/internal/components/ui/dialog.tsx"() {
|
|
30737
30886
|
init_utils();
|
|
@@ -30739,16 +30888,16 @@ var init_dialog = __esm({
|
|
|
30739
30888
|
init_i18n();
|
|
30740
30889
|
DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
30741
30890
|
import_lodash_es17 = require("lodash-es");
|
|
30742
|
-
|
|
30743
|
-
|
|
30891
|
+
import_lucide_react86 = require("lucide-react");
|
|
30892
|
+
import_react104 = require("react");
|
|
30744
30893
|
init_useLayoutDataStore();
|
|
30745
30894
|
init_useLayoutStore();
|
|
30746
30895
|
init_button();
|
|
30747
|
-
|
|
30896
|
+
import_jsx_runtime134 = require("react/jsx-runtime");
|
|
30748
30897
|
Dialog = DialogPrimitive.Root;
|
|
30749
30898
|
DialogPortal = DialogPrimitive.Portal;
|
|
30750
|
-
DialogOverlay = (0,
|
|
30751
|
-
({ className, closing, ...props }, ref) => /* @__PURE__ */ (0,
|
|
30899
|
+
DialogOverlay = (0, import_react104.forwardRef)(
|
|
30900
|
+
({ className, closing, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
|
|
30752
30901
|
DialogPrimitive.Overlay,
|
|
30753
30902
|
{
|
|
30754
30903
|
ref,
|
|
@@ -30769,7 +30918,7 @@ var init_dialog = __esm({
|
|
|
30769
30918
|
border: "1px solid var(--ui-kit-bd)",
|
|
30770
30919
|
boxShadow: "var(--ui-kit-shadow, 0px 4px 10px var(--ui-kit-shadow-c, rgba(0, 0, 0, 0.1)))"
|
|
30771
30920
|
};
|
|
30772
|
-
DialogContent = (0,
|
|
30921
|
+
DialogContent = (0, import_react104.forwardRef)(
|
|
30773
30922
|
({ className, children, colorMode, ...props }, ref) => {
|
|
30774
30923
|
const { t, i18n } = useT();
|
|
30775
30924
|
const isSessionLoading = useSession((st) => st.isLoading);
|
|
@@ -30780,7 +30929,7 @@ var init_dialog = __esm({
|
|
|
30780
30929
|
const { isMobileView, isClosing, style } = useDecideContentStyles();
|
|
30781
30930
|
const animationCnPrefix = isMobileView ? "animate-mobile-dialog" : "animate-dialog";
|
|
30782
30931
|
const dialogAnimationCn = isClosing ? `${animationCnPrefix}-out` : `${animationCnPrefix}-in`;
|
|
30783
|
-
return /* @__PURE__ */ (0,
|
|
30932
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(DialogPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(
|
|
30784
30933
|
"div",
|
|
30785
30934
|
{
|
|
30786
30935
|
"data-purpose": "embarkai-ui-container",
|
|
@@ -30788,16 +30937,20 @@ var init_dialog = __esm({
|
|
|
30788
30937
|
"data-current-theme-mode": colorMode,
|
|
30789
30938
|
style: { ...style, outline: "none" },
|
|
30790
30939
|
children: [
|
|
30791
|
-
/* @__PURE__ */ (0,
|
|
30792
|
-
/* @__PURE__ */ (0,
|
|
30940
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(DialogOverlay, { closing: isClosing }),
|
|
30941
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
|
|
30793
30942
|
"div",
|
|
30794
30943
|
{
|
|
30795
30944
|
className: cn2(
|
|
30945
|
+
"embarkai-ui-scope-content",
|
|
30946
|
+
// used only as selector for targeted --ui-kit-content-maw set, no styles applied
|
|
30796
30947
|
"fixed inset-0 z-[9999] flex items-center justify-center pointer-events-none outline-none",
|
|
30797
30948
|
dialogAnimationCn,
|
|
30798
|
-
isMobileView ?
|
|
30949
|
+
isMobileView ? null : "transition-[width] duration-500",
|
|
30950
|
+
// allows to embuff embark content menu via --ui-kit-content-maw
|
|
30951
|
+
isMobileView ? "items-end w-[100dvw] h-[100dvh]" : "items-center w-[var(--ui-kit-content-maw,var(--ui-kit-maw))] mx-auto"
|
|
30799
30952
|
),
|
|
30800
|
-
children: /* @__PURE__ */ (0,
|
|
30953
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(
|
|
30801
30954
|
DialogPrimitive.Content,
|
|
30802
30955
|
{
|
|
30803
30956
|
ref,
|
|
@@ -30807,13 +30960,14 @@ var init_dialog = __esm({
|
|
|
30807
30960
|
"pointer-events-auto",
|
|
30808
30961
|
"p-0 gap-0 text-[var(--ui-kit-fg)]",
|
|
30809
30962
|
"rounded-[var(--ui-kit-bdrs)] overflow-hidden",
|
|
30810
|
-
|
|
30963
|
+
"w-full",
|
|
30964
|
+
// isMobileView ? 'w-[100dvw]' : 'w-[var(--ui-kit-maw)]',
|
|
30811
30965
|
className
|
|
30812
30966
|
),
|
|
30813
30967
|
...props,
|
|
30814
30968
|
children: [
|
|
30815
30969
|
children,
|
|
30816
|
-
!isDialogForced && /* @__PURE__ */ (0,
|
|
30970
|
+
!isDialogForced && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(
|
|
30817
30971
|
"div",
|
|
30818
30972
|
{
|
|
30819
30973
|
className: cn2(
|
|
@@ -30821,7 +30975,7 @@ var init_dialog = __esm({
|
|
|
30821
30975
|
"absolute right-[var(--ui-kit-pd)] top-[var(--ui-kit-pd)]"
|
|
30822
30976
|
),
|
|
30823
30977
|
children: [
|
|
30824
|
-
!isSessionLoading && /* @__PURE__ */ (0,
|
|
30978
|
+
!isSessionLoading && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(
|
|
30825
30979
|
Button,
|
|
30826
30980
|
{
|
|
30827
30981
|
variant: "ghost",
|
|
@@ -30829,12 +30983,12 @@ var init_dialog = __esm({
|
|
|
30829
30983
|
className: "relative w-4 h-4",
|
|
30830
30984
|
onClick: () => setPage("languages" /* LANGUAGES */),
|
|
30831
30985
|
children: [
|
|
30832
|
-
/* @__PURE__ */ (0,
|
|
30833
|
-
/* @__PURE__ */ (0,
|
|
30986
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)("span", { className: "sr-only", children: t("passport:common.language") }),
|
|
30987
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)("span", { className: "w-4 h-4 leading-4 block text-[10px] font-bold", children: getLanguageIcon(i18n.resolvedLanguage) || i18n.resolvedLanguage?.toUpperCase() })
|
|
30834
30988
|
]
|
|
30835
30989
|
}
|
|
30836
30990
|
),
|
|
30837
|
-
isSettings && /* @__PURE__ */ (0,
|
|
30991
|
+
isSettings && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(
|
|
30838
30992
|
Button,
|
|
30839
30993
|
{
|
|
30840
30994
|
variant: "ghost",
|
|
@@ -30842,9 +30996,9 @@ var init_dialog = __esm({
|
|
|
30842
30996
|
className: "relative w-4 h-4",
|
|
30843
30997
|
onClick: () => setPage("settings" /* SETTINGS */),
|
|
30844
30998
|
children: [
|
|
30845
|
-
/* @__PURE__ */ (0,
|
|
30846
|
-
/* @__PURE__ */ (0,
|
|
30847
|
-
!!settingsNotifications.length && /* @__PURE__ */ (0,
|
|
30999
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)("span", { className: "sr-only", children: t("passport:common.settings") }),
|
|
31000
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_lucide_react86.SlidersHorizontal, { className: "w-4 h-4" }),
|
|
31001
|
+
!!settingsNotifications.length && /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
|
|
30848
31002
|
"div",
|
|
30849
31003
|
{
|
|
30850
31004
|
className: cn2(
|
|
@@ -30858,9 +31012,9 @@ var init_dialog = __esm({
|
|
|
30858
31012
|
]
|
|
30859
31013
|
}
|
|
30860
31014
|
),
|
|
30861
|
-
/* @__PURE__ */ (0,
|
|
30862
|
-
/* @__PURE__ */ (0,
|
|
30863
|
-
/* @__PURE__ */ (0,
|
|
31015
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Button, { variant: "ghost", size: "icon", className: "w-4 h-4", children: [
|
|
31016
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_lucide_react86.X, { className: "h-4 w-4" }),
|
|
31017
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)("span", { className: "sr-only", children: t("passport:common.close") })
|
|
30864
31018
|
] }) })
|
|
30865
31019
|
]
|
|
30866
31020
|
}
|
|
@@ -30876,11 +31030,11 @@ var init_dialog = __esm({
|
|
|
30876
31030
|
}
|
|
30877
31031
|
);
|
|
30878
31032
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
30879
|
-
DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
31033
|
+
DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)("div", { className: cn2("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
|
|
30880
31034
|
DialogHeader.displayName = "DialogHeader";
|
|
30881
|
-
DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
31035
|
+
DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)("div", { className: cn2("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
30882
31036
|
DialogFooter.displayName = "DialogFooter";
|
|
30883
|
-
DialogTitle = (0,
|
|
31037
|
+
DialogTitle = (0, import_react104.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
|
|
30884
31038
|
DialogPrimitive.Title,
|
|
30885
31039
|
{
|
|
30886
31040
|
ref,
|
|
@@ -30889,17 +31043,17 @@ var init_dialog = __esm({
|
|
|
30889
31043
|
}
|
|
30890
31044
|
));
|
|
30891
31045
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
30892
|
-
DialogDescription = (0,
|
|
31046
|
+
DialogDescription = (0, import_react104.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(DialogPrimitive.Description, { ref, className: cn2("text-sm text-muted-foreground", className), ...props }));
|
|
30893
31047
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
30894
31048
|
}
|
|
30895
31049
|
});
|
|
30896
31050
|
|
|
30897
31051
|
// src/internal/components/ui/visually-hidden.tsx
|
|
30898
|
-
var
|
|
31052
|
+
var import_jsx_runtime135, VisuallyHidden;
|
|
30899
31053
|
var init_visually_hidden = __esm({
|
|
30900
31054
|
"src/internal/components/ui/visually-hidden.tsx"() {
|
|
30901
|
-
|
|
30902
|
-
VisuallyHidden = ({ children }) => /* @__PURE__ */ (0,
|
|
31055
|
+
import_jsx_runtime135 = require("react/jsx-runtime");
|
|
31056
|
+
VisuallyHidden = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)("span", { className: "sr-only absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0", children });
|
|
30903
31057
|
}
|
|
30904
31058
|
});
|
|
30905
31059
|
|
|
@@ -30912,7 +31066,7 @@ function Dialog2() {
|
|
|
30912
31066
|
const { colorMode, maxScrollHeight, isDialogOpen, dialogContent, isDialogForced } = useLayoutStore();
|
|
30913
31067
|
const page = useLayoutDataStore((st) => st.page);
|
|
30914
31068
|
const transitionPageHeight = useLayoutDataStore((st) => st.transitionPageHeight);
|
|
30915
|
-
(0,
|
|
31069
|
+
(0, import_react106.useEffect)(() => useLayoutStore.setState({ isSettings: !!session }), [session]);
|
|
30916
31070
|
usePageMapper();
|
|
30917
31071
|
useAutoConnect();
|
|
30918
31072
|
useBackupStatusChanges();
|
|
@@ -30921,7 +31075,7 @@ function Dialog2() {
|
|
|
30921
31075
|
useListenIframeAuthEvents();
|
|
30922
31076
|
useAllowExternalModalsScroll(isDialogOpen);
|
|
30923
31077
|
const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
|
|
30924
|
-
return /* @__PURE__ */ (0,
|
|
31078
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
|
|
30925
31079
|
Dialog,
|
|
30926
31080
|
{
|
|
30927
31081
|
open: isDialogOpen,
|
|
@@ -30933,25 +31087,25 @@ function Dialog2() {
|
|
|
30933
31087
|
setPage(null);
|
|
30934
31088
|
}
|
|
30935
31089
|
},
|
|
30936
|
-
children: /* @__PURE__ */ (0,
|
|
31090
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(
|
|
30937
31091
|
DialogContent,
|
|
30938
31092
|
{
|
|
30939
31093
|
ref: (inst) => onboarder.registerElement(EMBARKAI_DIALOG_ONBOARDING_ID, inst),
|
|
30940
31094
|
colorMode,
|
|
30941
31095
|
className,
|
|
30942
31096
|
children: [
|
|
30943
|
-
/* @__PURE__ */ (0,
|
|
30944
|
-
/* @__PURE__ */ (0,
|
|
30945
|
-
!isHeaderHidden && /* @__PURE__ */ (0,
|
|
30946
|
-
/* @__PURE__ */ (0,
|
|
30947
|
-
|
|
31097
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DialogTitle, { children: "embarkAI" }) }),
|
|
31098
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DialogDescription, { className: "sr-only", children: "embarkAI wallet" }),
|
|
31099
|
+
!isHeaderHidden && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Header, {}),
|
|
31100
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_react105.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
|
|
31101
|
+
import_react105.motion.div,
|
|
30948
31102
|
{
|
|
30949
31103
|
style: { overflow: "hidden" },
|
|
30950
31104
|
initial: { opacity: 0, height: transitionPageHeight },
|
|
30951
31105
|
animate: { opacity: 1, height: "auto" },
|
|
30952
31106
|
exit: { opacity: 0, height: transitionPageHeight },
|
|
30953
31107
|
transition: Y_ANIMATION_SETUP,
|
|
30954
|
-
children: /* @__PURE__ */ (0,
|
|
31108
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
|
|
30955
31109
|
"div",
|
|
30956
31110
|
{
|
|
30957
31111
|
ref: (inst) => onboarder.registerElement(`${EMBARKAI_DIALOG_ONBOARDING_ID}-${page}`, inst),
|
|
@@ -30966,20 +31120,20 @@ function Dialog2() {
|
|
|
30966
31120
|
},
|
|
30967
31121
|
page || "empty"
|
|
30968
31122
|
) }),
|
|
30969
|
-
/* @__PURE__ */ (0,
|
|
31123
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Footer, {})
|
|
30970
31124
|
]
|
|
30971
31125
|
}
|
|
30972
31126
|
)
|
|
30973
31127
|
}
|
|
30974
31128
|
);
|
|
30975
31129
|
}
|
|
30976
|
-
var
|
|
31130
|
+
var import_react105, import_react106, import_jsx_runtime136;
|
|
30977
31131
|
var init_Dialog = __esm({
|
|
30978
31132
|
"src/internal/components/Dialog/Dialog.tsx"() {
|
|
30979
31133
|
init_ProviderContext();
|
|
30980
31134
|
init_SessionContext();
|
|
30981
|
-
|
|
30982
|
-
|
|
31135
|
+
import_react105 = require("motion/react");
|
|
31136
|
+
import_react106 = require("react");
|
|
30983
31137
|
init_constants();
|
|
30984
31138
|
init_useAllowExternalModalsScroll();
|
|
30985
31139
|
init_useAutoConnect();
|
|
@@ -30995,7 +31149,7 @@ var init_Dialog = __esm({
|
|
|
30995
31149
|
init_Onboarding();
|
|
30996
31150
|
init_dialog();
|
|
30997
31151
|
init_visually_hidden();
|
|
30998
|
-
|
|
31152
|
+
import_jsx_runtime136 = require("react/jsx-runtime");
|
|
30999
31153
|
}
|
|
31000
31154
|
});
|
|
31001
31155
|
|
|
@@ -31014,12 +31168,12 @@ function DirectWalletHandler() {
|
|
|
31014
31168
|
const externalConnectorName = useExternalWalletStore((st) => st.connectorName);
|
|
31015
31169
|
const isExternalConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
31016
31170
|
const { address, isConnected, chainId, connector } = (0, import_wagmi8.useConnection)();
|
|
31017
|
-
(0,
|
|
31171
|
+
(0, import_react107.useEffect)(() => {
|
|
31018
31172
|
const { setConfigMode, setActiveMode } = useExternalWalletStore.getState();
|
|
31019
31173
|
setConfigMode(walletMode);
|
|
31020
31174
|
if (walletMode !== "both") setActiveMode(walletMode);
|
|
31021
31175
|
}, [walletMode]);
|
|
31022
|
-
(0,
|
|
31176
|
+
(0, import_react107.useEffect)(() => {
|
|
31023
31177
|
if ((!!externalAddress || isExternalConnected) && !isConnected) {
|
|
31024
31178
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
31025
31179
|
return;
|
|
@@ -31041,10 +31195,10 @@ function DirectWalletHandler() {
|
|
|
31041
31195
|
]);
|
|
31042
31196
|
return null;
|
|
31043
31197
|
}
|
|
31044
|
-
var
|
|
31198
|
+
var import_react107, import_wagmi8;
|
|
31045
31199
|
var init_DirectWalletHandler = __esm({
|
|
31046
31200
|
"src/internal/components/DirectWalletHandler.tsx"() {
|
|
31047
|
-
|
|
31201
|
+
import_react107 = require("react");
|
|
31048
31202
|
import_wagmi8 = require("wagmi");
|
|
31049
31203
|
init_ProviderContext();
|
|
31050
31204
|
init_useExternalWalletStore();
|
|
@@ -31052,14 +31206,14 @@ var init_DirectWalletHandler = __esm({
|
|
|
31052
31206
|
});
|
|
31053
31207
|
|
|
31054
31208
|
// src/internal/components/TssManager.tsx
|
|
31055
|
-
var
|
|
31209
|
+
var import_react108, TssManagerWithRef;
|
|
31056
31210
|
var init_TssManager = __esm({
|
|
31057
31211
|
"src/internal/components/TssManager.tsx"() {
|
|
31058
31212
|
init_SessionContext();
|
|
31059
|
-
|
|
31213
|
+
import_react108 = __toESM(require("react"), 1);
|
|
31060
31214
|
init_auth();
|
|
31061
31215
|
init_clients();
|
|
31062
|
-
TssManagerWithRef =
|
|
31216
|
+
TssManagerWithRef = import_react108.default.forwardRef((props, ref) => {
|
|
31063
31217
|
const { mpcPin } = props;
|
|
31064
31218
|
const usePaymaster = useSession((st) => st.usePaymaster);
|
|
31065
31219
|
const publicClient = useSession((st) => st.publicClient);
|
|
@@ -31067,14 +31221,14 @@ var init_TssManager = __esm({
|
|
|
31067
31221
|
const setStatus = useSession((st) => st.setStatus);
|
|
31068
31222
|
const setSession = useSession((st) => st.setSession);
|
|
31069
31223
|
const setAddress = useSession((st) => st.setAddress);
|
|
31070
|
-
const onSessionCreated = (0,
|
|
31224
|
+
const onSessionCreated = (0, import_react108.useCallback)(
|
|
31071
31225
|
(session, address) => {
|
|
31072
31226
|
setSession(session);
|
|
31073
31227
|
setAddress(address);
|
|
31074
31228
|
},
|
|
31075
31229
|
[setSession, setAddress]
|
|
31076
31230
|
);
|
|
31077
|
-
const createSessionWithKeyshare =
|
|
31231
|
+
const createSessionWithKeyshare = import_react108.default.useCallback(
|
|
31078
31232
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
31079
31233
|
setStatus("checking key management setup...");
|
|
31080
31234
|
await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
|
|
@@ -31099,7 +31253,7 @@ var init_TssManager = __esm({
|
|
|
31099
31253
|
},
|
|
31100
31254
|
[setStatus, usePaymaster, activeChainId, publicClient, mpcPin]
|
|
31101
31255
|
);
|
|
31102
|
-
|
|
31256
|
+
import_react108.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
|
|
31103
31257
|
return null;
|
|
31104
31258
|
});
|
|
31105
31259
|
}
|
|
@@ -31123,31 +31277,31 @@ function waitForStoreHydration() {
|
|
|
31123
31277
|
}
|
|
31124
31278
|
function SessionProvider({ children }) {
|
|
31125
31279
|
const config = useProviderConfig().config;
|
|
31126
|
-
return /* @__PURE__ */ (0,
|
|
31280
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_react109.Fragment, {
|
|
31127
31281
|
/** dApp's router might have its own error boundaries setup via imported @embarkai/ui-kitErrorBoundary */
|
|
31128
31282
|
children: [
|
|
31129
31283
|
children,
|
|
31130
|
-
/* @__PURE__ */ (0,
|
|
31131
|
-
config.current?.wallet?.enabled && (config.current?.wallet?.mode === "direct" || config.current?.wallet?.mode === "both") && /* @__PURE__ */ (0,
|
|
31132
|
-
/* @__PURE__ */ (0,
|
|
31133
|
-
/* @__PURE__ */ (0,
|
|
31134
|
-
/* @__PURE__ */ (0,
|
|
31284
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(ErrorBoundary, { children: [
|
|
31285
|
+
config.current?.wallet?.enabled && (config.current?.wallet?.mode === "direct" || config.current?.wallet?.mode === "both") && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(DirectWalletHandler, {}),
|
|
31286
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(BalanceFeedProvider, {}),
|
|
31287
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(ChainSync, {}),
|
|
31288
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
31135
31289
|
TssManagerWithRef,
|
|
31136
31290
|
{
|
|
31137
31291
|
mpcPin: void 0
|
|
31138
31292
|
}
|
|
31139
31293
|
),
|
|
31140
|
-
/* @__PURE__ */ (0,
|
|
31141
|
-
/* @__PURE__ */ (0,
|
|
31294
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Dialog2, {}),
|
|
31295
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(OnboardingOverlay, {})
|
|
31142
31296
|
] })
|
|
31143
31297
|
]
|
|
31144
31298
|
});
|
|
31145
31299
|
}
|
|
31146
|
-
var import_read22,
|
|
31300
|
+
var import_read22, import_react109, import_zustand19, import_middleware5, import_jsx_runtime137, useSession, requireActiveChainId;
|
|
31147
31301
|
var init_SessionContext = __esm({
|
|
31148
31302
|
"src/context/SessionContext.tsx"() {
|
|
31149
31303
|
import_read22 = require("@embarkai/core/read");
|
|
31150
|
-
|
|
31304
|
+
import_react109 = require("react");
|
|
31151
31305
|
import_zustand19 = require("zustand");
|
|
31152
31306
|
import_middleware5 = require("zustand/middleware");
|
|
31153
31307
|
init_ErrorBoundary2();
|
|
@@ -31158,7 +31312,7 @@ var init_SessionContext = __esm({
|
|
|
31158
31312
|
init_Onboarding();
|
|
31159
31313
|
init_TssManager();
|
|
31160
31314
|
init_ProviderContext();
|
|
31161
|
-
|
|
31315
|
+
import_jsx_runtime137 = require("react/jsx-runtime");
|
|
31162
31316
|
useSession = (0, import_zustand19.create)()(
|
|
31163
31317
|
(0, import_middleware5.persist)(
|
|
31164
31318
|
(set) => ({
|
|
@@ -33602,11 +33756,11 @@ function clearLegacyWagmiStorage() {
|
|
|
33602
33756
|
}
|
|
33603
33757
|
function Provider(props) {
|
|
33604
33758
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
33605
|
-
const callbacksRef = (0,
|
|
33606
|
-
(0,
|
|
33607
|
-
const config = (0,
|
|
33608
|
-
const wagmiConfig3 = (0,
|
|
33609
|
-
const updateConfig = (0,
|
|
33759
|
+
const callbacksRef = (0, import_react110.useRef)(callbacks);
|
|
33760
|
+
(0, import_react110.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
|
|
33761
|
+
const config = (0, import_react110.useRef)((0, import_lodash_es18.merge)({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig));
|
|
33762
|
+
const wagmiConfig3 = (0, import_react110.useRef)((0, import_core9.getWagmiConfig)(config.current?.wallet?.walletConnectId || null));
|
|
33763
|
+
const updateConfig = (0, import_react110.useCallback)((updates) => {
|
|
33610
33764
|
const prev = config.current;
|
|
33611
33765
|
const next = { ...prev };
|
|
33612
33766
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -33640,12 +33794,12 @@ function Provider(props) {
|
|
|
33640
33794
|
if (updates.translations) next.translations = { ...next.translations, ...updates.translations };
|
|
33641
33795
|
config.current = next;
|
|
33642
33796
|
}, []);
|
|
33643
|
-
const updateCallbacks = (0,
|
|
33797
|
+
const updateCallbacks = (0, import_react110.useCallback)((updates) => {
|
|
33644
33798
|
const prev = callbacksRef.current;
|
|
33645
33799
|
const next = updates ? { ...prev, ...updates } : void 0;
|
|
33646
33800
|
callbacksRef.current = next;
|
|
33647
33801
|
}, []);
|
|
33648
|
-
(0,
|
|
33802
|
+
(0, import_react110.useEffect)(() => {
|
|
33649
33803
|
if (typeof window === "undefined" || !projectId) return;
|
|
33650
33804
|
const mergedConfig = (0, import_lodash_es18.merge)(DEFAULT_PROVIDER_CONFIG, initialConfig);
|
|
33651
33805
|
updateConfig(mergedConfig);
|
|
@@ -33665,7 +33819,7 @@ function Provider(props) {
|
|
|
33665
33819
|
useSession.getState().setActiveChainId(mergedConfig.network.chainId);
|
|
33666
33820
|
}
|
|
33667
33821
|
}, [projectId, initialConfig]);
|
|
33668
|
-
(0,
|
|
33822
|
+
(0, import_react110.useEffect)(() => {
|
|
33669
33823
|
if (typeof window === "undefined" || !projectId) return;
|
|
33670
33824
|
try {
|
|
33671
33825
|
(0, import_error_tracking4.initSdkErrorTracking)();
|
|
@@ -33694,7 +33848,7 @@ function Provider(props) {
|
|
|
33694
33848
|
console.error("[PROVIDER] Error setting up iframe manager:", error);
|
|
33695
33849
|
}
|
|
33696
33850
|
}, [projectId]);
|
|
33697
|
-
const contextValue = (0,
|
|
33851
|
+
const contextValue = (0, import_react110.useMemo)(
|
|
33698
33852
|
() => ({
|
|
33699
33853
|
config,
|
|
33700
33854
|
updateConfig,
|
|
@@ -33705,24 +33859,24 @@ function Provider(props) {
|
|
|
33705
33859
|
}),
|
|
33706
33860
|
[config, updateConfig, callbacks, updateCallbacks]
|
|
33707
33861
|
);
|
|
33708
|
-
return /* @__PURE__ */ (0,
|
|
33862
|
+
return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_wagmi9.WagmiProvider, { config: wagmiConfig3.current, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(SessionProvider, { children }) }) });
|
|
33709
33863
|
}
|
|
33710
|
-
var import_core9, import_error_tracking4, import_lodash_es18,
|
|
33864
|
+
var import_core9, import_error_tracking4, import_lodash_es18, import_react110, import_wagmi9, import_jsx_runtime138, UIContext, useProviderConfig;
|
|
33711
33865
|
var init_ProviderContext = __esm({
|
|
33712
33866
|
"src/context/ProviderContext.tsx"() {
|
|
33713
33867
|
import_core9 = require("@embarkai/core");
|
|
33714
33868
|
import_error_tracking4 = require("@embarkai/core/internal/error-tracking");
|
|
33715
33869
|
import_lodash_es18 = require("lodash-es");
|
|
33716
|
-
|
|
33870
|
+
import_react110 = require("react");
|
|
33717
33871
|
import_wagmi9 = require("wagmi");
|
|
33718
33872
|
init_initial();
|
|
33719
33873
|
init_iframe_manager();
|
|
33720
33874
|
init_SessionContext();
|
|
33721
33875
|
init_utils14();
|
|
33722
|
-
|
|
33723
|
-
UIContext = (0,
|
|
33876
|
+
import_jsx_runtime138 = require("react/jsx-runtime");
|
|
33877
|
+
UIContext = (0, import_react110.createContext)(void 0);
|
|
33724
33878
|
useProviderConfig = () => {
|
|
33725
|
-
const ctx = (0,
|
|
33879
|
+
const ctx = (0, import_react110.useContext)(UIContext);
|
|
33726
33880
|
if (!ctx) throw new Error("useProviderConfig must be used within a Provider");
|
|
33727
33881
|
return ctx;
|
|
33728
33882
|
};
|
|
@@ -33834,7 +33988,7 @@ __export(index_exports, {
|
|
|
33834
33988
|
module.exports = __toCommonJS(index_exports);
|
|
33835
33989
|
|
|
33836
33990
|
// src/styles/built.css
|
|
33837
|
-
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-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.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-1{right:.25rem}.embarkai-ui-scope .right-2{right:.5rem}.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{top:.25rem}.embarkai-ui-scope .top-1\\/2{top:50%}.embarkai-ui-scope .top-2{top:.5rem}.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 .col-span-2{grid-column:span 2/span 2}.embarkai-ui-scope .float-right{float:right}.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-0{height:0}.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-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-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 .min-h-12{min-height:3rem}.embarkai-ui-scope .w-0{width:0}.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-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-8{width:2rem}.embarkai-ui-scope .w-\\[100dvw\\]{width:100dvw}.embarkai-ui-scope .w-\\[30dvw\\]{width:30dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[60dvw\\]{width:60dvw}.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-7xl{max-width:80rem}.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-\\[420px\\]{max-width:420px}.embarkai-ui-scope .max-w-\\[680px\\]{max-width:680px}.embarkai-ui-scope .max-w-\\[calc\\(100\\%-48px-var\\(--ui-kit-gap\\)\\)\\]{max-width:calc(100% - 48px - var(--ui-kit-gap))}.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 .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{box-shadow:inset 0 0 16px var(--ui-kit-bg-warning)}50%{box-shadow:inset 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-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 .resize{resize:both}.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-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-\\[calc\\(var\\(--ui-kit-el-bdrs\\)_\\/_2\\)\\]{border-radius:calc(var(--ui-kit-el-bdrs)/2)}.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-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-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-6{padding:1.5rem}.embarkai-ui-scope .p-8{padding:2rem}.embarkai-ui-scope .p-\\[12px\\]{padding:12px}.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-10{padding-left:2.5rem;padding-right:2.5rem}.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-light{font-weight:300}.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-7{line-height:1.75rem}.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 .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-sky-500{--tw-text-opacity:1;color:rgb(14 165 233/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 .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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-\\[inset_0_0_0_1px_var\\(--ui-kit-bd\\)\\]{--tw-shadow:inset 0 0 0 1px var(--ui-kit-bd);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-\\[inset_0_0_0_1px_var\\(--ui-kit-fg\\)\\]{--tw-shadow:inset 0 0 0 1px var(--ui-kit-fg);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .outline{outline-style:solid}.embarkai-ui-scope .ring-0{--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 .ring-offset-0{--tw-ring-offset-width:0px}.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 .duration-200{transition-duration:.2s}.embarkai-ui-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--w3m-z-index:10001!important}.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-secondary:var(--embark-ui-secondary,#e4e4e4);--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-secondary:var(--embark-ui-secondary,#2a2a2a);--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 forwards}@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 forwards}.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}@keyframes rotateShine{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.embarkai-ui-scope .button-shine-outline{position:absolute;top:0;left:0;width:100%;height:100%;padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;-webkit-mask-composite:xor;mask-composite:exclude}.embarkai-ui-scope .button-shine-outline-shiner{pointer-events:none;position:absolute;top:50%;left:50%;width:500px;height:500px;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent 0,var(--ui-kit-fg) 8%,transparent 24%);animation:rotateShine 3s linear infinite}.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\\: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-\\[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\\:border-\\[var\\(--ui-kit-bd\\)\\]:focus-within{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .focus-within\\:opacity-100:focus-within{opacity:1}.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-secondary\\)\\]:hover{background-color:var(--ui-kit-secondary)}.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-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-within\\:hover\\:opacity-100:hover:focus-within{opacity:1}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.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\\: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\\: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 :is(.group:hover .group-hover\\:opacity-80){opacity:.8}.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-3xl{font-size:1.875rem;line-height:2.25rem}}.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}`;
|
|
33991
|
+
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-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.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-1{right:.25rem}.embarkai-ui-scope .right-2{right:.5rem}.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{top:.25rem}.embarkai-ui-scope .top-1\\/2{top:50%}.embarkai-ui-scope .top-2{top:.5rem}.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 .col-span-2{grid-column:span 2/span 2}.embarkai-ui-scope .float-right{float:right}.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-0{height:0}.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-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-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 .min-h-12{min-height:3rem}.embarkai-ui-scope .w-0{width:0}.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-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-8{width:2rem}.embarkai-ui-scope .w-\\[100dvw\\]{width:100dvw}.embarkai-ui-scope .w-\\[30dvw\\]{width:30dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[60dvw\\]{width:60dvw}.embarkai-ui-scope .w-\\[var\\(--ui-kit-content-maw\\2c var\\(--ui-kit-maw\\)\\)\\]{width:var(--ui-kit-content-maw,var(--ui-kit-maw))}.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-7xl{max-width:80rem}.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-\\[420px\\]{max-width:420px}.embarkai-ui-scope .max-w-\\[680px\\]{max-width:680px}.embarkai-ui-scope .max-w-\\[calc\\(100\\%-48px-var\\(--ui-kit-gap\\)\\)\\]{max-width:calc(100% - 48px - var(--ui-kit-gap))}.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 .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{box-shadow:inset 0 0 16px var(--ui-kit-bg-warning)}50%{box-shadow:inset 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-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 .resize{resize:both}.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-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-\\[calc\\(var\\(--ui-kit-el-bdrs\\)_\\/_2\\)\\]{border-radius:calc(var(--ui-kit-el-bdrs)/2)}.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-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-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-6{padding:1.5rem}.embarkai-ui-scope .p-8{padding:2rem}.embarkai-ui-scope .p-\\[12px\\]{padding:12px}.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-10{padding-left:2.5rem;padding-right:2.5rem}.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-light{font-weight:300}.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-7{line-height:1.75rem}.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 .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-sky-500{--tw-text-opacity:1;color:rgb(14 165 233/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 .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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-\\[inset_0_0_0_1px_var\\(--ui-kit-bd\\)\\]{--tw-shadow:inset 0 0 0 1px var(--ui-kit-bd);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-\\[inset_0_0_0_1px_var\\(--ui-kit-fg\\)\\]{--tw-shadow:inset 0 0 0 1px var(--ui-kit-fg);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .outline{outline-style:solid}.embarkai-ui-scope .ring-0{--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 .ring-offset-0{--tw-ring-offset-width:0px}.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-\\[width\\]{transition-property:width;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 .duration-200{transition-duration:.2s}.embarkai-ui-scope .duration-500{transition-duration:.5s}.embarkai-ui-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--w3m-z-index:10001!important}.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-secondary:var(--embark-ui-secondary,#e4e4e4);--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-secondary:var(--embark-ui-secondary,#2a2a2a);--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 forwards}@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 forwards}.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}@keyframes rotateShine{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.embarkai-ui-scope .button-shine-outline{position:absolute;top:0;left:0;width:100%;height:100%;padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;-webkit-mask-composite:xor;mask-composite:exclude}.embarkai-ui-scope .button-shine-outline-shiner{pointer-events:none;position:absolute;top:50%;left:50%;width:500px;height:500px;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent 0,var(--ui-kit-fg) 8%,transparent 24%);animation:rotateShine 3s linear infinite}.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\\: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-\\[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\\:border-\\[var\\(--ui-kit-bd\\)\\]:focus-within{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .focus-within\\:opacity-100:focus-within{opacity:1}.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-secondary\\)\\]:hover{background-color:var(--ui-kit-secondary)}.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-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-within\\:hover\\:opacity-100:hover:focus-within{opacity:1}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.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\\: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\\: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 :is(.group:hover .group-hover\\:opacity-80){opacity:.8}.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-3xl{font-size:1.875rem;line-height:2.25rem}}.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}`;
|
|
33838
33992
|
|
|
33839
33993
|
// src/index.ts
|
|
33840
33994
|
var import_core10 = require("@embarkai/core");
|
|
@@ -33844,8 +33998,8 @@ init_ErrorBoundary2();
|
|
|
33844
33998
|
// src/components/ConnectWalletButton.tsx
|
|
33845
33999
|
init_lumia2();
|
|
33846
34000
|
init_embarkAI2();
|
|
33847
|
-
var
|
|
33848
|
-
var
|
|
34001
|
+
var import_lucide_react87 = require("lucide-react");
|
|
34002
|
+
var import_react111 = require("react");
|
|
33849
34003
|
init_SessionContext();
|
|
33850
34004
|
init_auth();
|
|
33851
34005
|
init_BalanceView2();
|
|
@@ -33856,7 +34010,7 @@ init_useLayoutStore();
|
|
|
33856
34010
|
init_useUserProfile();
|
|
33857
34011
|
init_pro_mode();
|
|
33858
34012
|
init_utils();
|
|
33859
|
-
var
|
|
34013
|
+
var import_jsx_runtime139 = (
|
|
33860
34014
|
/** external Buttons can be provided */
|
|
33861
34015
|
require("react/jsx-runtime")
|
|
33862
34016
|
);
|
|
@@ -33878,10 +34032,10 @@ function ConnectWalletButton(props) {
|
|
|
33878
34032
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
33879
34033
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useSession();
|
|
33880
34034
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
33881
|
-
(0,
|
|
34035
|
+
(0, import_react111.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
33882
34036
|
const { data: profile, isLoading: isProfileLoading } = useUserProfile();
|
|
33883
34037
|
const displayName = profile?.nicknameDisplay || profile?.displayName || import_auth25.jwtTokenManager.getDisplayName();
|
|
33884
|
-
const indicators = (0,
|
|
34038
|
+
const indicators = (0, import_react111.useMemo)(() => {
|
|
33885
34039
|
const userId = session?.mpcUserId;
|
|
33886
34040
|
if (!userId) return { server: false, local: false, backup: false };
|
|
33887
34041
|
const server = import_auth25.jwtTokenManager.getHasKeyshare() ?? false;
|
|
@@ -33890,18 +34044,18 @@ function ConnectWalletButton(props) {
|
|
|
33890
34044
|
}, [session, address, hasServerVault]);
|
|
33891
34045
|
const proMode = useProMode();
|
|
33892
34046
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
33893
|
-
return /* @__PURE__ */ (0,
|
|
34047
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)("div", { "data-current-theme-mode": colorMode, className: cn2("embarkai-ui-scope w-fit h-fit", className), children: !address ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_jsx_runtime139.Fragment, { children: ConnectButton ? /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
|
|
33894
34048
|
ConnectButton,
|
|
33895
34049
|
{
|
|
33896
34050
|
type: "button",
|
|
33897
34051
|
disabled: isConnecting,
|
|
33898
34052
|
onClick: () => setPage("auth" /* AUTH */),
|
|
33899
34053
|
children: [
|
|
33900
|
-
isConnecting ? /* @__PURE__ */ (0,
|
|
34054
|
+
isConnecting ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)("span", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_lucide_react87.Loader, { className: "w-4 h-4 animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(embarkAI_default2, { className: "w-6 h-6" }),
|
|
33901
34055
|
connectButtonLabel.toUpperCase()
|
|
33902
34056
|
]
|
|
33903
34057
|
}
|
|
33904
|
-
) : /* @__PURE__ */ (0,
|
|
34058
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
|
|
33905
34059
|
Button,
|
|
33906
34060
|
{
|
|
33907
34061
|
type: "button",
|
|
@@ -33918,11 +34072,11 @@ function ConnectWalletButton(props) {
|
|
|
33918
34072
|
"disabled:hover:bg-[var(--ui-kit-bg)] disabled:active:bg-[var(--ui-kit-bg)]"
|
|
33919
34073
|
),
|
|
33920
34074
|
children: [
|
|
33921
|
-
isConnecting ? /* @__PURE__ */ (0,
|
|
34075
|
+
isConnecting ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)("span", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_lucide_react87.Loader, { className: "w-4 h-4 animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(embarkAI_default2, { className: "w-6 h-6" }),
|
|
33922
34076
|
connectButtonLabel.toUpperCase()
|
|
33923
34077
|
]
|
|
33924
34078
|
}
|
|
33925
|
-
) }) : /* @__PURE__ */ (0,
|
|
34079
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
|
|
33926
34080
|
"button",
|
|
33927
34081
|
{
|
|
33928
34082
|
type: "button",
|
|
@@ -33935,26 +34089,26 @@ function ConnectWalletButton(props) {
|
|
|
33935
34089
|
"rounded-[var(--ui-kit-bdrs)] p-4 max-w-sm min-w-[256px]"
|
|
33936
34090
|
),
|
|
33937
34091
|
children: [
|
|
33938
|
-
/* @__PURE__ */ (0,
|
|
33939
|
-
proMode && /* @__PURE__ */ (0,
|
|
33940
|
-
profile?.avatar ? /* @__PURE__ */ (0,
|
|
34092
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsxs)("div", { className: "relative w-12 h-12 rounded-full bg-[var(--ui-kit-fg)] flex items-center justify-center flex-shrink-0", children: [
|
|
34093
|
+
proMode && /* @__PURE__ */ (0, import_jsx_runtime139.jsx)("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" }),
|
|
34094
|
+
profile?.avatar ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)("img", { src: profile.avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(lumia_default2, { className: "w-12 h-12" })
|
|
33941
34095
|
] }),
|
|
33942
|
-
/* @__PURE__ */ (0,
|
|
33943
|
-
/* @__PURE__ */ (0,
|
|
33944
|
-
isProfileLoading ? /* @__PURE__ */ (0,
|
|
33945
|
-
/* @__PURE__ */ (0,
|
|
34096
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsxs)("div", { className: "text-left flex-1 min-w-0 text-[var(--ui-kit-fg)]", children: [
|
|
34097
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
34098
|
+
isProfileLoading ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_lucide_react87.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime139.jsx)("span", { className: "w-fit text-[14px] leading-4 truncate max-w-[144px] text-[var(--ui-kit-fg)]", children: displayName }),
|
|
34099
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(KYCStatus, {})
|
|
33946
34100
|
] }),
|
|
33947
|
-
/* @__PURE__ */ (0,
|
|
34101
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(BalanceView, {})
|
|
33948
34102
|
] }),
|
|
33949
|
-
/* @__PURE__ */ (0,
|
|
33950
|
-
/* @__PURE__ */ (0,
|
|
33951
|
-
/* @__PURE__ */ (0,
|
|
33952
|
-
|
|
34103
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsxs)("div", { className: "flex items-center space-x-1", children: [
|
|
34104
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsxs)("div", { className: "group relative", children: [
|
|
34105
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
|
|
34106
|
+
import_lucide_react87.Cloud,
|
|
33953
34107
|
{
|
|
33954
34108
|
className: `w-3 h-3 ${indicators.server ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
33955
34109
|
}
|
|
33956
34110
|
),
|
|
33957
|
-
/* @__PURE__ */ (0,
|
|
34111
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
|
|
33958
34112
|
"div",
|
|
33959
34113
|
{
|
|
33960
34114
|
className: cn2(
|
|
@@ -33969,14 +34123,14 @@ function ConnectWalletButton(props) {
|
|
|
33969
34123
|
}
|
|
33970
34124
|
)
|
|
33971
34125
|
] }),
|
|
33972
|
-
/* @__PURE__ */ (0,
|
|
33973
|
-
/* @__PURE__ */ (0,
|
|
33974
|
-
|
|
34126
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsxs)("div", { className: "group relative", children: [
|
|
34127
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
|
|
34128
|
+
import_lucide_react87.Laptop,
|
|
33975
34129
|
{
|
|
33976
34130
|
className: `w-3 h-3 ${indicators.local ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
33977
34131
|
}
|
|
33978
34132
|
),
|
|
33979
|
-
/* @__PURE__ */ (0,
|
|
34133
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
|
|
33980
34134
|
"div",
|
|
33981
34135
|
{
|
|
33982
34136
|
className: cn2(
|
|
@@ -33991,14 +34145,14 @@ function ConnectWalletButton(props) {
|
|
|
33991
34145
|
}
|
|
33992
34146
|
)
|
|
33993
34147
|
] }),
|
|
33994
|
-
/* @__PURE__ */ (0,
|
|
33995
|
-
/* @__PURE__ */ (0,
|
|
33996
|
-
|
|
34148
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsxs)("div", { className: "group relative", children: [
|
|
34149
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
|
|
34150
|
+
import_lucide_react87.Shield,
|
|
33997
34151
|
{
|
|
33998
34152
|
className: `w-3 h-3 ${indicators.backup ? "text-[var(--ui-kit-bg-success)]" : "text-[var(--ui-kit-bg-warning)]"}`
|
|
33999
34153
|
}
|
|
34000
34154
|
),
|
|
34001
|
-
/* @__PURE__ */ (0,
|
|
34155
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
|
|
34002
34156
|
"div",
|
|
34003
34157
|
{
|
|
34004
34158
|
className: cn2(
|
|
@@ -34014,7 +34168,7 @@ function ConnectWalletButton(props) {
|
|
|
34014
34168
|
)
|
|
34015
34169
|
] })
|
|
34016
34170
|
] }),
|
|
34017
|
-
!!settingsNotifications.length && /* @__PURE__ */ (0,
|
|
34171
|
+
!!settingsNotifications.length && /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
|
|
34018
34172
|
"div",
|
|
34019
34173
|
{
|
|
34020
34174
|
className: cn2(
|
|
@@ -34067,28 +34221,28 @@ init_useOpenPage();
|
|
|
34067
34221
|
init_useColorMode();
|
|
34068
34222
|
|
|
34069
34223
|
// src/components/ThemeToggle.tsx
|
|
34070
|
-
var
|
|
34224
|
+
var import_lucide_react88 = require("lucide-react");
|
|
34071
34225
|
init_useColorMode();
|
|
34072
34226
|
init_button();
|
|
34073
34227
|
init_utils();
|
|
34074
|
-
var
|
|
34228
|
+
var import_jsx_runtime140 = require("react/jsx-runtime");
|
|
34075
34229
|
function ThemeToggle(props) {
|
|
34076
34230
|
const { className, ...btnProps } = props;
|
|
34077
34231
|
const { colorMode, setColorMode } = useColorMode();
|
|
34078
|
-
return /* @__PURE__ */ (0,
|
|
34232
|
+
return /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
34079
34233
|
"div",
|
|
34080
34234
|
{
|
|
34081
34235
|
className: cn2("embarkai-ui-scope", className),
|
|
34082
34236
|
"data-current-theme-mode": colorMode,
|
|
34083
34237
|
style: { width: "fit-content", height: "fit-content" },
|
|
34084
|
-
children: /* @__PURE__ */ (0,
|
|
34238
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
34085
34239
|
Button,
|
|
34086
34240
|
{
|
|
34087
34241
|
...btnProps,
|
|
34088
34242
|
variant: "ghost",
|
|
34089
34243
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
34090
34244
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
34091
|
-
children: colorMode === "dark" ? /* @__PURE__ */ (0,
|
|
34245
|
+
children: colorMode === "dark" ? /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_lucide_react88.Sun, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_lucide_react88.Moon, { className: "w-4 h-4" })
|
|
34092
34246
|
}
|
|
34093
34247
|
)
|
|
34094
34248
|
}
|
|
@@ -34100,18 +34254,18 @@ init_i18n();
|
|
|
34100
34254
|
init_button();
|
|
34101
34255
|
init_useLayoutDataStore();
|
|
34102
34256
|
init_utils();
|
|
34103
|
-
var
|
|
34257
|
+
var import_jsx_runtime141 = require("react/jsx-runtime");
|
|
34104
34258
|
function LangToggle(props) {
|
|
34105
34259
|
const { className, ...btnProps } = props;
|
|
34106
34260
|
const { i18n } = useT();
|
|
34107
34261
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
34108
|
-
return /* @__PURE__ */ (0,
|
|
34262
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
34109
34263
|
"div",
|
|
34110
34264
|
{
|
|
34111
34265
|
className: cn2("embarkai-ui-scope", className),
|
|
34112
34266
|
"data-mbark-language": i18n.resolvedLanguage || "en",
|
|
34113
34267
|
style: { width: "fit-content", height: "fit-content" },
|
|
34114
|
-
children: /* @__PURE__ */ (0,
|
|
34268
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
34115
34269
|
Button,
|
|
34116
34270
|
{
|
|
34117
34271
|
...btnProps,
|
|
@@ -34129,18 +34283,18 @@ function LangToggle(props) {
|
|
|
34129
34283
|
init_useLayoutDataStore();
|
|
34130
34284
|
|
|
34131
34285
|
// src/internal/components/UserOpStatus.tsx
|
|
34132
|
-
var
|
|
34286
|
+
var import_lucide_react90 = require("lucide-react");
|
|
34133
34287
|
var React34 = __toESM(require("react"), 1);
|
|
34134
34288
|
init_getUserOperationByHash();
|
|
34135
34289
|
init_getUserOperationReceipt();
|
|
34136
34290
|
init_cn();
|
|
34137
34291
|
|
|
34138
34292
|
// src/internal/components/Address.tsx
|
|
34139
|
-
var
|
|
34293
|
+
var import_lucide_react89 = require("lucide-react");
|
|
34140
34294
|
var React33 = __toESM(require("react"), 1);
|
|
34141
34295
|
init_cn();
|
|
34142
34296
|
init_button();
|
|
34143
|
-
var
|
|
34297
|
+
var import_jsx_runtime142 = require("react/jsx-runtime");
|
|
34144
34298
|
function toExplorerAddressUrl(address, chain) {
|
|
34145
34299
|
const base = chain?.blockExplorers?.default?.url;
|
|
34146
34300
|
if (!base) return null;
|
|
@@ -34162,11 +34316,11 @@ var Address = ({
|
|
|
34162
34316
|
const addr = address || "";
|
|
34163
34317
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
34164
34318
|
const [copied, setCopied] = React33.useState(false);
|
|
34165
|
-
if (!addr) return /* @__PURE__ */ (0,
|
|
34166
|
-
return /* @__PURE__ */ (0,
|
|
34167
|
-
label && /* @__PURE__ */ (0,
|
|
34168
|
-
/* @__PURE__ */ (0,
|
|
34169
|
-
showCopy && /* @__PURE__ */ (0,
|
|
34319
|
+
if (!addr) return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)("span", { className: cn("text-muted-foreground", className), children: "\u2014" });
|
|
34320
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)("div", { className: cn("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
34321
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
34322
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate ? short(addr) : addr }),
|
|
34323
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
34170
34324
|
Button,
|
|
34171
34325
|
{
|
|
34172
34326
|
variant: "ghost",
|
|
@@ -34180,10 +34334,10 @@ var Address = ({
|
|
|
34180
34334
|
} catch {
|
|
34181
34335
|
}
|
|
34182
34336
|
},
|
|
34183
|
-
children: /* @__PURE__ */ (0,
|
|
34337
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_lucide_react89.Copy, { className: "h-4 w-4" })
|
|
34184
34338
|
}
|
|
34185
34339
|
),
|
|
34186
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
34340
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
34187
34341
|
"a",
|
|
34188
34342
|
{
|
|
34189
34343
|
href: explorer,
|
|
@@ -34191,7 +34345,7 @@ var Address = ({
|
|
|
34191
34345
|
rel: "noreferrer noopener",
|
|
34192
34346
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
34193
34347
|
title: "Open in explorer",
|
|
34194
|
-
children: /* @__PURE__ */ (0,
|
|
34348
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_lucide_react89.ExternalLink, { className: "h-4 w-4" })
|
|
34195
34349
|
}
|
|
34196
34350
|
)
|
|
34197
34351
|
] });
|
|
@@ -34200,7 +34354,7 @@ var Address = ({
|
|
|
34200
34354
|
// src/internal/components/UserOpStatus.tsx
|
|
34201
34355
|
init_badge();
|
|
34202
34356
|
init_button();
|
|
34203
|
-
var
|
|
34357
|
+
var import_jsx_runtime143 = require("react/jsx-runtime");
|
|
34204
34358
|
var UserOpStatus = ({
|
|
34205
34359
|
userOpHash,
|
|
34206
34360
|
chain,
|
|
@@ -34315,35 +34469,35 @@ var UserOpStatus = ({
|
|
|
34315
34469
|
const stateBadge = () => {
|
|
34316
34470
|
if (receipt) {
|
|
34317
34471
|
const ok = !!receipt.success;
|
|
34318
|
-
return /* @__PURE__ */ (0,
|
|
34319
|
-
ok ? /* @__PURE__ */ (0,
|
|
34472
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Badge, { variant: ok ? "success" : "destructive", children: [
|
|
34473
|
+
ok ? /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.CheckCircle2, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.AlertCircle, { className: "h-3 w-3" }),
|
|
34320
34474
|
ok ? "Included" : "Failed"
|
|
34321
34475
|
] });
|
|
34322
34476
|
}
|
|
34323
34477
|
if (rejected) {
|
|
34324
|
-
return /* @__PURE__ */ (0,
|
|
34325
|
-
/* @__PURE__ */ (0,
|
|
34478
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Badge, { variant: "destructive", children: [
|
|
34479
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.AlertCircle, { className: "h-3 w-3" }),
|
|
34326
34480
|
" Rejected by bundler"
|
|
34327
34481
|
] });
|
|
34328
34482
|
}
|
|
34329
34483
|
if (timedOut) {
|
|
34330
|
-
return /* @__PURE__ */ (0,
|
|
34331
|
-
/* @__PURE__ */ (0,
|
|
34484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Badge, { variant: "warning", children: [
|
|
34485
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.AlertCircle, { className: "h-3 w-3" }),
|
|
34332
34486
|
" Timeout - may be rejected"
|
|
34333
34487
|
] });
|
|
34334
34488
|
}
|
|
34335
34489
|
if (mempool) {
|
|
34336
|
-
return /* @__PURE__ */ (0,
|
|
34337
|
-
/* @__PURE__ */ (0,
|
|
34490
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Badge, { variant: "outline", children: [
|
|
34491
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.Clock, { className: "h-3 w-3" }),
|
|
34338
34492
|
" Pending in bundler"
|
|
34339
34493
|
] });
|
|
34340
34494
|
}
|
|
34341
|
-
return /* @__PURE__ */ (0,
|
|
34342
|
-
/* @__PURE__ */ (0,
|
|
34495
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Badge, { variant: "secondary", children: [
|
|
34496
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.Clock, { className: "h-3 w-3" }),
|
|
34343
34497
|
" Waiting"
|
|
34344
34498
|
] });
|
|
34345
34499
|
};
|
|
34346
|
-
return /* @__PURE__ */ (0,
|
|
34500
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
|
|
34347
34501
|
"div",
|
|
34348
34502
|
{
|
|
34349
34503
|
className: cn(
|
|
@@ -34352,20 +34506,20 @@ var UserOpStatus = ({
|
|
|
34352
34506
|
),
|
|
34353
34507
|
style: { textAlign: "left", listStyle: "none" },
|
|
34354
34508
|
children: [
|
|
34355
|
-
/* @__PURE__ */ (0,
|
|
34356
|
-
/* @__PURE__ */ (0,
|
|
34509
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
|
|
34510
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
34357
34511
|
stateBadge(),
|
|
34358
|
-
/* @__PURE__ */ (0,
|
|
34512
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
|
|
34359
34513
|
] }),
|
|
34360
|
-
/* @__PURE__ */ (0,
|
|
34361
|
-
/* @__PURE__ */ (0,
|
|
34362
|
-
/* @__PURE__ */ (0,
|
|
34514
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
34515
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.RefreshCw, { className: cn("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
34516
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)("span", { className: "text-xs", children: "Refresh" })
|
|
34363
34517
|
] })
|
|
34364
34518
|
] }),
|
|
34365
|
-
/* @__PURE__ */ (0,
|
|
34366
|
-
/* @__PURE__ */ (0,
|
|
34367
|
-
/* @__PURE__ */ (0,
|
|
34368
|
-
/* @__PURE__ */ (0,
|
|
34519
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
34520
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
|
|
34521
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
|
|
34522
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
34369
34523
|
Button,
|
|
34370
34524
|
{
|
|
34371
34525
|
variant: "ghost",
|
|
@@ -34377,14 +34531,14 @@ var UserOpStatus = ({
|
|
|
34377
34531
|
} catch {
|
|
34378
34532
|
}
|
|
34379
34533
|
},
|
|
34380
|
-
children: /* @__PURE__ */ (0,
|
|
34534
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.Copy, { className: "h-3.5 w-3.5" })
|
|
34381
34535
|
}
|
|
34382
34536
|
)
|
|
34383
34537
|
] }),
|
|
34384
|
-
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0,
|
|
34385
|
-
/* @__PURE__ */ (0,
|
|
34386
|
-
/* @__PURE__ */ (0,
|
|
34387
|
-
/* @__PURE__ */ (0,
|
|
34538
|
+
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
34539
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
|
|
34540
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
|
|
34541
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
34388
34542
|
Button,
|
|
34389
34543
|
{
|
|
34390
34544
|
variant: "ghost",
|
|
@@ -34396,10 +34550,10 @@ var UserOpStatus = ({
|
|
|
34396
34550
|
} catch {
|
|
34397
34551
|
}
|
|
34398
34552
|
},
|
|
34399
|
-
children: /* @__PURE__ */ (0,
|
|
34553
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.Copy, { className: "h-3.5 w-3.5" })
|
|
34400
34554
|
}
|
|
34401
34555
|
),
|
|
34402
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0,
|
|
34556
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
34403
34557
|
"a",
|
|
34404
34558
|
{
|
|
34405
34559
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -34407,11 +34561,11 @@ var UserOpStatus = ({
|
|
|
34407
34561
|
rel: "noreferrer noopener",
|
|
34408
34562
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
34409
34563
|
title: "Open in explorer",
|
|
34410
|
-
children: /* @__PURE__ */ (0,
|
|
34564
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.ExternalLink, { className: "h-3.5 w-3.5" })
|
|
34411
34565
|
}
|
|
34412
34566
|
)
|
|
34413
34567
|
] }),
|
|
34414
|
-
receipt && /* @__PURE__ */ (0,
|
|
34568
|
+
receipt && /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { className: "text-xs text-muted-foreground mb-3", children: [
|
|
34415
34569
|
"Block ",
|
|
34416
34570
|
parseInt(receipt.receipt?.blockNumber || "0x0", 16),
|
|
34417
34571
|
" \u2022 Gas Used",
|
|
@@ -34420,32 +34574,32 @@ var UserOpStatus = ({
|
|
|
34420
34574
|
" \u2022 Success ",
|
|
34421
34575
|
String(!!receipt.success)
|
|
34422
34576
|
] }),
|
|
34423
|
-
/* @__PURE__ */ (0,
|
|
34577
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("span", { className: "ml-2", children: [
|
|
34424
34578
|
"\u2022 Polling for ",
|
|
34425
34579
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
34426
34580
|
"s"
|
|
34427
34581
|
] }) }),
|
|
34428
|
-
mempool && /* @__PURE__ */ (0,
|
|
34429
|
-
/* @__PURE__ */ (0,
|
|
34582
|
+
mempool && /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
|
|
34583
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { children: [
|
|
34430
34584
|
"Seen by bundler at ",
|
|
34431
|
-
/* @__PURE__ */ (0,
|
|
34585
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
34432
34586
|
] }),
|
|
34433
|
-
/* @__PURE__ */ (0,
|
|
34587
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { children: [
|
|
34434
34588
|
"sender ",
|
|
34435
|
-
/* @__PURE__ */ (0,
|
|
34589
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Address, { address: mempool.sender, chain, truncate: false })
|
|
34436
34590
|
] })
|
|
34437
34591
|
] }),
|
|
34438
|
-
error && /* @__PURE__ */ (0,
|
|
34439
|
-
/* @__PURE__ */ (0,
|
|
34592
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
34593
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.AlertCircle, { className: "h-4 w-4" }),
|
|
34440
34594
|
" ",
|
|
34441
34595
|
error
|
|
34442
34596
|
] }),
|
|
34443
|
-
rejected && /* @__PURE__ */ (0,
|
|
34444
|
-
/* @__PURE__ */ (0,
|
|
34597
|
+
rejected && /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
34598
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.AlertCircle, { className: "h-4 w-4" }),
|
|
34445
34599
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
34446
34600
|
] }),
|
|
34447
|
-
timedOut && /* @__PURE__ */ (0,
|
|
34448
|
-
/* @__PURE__ */ (0,
|
|
34601
|
+
timedOut && /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
34602
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react90.AlertCircle, { className: "h-4 w-4" }),
|
|
34449
34603
|
"Stopped polling after ",
|
|
34450
34604
|
Math.round(maxPollTimeMs / 1e3),
|
|
34451
34605
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -34456,11 +34610,11 @@ var UserOpStatus = ({
|
|
|
34456
34610
|
};
|
|
34457
34611
|
|
|
34458
34612
|
// src/internal/components/Hash.tsx
|
|
34459
|
-
var
|
|
34613
|
+
var import_lucide_react91 = require("lucide-react");
|
|
34460
34614
|
var React35 = __toESM(require("react"), 1);
|
|
34461
34615
|
init_cn();
|
|
34462
34616
|
init_button();
|
|
34463
|
-
var
|
|
34617
|
+
var import_jsx_runtime144 = require("react/jsx-runtime");
|
|
34464
34618
|
function toExplorerUrl(kind, value, chain) {
|
|
34465
34619
|
const base = chain?.blockExplorers?.default?.url;
|
|
34466
34620
|
if (!base) return null;
|
|
@@ -34484,11 +34638,11 @@ var Hash = ({
|
|
|
34484
34638
|
const value = hash || "";
|
|
34485
34639
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
34486
34640
|
const [copied, setCopied] = React35.useState(false);
|
|
34487
|
-
if (!value) return /* @__PURE__ */ (0,
|
|
34488
|
-
return /* @__PURE__ */ (0,
|
|
34489
|
-
label && /* @__PURE__ */ (0,
|
|
34490
|
-
/* @__PURE__ */ (0,
|
|
34491
|
-
showCopy && /* @__PURE__ */ (0,
|
|
34641
|
+
if (!value) return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)("span", { className: cn("text-muted-foreground", className), children: "\u2014" });
|
|
34642
|
+
return /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)("div", { className: cn("flex items-center gap-2", className), children: [
|
|
34643
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime144.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
34644
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate ? short2(value) : value }),
|
|
34645
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
34492
34646
|
Button,
|
|
34493
34647
|
{
|
|
34494
34648
|
variant: "ghost",
|
|
@@ -34502,10 +34656,10 @@ var Hash = ({
|
|
|
34502
34656
|
} catch {
|
|
34503
34657
|
}
|
|
34504
34658
|
},
|
|
34505
|
-
children: /* @__PURE__ */ (0,
|
|
34659
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_lucide_react91.Copy, { className: "h-4 w-4" })
|
|
34506
34660
|
}
|
|
34507
34661
|
),
|
|
34508
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
34662
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
34509
34663
|
"a",
|
|
34510
34664
|
{
|
|
34511
34665
|
href: explorer,
|
|
@@ -34513,21 +34667,21 @@ var Hash = ({
|
|
|
34513
34667
|
rel: "noreferrer noopener",
|
|
34514
34668
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
34515
34669
|
title: "Open in explorer",
|
|
34516
|
-
children: /* @__PURE__ */ (0,
|
|
34670
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_lucide_react91.ExternalLink, { className: "h-4 w-4" })
|
|
34517
34671
|
}
|
|
34518
34672
|
)
|
|
34519
34673
|
] });
|
|
34520
34674
|
};
|
|
34521
34675
|
|
|
34522
34676
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
34523
|
-
var
|
|
34677
|
+
var import_react112 = require("react");
|
|
34524
34678
|
init_base3();
|
|
34525
|
-
var
|
|
34679
|
+
var import_jsx_runtime145 = require("react/jsx-runtime");
|
|
34526
34680
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
34527
|
-
const [transactions, setTransactions] = (0,
|
|
34528
|
-
const [loading, setLoading] = (0,
|
|
34529
|
-
const [error, setError] = (0,
|
|
34530
|
-
(0,
|
|
34681
|
+
const [transactions, setTransactions] = (0, import_react112.useState)([]);
|
|
34682
|
+
const [loading, setLoading] = (0, import_react112.useState)(true);
|
|
34683
|
+
const [error, setError] = (0, import_react112.useState)(null);
|
|
34684
|
+
(0, import_react112.useEffect)(() => {
|
|
34531
34685
|
const fetchTransactions2 = async () => {
|
|
34532
34686
|
try {
|
|
34533
34687
|
setLoading(true);
|
|
@@ -34573,31 +34727,31 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
34573
34727
|
window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
|
|
34574
34728
|
};
|
|
34575
34729
|
if (loading) {
|
|
34576
|
-
return /* @__PURE__ */ (0,
|
|
34577
|
-
/* @__PURE__ */ (0,
|
|
34578
|
-
/* @__PURE__ */ (0,
|
|
34730
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "p-4 text-center", children: [
|
|
34731
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
|
|
34732
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
|
|
34579
34733
|
] });
|
|
34580
34734
|
}
|
|
34581
34735
|
if (error) {
|
|
34582
|
-
return /* @__PURE__ */ (0,
|
|
34583
|
-
/* @__PURE__ */ (0,
|
|
34584
|
-
/* @__PURE__ */ (0,
|
|
34736
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "p-4 text-center", children: [
|
|
34737
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("p", { className: "text-red-600 text-sm", children: error }),
|
|
34738
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("button", { onClick: () => window.location.reload(), className: "mt-2 text-blue-600 text-sm hover:underline", children: "Retry" })
|
|
34585
34739
|
] });
|
|
34586
34740
|
}
|
|
34587
34741
|
if (transactions.length === 0) {
|
|
34588
|
-
return /* @__PURE__ */ (0,
|
|
34742
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { className: "p-4 text-center", children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
|
|
34589
34743
|
}
|
|
34590
|
-
return /* @__PURE__ */ (0,
|
|
34744
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { className: "space-y-2 p-2", children: transactions.map((tx) => /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
|
|
34591
34745
|
"div",
|
|
34592
34746
|
{
|
|
34593
34747
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
34594
34748
|
onClick: () => openTransaction(tx.hash),
|
|
34595
34749
|
children: [
|
|
34596
|
-
/* @__PURE__ */ (0,
|
|
34597
|
-
/* @__PURE__ */ (0,
|
|
34598
|
-
/* @__PURE__ */ (0,
|
|
34599
|
-
/* @__PURE__ */ (0,
|
|
34600
|
-
/* @__PURE__ */ (0,
|
|
34750
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "flex justify-between items-start mb-2", children: [
|
|
34751
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "flex-1", children: [
|
|
34752
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "flex items-center space-x-2 mb-1", children: [
|
|
34753
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress4(tx.hash) }),
|
|
34754
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
34601
34755
|
"span",
|
|
34602
34756
|
{
|
|
34603
34757
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -34605,40 +34759,40 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
34605
34759
|
}
|
|
34606
34760
|
)
|
|
34607
34761
|
] }),
|
|
34608
|
-
/* @__PURE__ */ (0,
|
|
34609
|
-
/* @__PURE__ */ (0,
|
|
34610
|
-
/* @__PURE__ */ (0,
|
|
34611
|
-
/* @__PURE__ */ (0,
|
|
34762
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "text-sm space-y-1", children: [
|
|
34763
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { children: [
|
|
34764
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("span", { className: "text-gray-600", children: "From:" }),
|
|
34765
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
34612
34766
|
formatAddress4(tx.from.hash),
|
|
34613
|
-
tx.from.is_contract && /* @__PURE__ */ (0,
|
|
34767
|
+
tx.from.is_contract && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
34614
34768
|
] })
|
|
34615
34769
|
] }),
|
|
34616
|
-
/* @__PURE__ */ (0,
|
|
34617
|
-
/* @__PURE__ */ (0,
|
|
34618
|
-
/* @__PURE__ */ (0,
|
|
34770
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { children: [
|
|
34771
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("span", { className: "text-gray-600", children: "To:" }),
|
|
34772
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
34619
34773
|
formatAddress4(tx.to.hash),
|
|
34620
|
-
tx.to.is_contract && /* @__PURE__ */ (0,
|
|
34774
|
+
tx.to.is_contract && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
34621
34775
|
] })
|
|
34622
34776
|
] }),
|
|
34623
|
-
/* @__PURE__ */ (0,
|
|
34624
|
-
/* @__PURE__ */ (0,
|
|
34625
|
-
/* @__PURE__ */ (0,
|
|
34777
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { children: [
|
|
34778
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("span", { className: "text-gray-600", children: "Value:" }),
|
|
34779
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("span", { className: "font-semibold ml-1", children: [
|
|
34626
34780
|
formatValue3(tx.value),
|
|
34627
34781
|
" LUMIA"
|
|
34628
34782
|
] })
|
|
34629
34783
|
] })
|
|
34630
34784
|
] })
|
|
34631
34785
|
] }),
|
|
34632
|
-
/* @__PURE__ */ (0,
|
|
34633
|
-
/* @__PURE__ */ (0,
|
|
34634
|
-
/* @__PURE__ */ (0,
|
|
34786
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "text-right text-xs text-gray-500", children: [
|
|
34787
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { children: formatDate2(tx.timestamp) }),
|
|
34788
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "mt-1", children: [
|
|
34635
34789
|
"Gas: ",
|
|
34636
34790
|
parseInt(tx.gas_used).toLocaleString()
|
|
34637
34791
|
] }),
|
|
34638
|
-
tx.method && /* @__PURE__ */ (0,
|
|
34792
|
+
tx.method && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
34639
34793
|
] })
|
|
34640
34794
|
] }),
|
|
34641
|
-
tx.transaction_types.length > 0 && /* @__PURE__ */ (0,
|
|
34795
|
+
tx.transaction_types.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("span", { className: "text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full", children: type.replace("_", " ") }, idx)) })
|
|
34642
34796
|
]
|
|
34643
34797
|
},
|
|
34644
34798
|
tx.hash
|
|
@@ -34818,13 +34972,13 @@ function useUserOpStatus(options = {}) {
|
|
|
34818
34972
|
init_useErc3643Compliance();
|
|
34819
34973
|
|
|
34820
34974
|
// src/hooks/useWalletMode.ts
|
|
34821
|
-
var
|
|
34975
|
+
var import_react113 = require("react");
|
|
34822
34976
|
init_useExternalWalletStore();
|
|
34823
34977
|
function useWalletMode() {
|
|
34824
34978
|
const configMode = useExternalWalletStore((st) => st.configMode);
|
|
34825
34979
|
const activeMode = useExternalWalletStore((st) => st.activeMode);
|
|
34826
34980
|
const setActiveMode = useExternalWalletStore((st) => st.setActiveMode);
|
|
34827
|
-
const switchMode = (0,
|
|
34981
|
+
const switchMode = (0, import_react113.useCallback)(
|
|
34828
34982
|
(mode) => {
|
|
34829
34983
|
if (configMode !== "both") return;
|
|
34830
34984
|
setActiveMode(mode);
|
|
@@ -34842,7 +34996,7 @@ function useWalletMode() {
|
|
|
34842
34996
|
// src/hooks/useDirectWallet.ts
|
|
34843
34997
|
init_useOpenPage();
|
|
34844
34998
|
init_useSafeDisconnect();
|
|
34845
|
-
var
|
|
34999
|
+
var import_react114 = require("react");
|
|
34846
35000
|
init_useExternalWalletStore();
|
|
34847
35001
|
function useDirectWallet() {
|
|
34848
35002
|
const address = useExternalWalletStore((st) => st.externalAddress);
|
|
@@ -34851,10 +35005,10 @@ function useDirectWallet() {
|
|
|
34851
35005
|
const connectorName = useExternalWalletStore((st) => st.connectorName);
|
|
34852
35006
|
const { open: openEmbarkAI } = useOpenPage();
|
|
34853
35007
|
const { mutate: wagmiDisconnect } = useSafeDisconnect();
|
|
34854
|
-
const connect = (0,
|
|
35008
|
+
const connect = (0, import_react114.useCallback)((connectFlowType = "connect") => {
|
|
34855
35009
|
openEmbarkAI("connect-external-wallet" /* CONNECT_EXTERNAL_WALLET */, { connectFlowType });
|
|
34856
35010
|
}, []);
|
|
34857
|
-
const disconnect = (0,
|
|
35011
|
+
const disconnect = (0, import_react114.useCallback)(() => {
|
|
34858
35012
|
wagmiDisconnect();
|
|
34859
35013
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
34860
35014
|
}, [wagmiDisconnect]);
|
|
@@ -34870,7 +35024,7 @@ function useDirectWallet() {
|
|
|
34870
35024
|
}
|
|
34871
35025
|
|
|
34872
35026
|
// src/hooks/useSendDirectTransaction.ts
|
|
34873
|
-
var
|
|
35027
|
+
var import_react115 = require("react");
|
|
34874
35028
|
var import_viem23 = require("viem");
|
|
34875
35029
|
var import_wagmi10 = require("wagmi");
|
|
34876
35030
|
|
|
@@ -34893,10 +35047,10 @@ function useSendDirectTransaction() {
|
|
|
34893
35047
|
const { connector } = (0, import_wagmi10.useConnection)();
|
|
34894
35048
|
const { sendTransactionAsync: sendWagmiTransactionAsync } = (0, import_wagmi10.useSendTransaction)();
|
|
34895
35049
|
const { switchChainAsync } = (0, import_wagmi10.useSwitchChain)();
|
|
34896
|
-
const [isPending, setIsPending] = (0,
|
|
34897
|
-
const [error, setError] = (0,
|
|
34898
|
-
const [txHash, setTxHash] = (0,
|
|
34899
|
-
const sendTransactionAsync = (0,
|
|
35050
|
+
const [isPending, setIsPending] = (0, import_react115.useState)(false);
|
|
35051
|
+
const [error, setError] = (0, import_react115.useState)(null);
|
|
35052
|
+
const [txHash, setTxHash] = (0, import_react115.useState)(null);
|
|
35053
|
+
const sendTransactionAsync = (0, import_react115.useCallback)(
|
|
34900
35054
|
async (params) => {
|
|
34901
35055
|
if (!isConnected || !connector) {
|
|
34902
35056
|
const message = "No external wallet connected";
|
|
@@ -34933,7 +35087,7 @@ function useSendDirectTransaction() {
|
|
|
34933
35087
|
},
|
|
34934
35088
|
[isConnected, connector, sendWagmiTransactionAsync, switchChainAsync]
|
|
34935
35089
|
);
|
|
34936
|
-
const sendTransaction = (0,
|
|
35090
|
+
const sendTransaction = (0, import_react115.useCallback)(
|
|
34937
35091
|
async (params) => {
|
|
34938
35092
|
try {
|
|
34939
35093
|
return await sendTransactionAsync(params);
|
|
@@ -34943,7 +35097,7 @@ function useSendDirectTransaction() {
|
|
|
34943
35097
|
},
|
|
34944
35098
|
[sendTransactionAsync]
|
|
34945
35099
|
);
|
|
34946
|
-
const reset = (0,
|
|
35100
|
+
const reset = (0, import_react115.useCallback)(() => {
|
|
34947
35101
|
setError(null);
|
|
34948
35102
|
setTxHash(null);
|
|
34949
35103
|
setIsPending(false);
|
|
@@ -34952,7 +35106,7 @@ function useSendDirectTransaction() {
|
|
|
34952
35106
|
}
|
|
34953
35107
|
|
|
34954
35108
|
// src/hooks/useTransferToLinkedWallet.ts
|
|
34955
|
-
var
|
|
35109
|
+
var import_react116 = require("react");
|
|
34956
35110
|
var import_viem24 = require("viem");
|
|
34957
35111
|
init_SessionContext();
|
|
34958
35112
|
init_account2();
|
|
@@ -34971,14 +35125,14 @@ var ERC20_TRANSFER_ABI2 = [
|
|
|
34971
35125
|
function useTransferToLinkedWallet() {
|
|
34972
35126
|
const session = useSession((st) => st.session);
|
|
34973
35127
|
const { profiles } = useLinkedProfiles();
|
|
34974
|
-
const [isPending, setIsPending] = (0,
|
|
34975
|
-
const [error, setError] = (0,
|
|
34976
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
34977
|
-
const linkedWallets = (0,
|
|
35128
|
+
const [isPending, setIsPending] = (0, import_react116.useState)(false);
|
|
35129
|
+
const [error, setError] = (0, import_react116.useState)(null);
|
|
35130
|
+
const [userOpHash, setUserOpHash] = (0, import_react116.useState)(null);
|
|
35131
|
+
const linkedWallets = (0, import_react116.useMemo)(
|
|
34978
35132
|
() => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
|
|
34979
35133
|
[profiles]
|
|
34980
35134
|
);
|
|
34981
|
-
const transfer = (0,
|
|
35135
|
+
const transfer = (0, import_react116.useCallback)(
|
|
34982
35136
|
async (params) => {
|
|
34983
35137
|
if (!session) {
|
|
34984
35138
|
setError("No active session");
|
|
@@ -35029,7 +35183,7 @@ function useTransferToLinkedWallet() {
|
|
|
35029
35183
|
},
|
|
35030
35184
|
[session, linkedWallets]
|
|
35031
35185
|
);
|
|
35032
|
-
const reset = (0,
|
|
35186
|
+
const reset = (0, import_react116.useCallback)(() => {
|
|
35033
35187
|
setError(null);
|
|
35034
35188
|
setUserOpHash(null);
|
|
35035
35189
|
setIsPending(false);
|
|
@@ -35054,7 +35208,7 @@ function useNativeWalletSignature() {
|
|
|
35054
35208
|
// src/hooks/useLogout.ts
|
|
35055
35209
|
init_useSafeDisconnect();
|
|
35056
35210
|
var import_auth27 = require("@embarkai/core/auth");
|
|
35057
|
-
var
|
|
35211
|
+
var import_react117 = require("react");
|
|
35058
35212
|
init_ProviderContext();
|
|
35059
35213
|
init_SessionContext();
|
|
35060
35214
|
init_useExternalWalletStore();
|
|
@@ -35072,7 +35226,7 @@ function useLogout() {
|
|
|
35072
35226
|
}
|
|
35073
35227
|
}
|
|
35074
35228
|
});
|
|
35075
|
-
const logout2 = (0,
|
|
35229
|
+
const logout2 = (0, import_react117.useCallback)(async () => {
|
|
35076
35230
|
const { setSession, setIsLoading, setAddress, setStatus, setError } = useSession.getState();
|
|
35077
35231
|
const prevAddress = address;
|
|
35078
35232
|
let userId = null;
|
|
@@ -35191,7 +35345,7 @@ function useTransactions() {
|
|
|
35191
35345
|
|
|
35192
35346
|
// src/modules/assets.ts
|
|
35193
35347
|
init_SessionContext();
|
|
35194
|
-
var
|
|
35348
|
+
var import_react118 = __toESM(require("react"), 1);
|
|
35195
35349
|
var import_viem26 = require("viem");
|
|
35196
35350
|
var import_wagmi13 = require("wagmi");
|
|
35197
35351
|
var COMMON_TOKENS = [
|
|
@@ -35346,7 +35500,7 @@ function useTokenBalance2(tokenAddress, userAddress) {
|
|
|
35346
35500
|
}
|
|
35347
35501
|
});
|
|
35348
35502
|
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
35349
|
-
const formattedBalance =
|
|
35503
|
+
const formattedBalance = import_react118.default.useMemo(() => {
|
|
35350
35504
|
if (!balance || !tokenInfo) return "0";
|
|
35351
35505
|
return (0, import_viem26.formatUnits)(balance, tokenInfo.decimals);
|
|
35352
35506
|
}, [balance, tokenInfo]);
|