@tuwaio/nova-connect 0.1.10 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -15
- package/dist/{ToastError-CaoiEVOK.d.cts → ToastError-C3LvnSma.d.cts} +322 -113
- package/dist/{ToastError-BLFMIzVb.d.ts → ToastError-CVhCoryf.d.ts} +322 -113
- package/dist/chunk-3BMX6JWH.js +2 -0
- package/dist/chunk-3BMX6JWH.js.map +1 -0
- package/dist/chunk-4FB4UCVM.js +6 -0
- package/dist/chunk-4FB4UCVM.js.map +1 -0
- package/dist/chunk-B2NRY4JV.js +2 -0
- package/dist/chunk-B2NRY4JV.js.map +1 -0
- package/dist/chunk-F2VSTHQ4.js +2 -0
- package/dist/chunk-F2VSTHQ4.js.map +1 -0
- package/dist/{chunk-OA6MB7CZ.cjs → chunk-FK4AEST5.cjs} +2 -2
- package/dist/{chunk-OA6MB7CZ.cjs.map → chunk-FK4AEST5.cjs.map} +1 -1
- package/dist/chunk-IMKRWFCZ.cjs +3 -0
- package/dist/chunk-IMKRWFCZ.cjs.map +1 -0
- package/dist/chunk-L5MEEHVK.cjs +2 -0
- package/dist/chunk-L5MEEHVK.cjs.map +1 -0
- package/dist/chunk-P5ZBSLGK.js +2 -0
- package/dist/{chunk-MPEJHQKC.js.map → chunk-P5ZBSLGK.js.map} +1 -1
- package/dist/chunk-PTHXIVB5.cjs +2 -0
- package/dist/chunk-PTHXIVB5.cjs.map +1 -0
- package/dist/chunk-S6WXKVYP.js +3 -0
- package/dist/chunk-S6WXKVYP.js.map +1 -0
- package/dist/chunk-UDTWMOQ2.cjs +6 -0
- package/dist/chunk-UDTWMOQ2.cjs.map +1 -0
- package/dist/chunk-YI7RYSN6.cjs +2 -0
- package/dist/chunk-YI7RYSN6.cjs.map +1 -0
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.cts +3 -3
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.js +1 -1
- package/dist/evm-BVE2G4MP.js +2 -0
- package/dist/evm-BVE2G4MP.js.map +1 -0
- package/dist/evm-DU3VGIPD.cjs +2 -0
- package/dist/evm-DU3VGIPD.cjs.map +1 -0
- package/dist/getChainsListByConnectorType-7W3NDNRC.cjs +2 -0
- package/dist/{getChainsListByWalletType-VMQ4BO2B.js.map → getChainsListByConnectorType-7W3NDNRC.cjs.map} +1 -1
- package/dist/getChainsListByConnectorType-FGTS3CWJ.js +2 -0
- package/dist/{getChainsListByWalletType-CDPECVNS.cjs.map → getChainsListByConnectorType-FGTS3CWJ.js.map} +1 -1
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +23 -4
- package/dist/hooks/index.d.ts +23 -4
- package/dist/hooks/index.js +1 -1
- package/dist/i18n/index.cjs +1 -1
- package/dist/i18n/index.d.cts +1 -1
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +112 -8
- package/dist/index.d.cts +23 -23
- package/dist/index.d.ts +23 -23
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/satellite/index.cjs +1 -1
- package/dist/satellite/index.d.cts +1 -1
- package/dist/satellite/index.d.ts +1 -1
- package/dist/satellite/index.js +1 -1
- package/dist/solana/index.cjs +1 -1
- package/dist/solana/index.js +1 -1
- package/dist/solana-CDGGMN74.cjs +2 -0
- package/dist/solana-CDGGMN74.cjs.map +1 -0
- package/dist/solana-DHXEV2TG.js +2 -0
- package/dist/solana-DHXEV2TG.js.map +1 -0
- package/dist/{types-D4Vti05g.d.cts → types-eao2UQcC.d.cts} +7 -1
- package/dist/{types-D4Vti05g.d.ts → types-eao2UQcC.d.ts} +7 -1
- package/dist/{useWalletNativeBalance-CEASeZ6Z.d.ts → useWalletNativeBalance-Cv8QQLQv.d.ts} +2 -2
- package/dist/{useWalletNativeBalance-DSt1VUWC.d.cts → useWalletNativeBalance-D49yGzRi.d.cts} +2 -2
- package/dist/utils-TF3RVHPT.cjs +2 -0
- package/dist/{utils-H5O25MTI.cjs.map → utils-TF3RVHPT.cjs.map} +1 -1
- package/dist/utils-YYMTL3XH.js +2 -0
- package/dist/{utils-SUIRQJIA.js.map → utils-YYMTL3XH.js.map} +1 -1
- package/package.json +38 -43
- package/dist/chunk-7F5QM2LC.js +0 -6
- package/dist/chunk-7F5QM2LC.js.map +0 -1
- package/dist/chunk-7FTV55DQ.cjs +0 -2
- package/dist/chunk-7FTV55DQ.cjs.map +0 -1
- package/dist/chunk-B26D6OI7.cjs +0 -6
- package/dist/chunk-B26D6OI7.cjs.map +0 -1
- package/dist/chunk-DYDY3FCT.cjs +0 -2
- package/dist/chunk-DYDY3FCT.cjs.map +0 -1
- package/dist/chunk-J4TY3CJF.js +0 -2
- package/dist/chunk-J4TY3CJF.js.map +0 -1
- package/dist/chunk-MPEJHQKC.js +0 -2
- package/dist/chunk-MQGDTFY7.js +0 -2
- package/dist/chunk-MQGDTFY7.js.map +0 -1
- package/dist/chunk-NMQZA377.cjs +0 -2
- package/dist/chunk-NMQZA377.cjs.map +0 -1
- package/dist/chunk-QERPNHKX.cjs +0 -2
- package/dist/chunk-QERPNHKX.cjs.map +0 -1
- package/dist/chunk-S5WT3DLF.js +0 -2
- package/dist/chunk-S5WT3DLF.js.map +0 -1
- package/dist/chunk-TAV7EL23.js +0 -2
- package/dist/chunk-TAV7EL23.js.map +0 -1
- package/dist/evm-7NHOTSAK.cjs +0 -2
- package/dist/evm-7NHOTSAK.cjs.map +0 -1
- package/dist/evm-RBGEX4L3.js +0 -2
- package/dist/evm-RBGEX4L3.js.map +0 -1
- package/dist/getChainsListByWalletType-CDPECVNS.cjs +0 -2
- package/dist/getChainsListByWalletType-VMQ4BO2B.js +0 -2
- package/dist/solana-GLHHYZDQ.js +0 -2
- package/dist/solana-GLHHYZDQ.js.map +0 -1
- package/dist/solana-JUU54KQ3.cjs +0 -2
- package/dist/solana-JUU54KQ3.cjs.map +0 -1
- package/dist/utils-H5O25MTI.cjs +0 -2
- package/dist/utils-SUIRQJIA.js +0 -2
package/dist/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! tailwindcss v4.1.
|
|
1
|
+
/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
|
|
2
2
|
@layer properties;
|
|
3
3
|
@layer theme, base, components, utilities;
|
|
4
4
|
@layer theme {
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
monospace;
|
|
8
8
|
--novacon-color-red-500: oklch(63.7% 0.237 25.331);
|
|
9
9
|
--novacon-color-red-600: oklch(57.7% 0.245 27.325);
|
|
10
|
+
--novacon-color-green-600: oklch(62.7% 0.194 149.214);
|
|
10
11
|
--novacon-color-blue-500: oklch(62.3% 0.214 259.815);
|
|
11
|
-
--novacon-color-gray-300: oklch(87.2% 0.01 258.338);
|
|
12
12
|
--novacon-color-white: #fff;
|
|
13
13
|
--novacon-spacing: 0.25rem;
|
|
14
14
|
--novacon-container-md: 28rem;
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
--novacon-font-weight-medium: 500;
|
|
26
26
|
--novacon-font-weight-semibold: 600;
|
|
27
27
|
--novacon-font-weight-bold: 700;
|
|
28
|
+
--novacon-tracking-wider: 0.05em;
|
|
28
29
|
--novacon-leading-relaxed: 1.625;
|
|
29
30
|
--novacon-radius-md: 0.375rem;
|
|
30
31
|
--novacon-radius-lg: 0.5rem;
|
|
@@ -106,12 +107,18 @@
|
|
|
106
107
|
.novacon\:right-0\.5 {
|
|
107
108
|
right: calc(var(--novacon-spacing) * 0.5);
|
|
108
109
|
}
|
|
110
|
+
.novacon\:right-2 {
|
|
111
|
+
right: calc(var(--novacon-spacing) * 2);
|
|
112
|
+
}
|
|
109
113
|
.novacon\:right-5 {
|
|
110
114
|
right: calc(var(--novacon-spacing) * 5);
|
|
111
115
|
}
|
|
112
116
|
.novacon\:right-\[-10px\] {
|
|
113
117
|
right: -10px;
|
|
114
118
|
}
|
|
119
|
+
.novacon\:right-\[-30px\] {
|
|
120
|
+
right: -30px;
|
|
121
|
+
}
|
|
115
122
|
.novacon\:right-\[-40px\] {
|
|
116
123
|
right: -40px;
|
|
117
124
|
}
|
|
@@ -142,6 +149,9 @@
|
|
|
142
149
|
.novacon\:left-1\/2 {
|
|
143
150
|
left: calc(1/2 * 100%);
|
|
144
151
|
}
|
|
152
|
+
.novacon\:left-2 {
|
|
153
|
+
left: calc(var(--novacon-spacing) * 2);
|
|
154
|
+
}
|
|
145
155
|
.novacon\:left-\[-10px\] {
|
|
146
156
|
left: -10px;
|
|
147
157
|
}
|
|
@@ -193,6 +203,9 @@
|
|
|
193
203
|
.novacon\:mt-3 {
|
|
194
204
|
margin-top: calc(var(--novacon-spacing) * 3);
|
|
195
205
|
}
|
|
206
|
+
.novacon\:mt-4 {
|
|
207
|
+
margin-top: calc(var(--novacon-spacing) * 4);
|
|
208
|
+
}
|
|
196
209
|
.novacon\:mt-6 {
|
|
197
210
|
margin-top: calc(var(--novacon-spacing) * 6);
|
|
198
211
|
}
|
|
@@ -217,6 +230,15 @@
|
|
|
217
230
|
.novacon\:-ml-2 {
|
|
218
231
|
margin-left: calc(var(--novacon-spacing) * -2);
|
|
219
232
|
}
|
|
233
|
+
.novacon\:ml-0 {
|
|
234
|
+
margin-left: calc(var(--novacon-spacing) * 0);
|
|
235
|
+
}
|
|
236
|
+
.novacon\:ml-2 {
|
|
237
|
+
margin-left: calc(var(--novacon-spacing) * 2);
|
|
238
|
+
}
|
|
239
|
+
.novacon\:ml-4 {
|
|
240
|
+
margin-left: calc(var(--novacon-spacing) * 4);
|
|
241
|
+
}
|
|
220
242
|
.novacon\:ml-auto {
|
|
221
243
|
margin-left: auto;
|
|
222
244
|
}
|
|
@@ -292,6 +314,9 @@
|
|
|
292
314
|
.novacon\:max-h-32 {
|
|
293
315
|
max-height: calc(var(--novacon-spacing) * 32);
|
|
294
316
|
}
|
|
317
|
+
.novacon\:max-h-\[240px\] {
|
|
318
|
+
max-height: 240px;
|
|
319
|
+
}
|
|
295
320
|
.novacon\:max-h-\[310px\] {
|
|
296
321
|
max-height: 310px;
|
|
297
322
|
}
|
|
@@ -476,6 +501,9 @@
|
|
|
476
501
|
.novacon\:gap-4 {
|
|
477
502
|
gap: calc(var(--novacon-spacing) * 4);
|
|
478
503
|
}
|
|
504
|
+
.novacon\:gap-6 {
|
|
505
|
+
gap: calc(var(--novacon-spacing) * 6);
|
|
506
|
+
}
|
|
479
507
|
.novacon\:space-y-1 {
|
|
480
508
|
:where(& > :not(:last-child)) {
|
|
481
509
|
--tw-space-y-reverse: 0;
|
|
@@ -531,9 +559,6 @@
|
|
|
531
559
|
.novacon\:overflow-y-auto {
|
|
532
560
|
overflow-y: auto;
|
|
533
561
|
}
|
|
534
|
-
.novacon\:rounded {
|
|
535
|
-
border-radius: 0.25rem;
|
|
536
|
-
}
|
|
537
562
|
.novacon\:rounded-full {
|
|
538
563
|
border-radius: calc(infinity * 1px);
|
|
539
564
|
}
|
|
@@ -562,6 +587,13 @@
|
|
|
562
587
|
border-bottom-style: var(--tw-border-style);
|
|
563
588
|
border-bottom-width: 1px;
|
|
564
589
|
}
|
|
590
|
+
.novacon\:border-dashed {
|
|
591
|
+
--tw-border-style: dashed;
|
|
592
|
+
border-style: dashed;
|
|
593
|
+
}
|
|
594
|
+
.novacon\:border-\[var\(--tuwa-bg-secondary\)\] {
|
|
595
|
+
border-color: var(--tuwa-bg-secondary);
|
|
596
|
+
}
|
|
565
597
|
.novacon\:border-\[var\(--tuwa-border-primary\)\] {
|
|
566
598
|
border-color: var(--tuwa-border-primary);
|
|
567
599
|
}
|
|
@@ -577,6 +609,9 @@
|
|
|
577
609
|
.novacon\:border-\[var\(--tuwa-text-accent\)\] {
|
|
578
610
|
border-color: var(--tuwa-text-accent);
|
|
579
611
|
}
|
|
612
|
+
.novacon\:border-blue-500 {
|
|
613
|
+
border-color: var(--novacon-color-blue-500);
|
|
614
|
+
}
|
|
580
615
|
.novacon\:border-red-500 {
|
|
581
616
|
border-color: var(--novacon-color-red-500);
|
|
582
617
|
}
|
|
@@ -586,6 +621,12 @@
|
|
|
586
621
|
.novacon\:border-t-transparent {
|
|
587
622
|
border-top-color: transparent;
|
|
588
623
|
}
|
|
624
|
+
.novacon\:bg-\[var\(--tuwa-bg-accent\)\]\/10 {
|
|
625
|
+
background-color: var(--tuwa-bg-accent);
|
|
626
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
627
|
+
background-color: color-mix(in oklab, var(--tuwa-bg-accent) 10%, transparent);
|
|
628
|
+
}
|
|
629
|
+
}
|
|
589
630
|
.novacon\:bg-\[var\(--tuwa-bg-muted\)\] {
|
|
590
631
|
background-color: var(--tuwa-bg-muted);
|
|
591
632
|
}
|
|
@@ -607,6 +648,12 @@
|
|
|
607
648
|
.novacon\:bg-\[var\(--tuwa-error-text\)\] {
|
|
608
649
|
background-color: var(--tuwa-error-text);
|
|
609
650
|
}
|
|
651
|
+
.novacon\:bg-\[var\(--tuwa-success-bg\)\]\/20 {
|
|
652
|
+
background-color: var(--tuwa-success-bg);
|
|
653
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
654
|
+
background-color: color-mix(in oklab, var(--tuwa-success-bg) 20%, transparent);
|
|
655
|
+
}
|
|
656
|
+
}
|
|
610
657
|
.novacon\:bg-\[var\(--tuwa-success-text\)\] {
|
|
611
658
|
background-color: var(--tuwa-success-text);
|
|
612
659
|
}
|
|
@@ -619,9 +666,6 @@
|
|
|
619
666
|
.novacon\:bg-blue-500 {
|
|
620
667
|
background-color: var(--novacon-color-blue-500);
|
|
621
668
|
}
|
|
622
|
-
.novacon\:bg-gray-300 {
|
|
623
|
-
background-color: var(--novacon-color-gray-300);
|
|
624
|
-
}
|
|
625
669
|
.novacon\:bg-red-500 {
|
|
626
670
|
background-color: var(--novacon-color-red-500);
|
|
627
671
|
}
|
|
@@ -702,6 +746,9 @@
|
|
|
702
746
|
.novacon\:py-1 {
|
|
703
747
|
padding-block: calc(var(--novacon-spacing) * 1);
|
|
704
748
|
}
|
|
749
|
+
.novacon\:py-1\.5 {
|
|
750
|
+
padding-block: calc(var(--novacon-spacing) * 1.5);
|
|
751
|
+
}
|
|
705
752
|
.novacon\:py-2 {
|
|
706
753
|
padding-block: calc(var(--novacon-spacing) * 2);
|
|
707
754
|
}
|
|
@@ -781,6 +828,10 @@
|
|
|
781
828
|
--tw-font-weight: var(--novacon-font-weight-semibold);
|
|
782
829
|
font-weight: var(--novacon-font-weight-semibold);
|
|
783
830
|
}
|
|
831
|
+
.novacon\:tracking-wider {
|
|
832
|
+
--tw-tracking: var(--novacon-tracking-wider);
|
|
833
|
+
letter-spacing: var(--novacon-tracking-wider);
|
|
834
|
+
}
|
|
784
835
|
.novacon\:break-words {
|
|
785
836
|
overflow-wrap: break-word;
|
|
786
837
|
}
|
|
@@ -814,15 +865,27 @@
|
|
|
814
865
|
.novacon\:text-\[var\(--tuwa-warning-text\)\] {
|
|
815
866
|
color: var(--tuwa-warning-text);
|
|
816
867
|
}
|
|
868
|
+
.novacon\:text-blue-500 {
|
|
869
|
+
color: var(--novacon-color-blue-500);
|
|
870
|
+
}
|
|
871
|
+
.novacon\:text-green-600 {
|
|
872
|
+
color: var(--novacon-color-green-600);
|
|
873
|
+
}
|
|
817
874
|
.novacon\:text-red-500 {
|
|
818
875
|
color: var(--novacon-color-red-500);
|
|
819
876
|
}
|
|
820
877
|
.novacon\:text-white {
|
|
821
878
|
color: var(--novacon-color-white);
|
|
822
879
|
}
|
|
880
|
+
.novacon\:uppercase {
|
|
881
|
+
text-transform: uppercase;
|
|
882
|
+
}
|
|
823
883
|
.novacon\:opacity-0 {
|
|
824
884
|
opacity: 0%;
|
|
825
885
|
}
|
|
886
|
+
.novacon\:opacity-25 {
|
|
887
|
+
opacity: 25%;
|
|
888
|
+
}
|
|
826
889
|
.novacon\:opacity-50 {
|
|
827
890
|
opacity: 50%;
|
|
828
891
|
}
|
|
@@ -911,6 +974,13 @@
|
|
|
911
974
|
-moz-user-select: none;
|
|
912
975
|
user-select: none;
|
|
913
976
|
}
|
|
977
|
+
.novacon\:group-hover\:ml-6 {
|
|
978
|
+
&:is(:where(.novacon\:group):hover *) {
|
|
979
|
+
@media (hover: hover) {
|
|
980
|
+
margin-left: calc(var(--novacon-spacing) * 6);
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
}
|
|
914
984
|
.novacon\:group-hover\:translate-x-0 {
|
|
915
985
|
&:is(:where(.novacon\:group):hover *) {
|
|
916
986
|
@media (hover: hover) {
|
|
@@ -1073,6 +1143,23 @@
|
|
|
1073
1143
|
}
|
|
1074
1144
|
}
|
|
1075
1145
|
}
|
|
1146
|
+
.novacon\:hover\:border-\[var\(--tuwa-text-accent\)\] {
|
|
1147
|
+
&:hover {
|
|
1148
|
+
@media (hover: hover) {
|
|
1149
|
+
border-color: var(--tuwa-text-accent);
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
}
|
|
1153
|
+
.novacon\:hover\:bg-\[var\(--tuwa-bg-error\)\]\/10 {
|
|
1154
|
+
&:hover {
|
|
1155
|
+
@media (hover: hover) {
|
|
1156
|
+
background-color: var(--tuwa-bg-error);
|
|
1157
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1158
|
+
background-color: color-mix(in oklab, var(--tuwa-bg-error) 10%, transparent);
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
}
|
|
1162
|
+
}
|
|
1076
1163
|
.novacon\:hover\:bg-\[var\(--tuwa-bg-muted\)\] {
|
|
1077
1164
|
&:hover {
|
|
1078
1165
|
@media (hover: hover) {
|
|
@@ -1138,6 +1225,13 @@
|
|
|
1138
1225
|
}
|
|
1139
1226
|
}
|
|
1140
1227
|
}
|
|
1228
|
+
.novacon\:hover\:text-\[var\(--tuwa-text-accent\)\] {
|
|
1229
|
+
&:hover {
|
|
1230
|
+
@media (hover: hover) {
|
|
1231
|
+
color: var(--tuwa-text-accent);
|
|
1232
|
+
}
|
|
1233
|
+
}
|
|
1234
|
+
}
|
|
1141
1235
|
.novacon\:hover\:text-\[var\(--tuwa-text-primary\)\] {
|
|
1142
1236
|
&:hover {
|
|
1143
1237
|
@media (hover: hover) {
|
|
@@ -1191,6 +1285,11 @@
|
|
|
1191
1285
|
--tw-ring-color: var(--tuwa-text-secondary);
|
|
1192
1286
|
}
|
|
1193
1287
|
}
|
|
1288
|
+
.novacon\:focus\:ring-blue-500 {
|
|
1289
|
+
&:focus {
|
|
1290
|
+
--tw-ring-color: var(--novacon-color-blue-500);
|
|
1291
|
+
}
|
|
1292
|
+
}
|
|
1194
1293
|
.novacon\:focus\:ring-red-500 {
|
|
1195
1294
|
&:focus {
|
|
1196
1295
|
--tw-ring-color: var(--novacon-color-red-500);
|
|
@@ -1839,6 +1938,10 @@ div[data-radix-popper-content-wrapper] {
|
|
|
1839
1938
|
syntax: "*";
|
|
1840
1939
|
inherits: false;
|
|
1841
1940
|
}
|
|
1941
|
+
@property --tw-tracking {
|
|
1942
|
+
syntax: "*";
|
|
1943
|
+
inherits: false;
|
|
1944
|
+
}
|
|
1842
1945
|
@property --tw-shadow {
|
|
1843
1946
|
syntax: "*";
|
|
1844
1947
|
inherits: false;
|
|
@@ -2001,6 +2104,7 @@ div[data-radix-popper-content-wrapper] {
|
|
|
2001
2104
|
--tw-gradient-to-position: 100%;
|
|
2002
2105
|
--tw-leading: initial;
|
|
2003
2106
|
--tw-font-weight: initial;
|
|
2107
|
+
--tw-tracking: initial;
|
|
2004
2108
|
--tw-shadow: 0 0 #0000;
|
|
2005
2109
|
--tw-shadow-color: initial;
|
|
2006
2110
|
--tw-shadow-alpha: 100%;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { OrbitAdapter,
|
|
2
|
-
export { WalletNameAndAvatarData, useGetWalletNameAndAvatar } from './hooks/index.cjs';
|
|
3
|
-
import { C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, N as NovaConnectProviderType, b as NovaConnectProviderProps } from './useWalletNativeBalance-
|
|
4
|
-
export { L as LabelCategory, p as NativeBalanceResult, g as NovaConnectLabelsContext, d as NovaConnectProviderContext, c as NovaConnectProviderError, W as WalletBalance, o as createLabelsSubset, n as getLabelWithFallback, k as hasLabel, m as isDefaultLabels, e as useHasNovaConnectContext, l as useLabelsByCategory, u as useNovaConnect, i as useNovaConnectLabel, h as useNovaConnectLabels, j as useNovaConnectLabelsSubset, f as useNovaConnectOptional, q as useWalletNativeBalance } from './useWalletNativeBalance-
|
|
1
|
+
import { OrbitAdapter, ConnectorType } from '@tuwaio/orbit-core';
|
|
2
|
+
export { WalletNameAndAvatarData, useGetWalletNameAndAvatar, useWalletChainsList } from './hooks/index.cjs';
|
|
3
|
+
import { C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, N as NovaConnectProviderType, b as NovaConnectProviderProps } from './useWalletNativeBalance-D49yGzRi.cjs';
|
|
4
|
+
export { L as LabelCategory, p as NativeBalanceResult, g as NovaConnectLabelsContext, d as NovaConnectProviderContext, c as NovaConnectProviderError, W as WalletBalance, o as createLabelsSubset, n as getLabelWithFallback, k as hasLabel, m as isDefaultLabels, e as useHasNovaConnectContext, l as useLabelsByCategory, u as useNovaConnect, i as useNovaConnectLabel, h as useNovaConnectLabels, j as useNovaConnectLabelsSubset, f as useNovaConnectOptional, q as useWalletNativeBalance } from './useWalletNativeBalance-D49yGzRi.cjs';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
import { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
7
7
|
import { ToastContainer, toast, ToastPosition } from 'react-toastify';
|
|
8
|
-
import { at as ToastErrorCustomization, aJ as ConnectModalCustomization, u as ConnectedModalCustomization } from './ToastError-
|
|
9
|
-
export { aK as getNetworkIcon } from './ToastError-
|
|
10
|
-
import { N as NovaConnectLabels } from './types-
|
|
11
|
-
import {
|
|
8
|
+
import { at as ToastErrorCustomization, aJ as ConnectModalCustomization, u as ConnectedModalCustomization } from './ToastError-C3LvnSma.cjs';
|
|
9
|
+
export { aK as getNetworkIcon } from './ToastError-C3LvnSma.cjs';
|
|
10
|
+
import { N as NovaConnectLabels } from './types-eao2UQcC.cjs';
|
|
11
|
+
import { BaseConnector } from '@tuwaio/satellite-core';
|
|
12
12
|
import { I as InitialChains, C as ChainIdentifierArray } from './types-DGsiEwne.cjs';
|
|
13
13
|
export { A as AllChainConfigs } from './types-DGsiEwne.cjs';
|
|
14
14
|
import { Connector } from '@tuwaio/satellite-react';
|
|
@@ -158,9 +158,9 @@ type ProviderContext = {
|
|
|
158
158
|
/** Current wallet connection state */
|
|
159
159
|
isConnected: boolean;
|
|
160
160
|
/** Active wallet instance */
|
|
161
|
-
|
|
161
|
+
activeConnection: BaseConnector | undefined;
|
|
162
162
|
/** Current wallet connection error */
|
|
163
|
-
|
|
163
|
+
connectionError: string | undefined;
|
|
164
164
|
/** All modal and UI states */
|
|
165
165
|
modalStates: {
|
|
166
166
|
isConnectModalOpen: boolean;
|
|
@@ -307,7 +307,7 @@ declare namespace NovaConnectProvider {
|
|
|
307
307
|
* @example
|
|
308
308
|
* ```typescript
|
|
309
309
|
* const params: GetChainsListParams = {
|
|
310
|
-
*
|
|
310
|
+
* connectorType: WalletType.EVM_METAMASK,
|
|
311
311
|
* appChains: [
|
|
312
312
|
* { id: 1, name: 'Ethereum' },
|
|
313
313
|
* { id: 137, name: 'Polygon' }
|
|
@@ -318,12 +318,12 @@ declare namespace NovaConnectProvider {
|
|
|
318
318
|
*/
|
|
319
319
|
interface GetChainsListParams extends InitialChains {
|
|
320
320
|
/** The wallet type to determine chain compatibility */
|
|
321
|
-
|
|
321
|
+
connectorType: ConnectorType;
|
|
322
322
|
/** Optional array of specific chain identifiers to filter or validate */
|
|
323
323
|
chains?: ChainIdentifierArray;
|
|
324
324
|
}
|
|
325
325
|
/**
|
|
326
|
-
* Retrieves chain list for a specific
|
|
326
|
+
* Retrieves chain list for a specific connectorType type with automatic adapter loading.
|
|
327
327
|
*
|
|
328
328
|
* This is the primary function for getting blockchain-compatible chains based on
|
|
329
329
|
* wallet type and configuration. It automatically determines the correct adapter,
|
|
@@ -334,14 +334,14 @@ interface GetChainsListParams extends InitialChains {
|
|
|
334
334
|
* - Solana clusters: Returns string cluster names from RPC configuration
|
|
335
335
|
* - Future blockchains: Extensible through the adapter pattern
|
|
336
336
|
*
|
|
337
|
-
* @param params - Configuration object with
|
|
337
|
+
* @param params - Configuration object with connectorType type and chain data
|
|
338
338
|
* @returns Promise resolving to array of chain identifiers
|
|
339
339
|
*
|
|
340
340
|
* @example
|
|
341
341
|
* ```typescript
|
|
342
342
|
* // Get EVM chains for MetaMask
|
|
343
|
-
* const evmChains = await
|
|
344
|
-
*
|
|
343
|
+
* const evmChains = await getChainsListByConnectorType({
|
|
344
|
+
* connectorType: ConnectorType.EVM_METAMASK,
|
|
345
345
|
* appChains: [
|
|
346
346
|
* { id: 1, name: 'Ethereum' },
|
|
347
347
|
* { id: 137, name: 'Polygon' }
|
|
@@ -350,8 +350,8 @@ interface GetChainsListParams extends InitialChains {
|
|
|
350
350
|
* // Returns: [1, 137]
|
|
351
351
|
*
|
|
352
352
|
* // Get Solana clusters for Phantom
|
|
353
|
-
* const solanaClusters = await
|
|
354
|
-
*
|
|
353
|
+
* const solanaClusters = await getChainsListByConnectorType({
|
|
354
|
+
* connectorType: ConnectorType.SOLANA_PHANTOM,
|
|
355
355
|
* solanaRPCUrls: {
|
|
356
356
|
* 'mainnet-beta': 'https://api.mainnet-beta.solana.com',
|
|
357
357
|
* 'devnet': 'https://api.devnet.solana.com'
|
|
@@ -362,7 +362,7 @@ interface GetChainsListParams extends InitialChains {
|
|
|
362
362
|
*
|
|
363
363
|
* @since 1.0.0
|
|
364
364
|
*/
|
|
365
|
-
declare function
|
|
365
|
+
declare function getChainsListByConnectorType(params: GetChainsListParams): Promise<(string | number)[]>;
|
|
366
366
|
/**
|
|
367
367
|
* Synchronous version that only works with pre-loaded adapters.
|
|
368
368
|
*
|
|
@@ -386,14 +386,14 @@ declare function getChainsListByWalletType(params: GetChainsListParams): Promise
|
|
|
386
386
|
*
|
|
387
387
|
* // Now safe to use sync version
|
|
388
388
|
* const chains = getChainsListByWalletTypeSync({
|
|
389
|
-
*
|
|
389
|
+
* connectorType: ConnectorType.EVM_METAMASK,
|
|
390
390
|
* appChains: evmConfiguration
|
|
391
391
|
* });
|
|
392
392
|
* ```
|
|
393
393
|
*
|
|
394
394
|
* @since 1.0.0
|
|
395
395
|
*/
|
|
396
|
-
declare function
|
|
396
|
+
declare function getChainsListByConnectorTypeSync(params: GetChainsListParams): (string | number)[];
|
|
397
397
|
/**
|
|
398
398
|
* Validates if a chain list conforms to EVM format (with adapter loading).
|
|
399
399
|
*
|
|
@@ -918,7 +918,7 @@ declare const networksLinks: Partial<Record<OrbitAdapter, {
|
|
|
918
918
|
* @example
|
|
919
919
|
* ```typescript
|
|
920
920
|
* // Import synchronous version (backward compatible)
|
|
921
|
-
* import {
|
|
921
|
+
* import { getChainsListByConnectorType, isEvmChainList } from './utils';
|
|
922
922
|
*
|
|
923
923
|
* // Import asynchronous version (better performance)
|
|
924
924
|
* import {
|
|
@@ -1154,4 +1154,4 @@ declare function initializeBlockchainSupport(): Promise<InitializationResult>;
|
|
|
1154
1154
|
*/
|
|
1155
1155
|
declare function isAdapterSupported(adapter: OrbitAdapter): Promise<boolean>;
|
|
1156
1156
|
|
|
1157
|
-
export { type AdapterInfo, type AdapterLoadStatus, type BlockchainUtilities, type BlockchainUtilityResult, ButtonTxStatus, type ChainAdapter, ChainIdentifierArray, ConnectContentType, ConnectedContentType, ErrorsProvider, type ErrorsProviderCustomization, type ErrorsProviderProps, type GroupedConnector, InitialChains, type InitializationResult, NovaConnectLabelsProvider, NovaConnectProvider, type NovaConnectProviderCustomization, NovaConnectProviderProps, type NovaConnectProviderPropsWithCustomization, NovaConnectProviderType, getAdapterStatus, getAllAdaptersStatus, getAvailableChainIds, getAvailableSolanaClusters, getAvailableSolanaClusters$1 as getAvailableSolanaClustersAsync, getBlockchainUtilities,
|
|
1157
|
+
export { type AdapterInfo, type AdapterLoadStatus, type BlockchainUtilities, type BlockchainUtilityResult, ButtonTxStatus, type ChainAdapter, ChainIdentifierArray, ConnectContentType, ConnectedContentType, ErrorsProvider, type ErrorsProviderCustomization, type ErrorsProviderProps, type GroupedConnector, InitialChains, type InitializationResult, NovaConnectLabelsProvider, NovaConnectProvider, type NovaConnectProviderCustomization, NovaConnectProviderProps, type NovaConnectProviderPropsWithCustomization, NovaConnectProviderType, getAdapterStatus, getAllAdaptersStatus, getAvailableChainIds, getAvailableSolanaClusters, getAvailableSolanaClusters$1 as getAvailableSolanaClustersAsync, getBlockchainUtilities, getChainsListByConnectorTypeSync as getChainsListByConnectorType, getChainsListByConnectorType as getChainsListByConnectorTypeAsync, getChainsListByConnectorTypeSync, getConnectChainId, getEvmUtils, getFilteredConnectors, getGroupedConnectors, getSolanaUtils, getWalletChains, hasAvailableConnectors, hasConnectorsForAdapter, initializeBlockchainSupport, isAdapterSupported, isEvmChainListSync as isEvmChainList, isEvmChainList as isEvmChainListAsync, isEvmChainListSync, isSolanaChainListSync as isSolanaChainList, isSolanaChainList as isSolanaChainListAsync, isSolanaChainListSync, isValidSolanaCluster, isValidSolanaCluster$1 as isValidSolanaClusterAsync, networksLinks, preloadChainAdapters };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { OrbitAdapter,
|
|
2
|
-
export { WalletNameAndAvatarData, useGetWalletNameAndAvatar } from './hooks/index.js';
|
|
3
|
-
import { C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, N as NovaConnectProviderType, b as NovaConnectProviderProps } from './useWalletNativeBalance-
|
|
4
|
-
export { L as LabelCategory, p as NativeBalanceResult, g as NovaConnectLabelsContext, d as NovaConnectProviderContext, c as NovaConnectProviderError, W as WalletBalance, o as createLabelsSubset, n as getLabelWithFallback, k as hasLabel, m as isDefaultLabels, e as useHasNovaConnectContext, l as useLabelsByCategory, u as useNovaConnect, i as useNovaConnectLabel, h as useNovaConnectLabels, j as useNovaConnectLabelsSubset, f as useNovaConnectOptional, q as useWalletNativeBalance } from './useWalletNativeBalance-
|
|
1
|
+
import { OrbitAdapter, ConnectorType } from '@tuwaio/orbit-core';
|
|
2
|
+
export { WalletNameAndAvatarData, useGetWalletNameAndAvatar, useWalletChainsList } from './hooks/index.js';
|
|
3
|
+
import { C as ConnectContentType, a as ConnectedContentType, B as ButtonTxStatus, N as NovaConnectProviderType, b as NovaConnectProviderProps } from './useWalletNativeBalance-Cv8QQLQv.js';
|
|
4
|
+
export { L as LabelCategory, p as NativeBalanceResult, g as NovaConnectLabelsContext, d as NovaConnectProviderContext, c as NovaConnectProviderError, W as WalletBalance, o as createLabelsSubset, n as getLabelWithFallback, k as hasLabel, m as isDefaultLabels, e as useHasNovaConnectContext, l as useLabelsByCategory, u as useNovaConnect, i as useNovaConnectLabel, h as useNovaConnectLabels, j as useNovaConnectLabelsSubset, f as useNovaConnectOptional, q as useWalletNativeBalance } from './useWalletNativeBalance-Cv8QQLQv.js';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
import { ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
|
|
7
7
|
import { ToastContainer, toast, ToastPosition } from 'react-toastify';
|
|
8
|
-
import { at as ToastErrorCustomization, aJ as ConnectModalCustomization, u as ConnectedModalCustomization } from './ToastError-
|
|
9
|
-
export { aK as getNetworkIcon } from './ToastError-
|
|
10
|
-
import { N as NovaConnectLabels } from './types-
|
|
11
|
-
import {
|
|
8
|
+
import { at as ToastErrorCustomization, aJ as ConnectModalCustomization, u as ConnectedModalCustomization } from './ToastError-CVhCoryf.js';
|
|
9
|
+
export { aK as getNetworkIcon } from './ToastError-CVhCoryf.js';
|
|
10
|
+
import { N as NovaConnectLabels } from './types-eao2UQcC.js';
|
|
11
|
+
import { BaseConnector } from '@tuwaio/satellite-core';
|
|
12
12
|
import { I as InitialChains, C as ChainIdentifierArray } from './types-DGsiEwne.js';
|
|
13
13
|
export { A as AllChainConfigs } from './types-DGsiEwne.js';
|
|
14
14
|
import { Connector } from '@tuwaio/satellite-react';
|
|
@@ -158,9 +158,9 @@ type ProviderContext = {
|
|
|
158
158
|
/** Current wallet connection state */
|
|
159
159
|
isConnected: boolean;
|
|
160
160
|
/** Active wallet instance */
|
|
161
|
-
|
|
161
|
+
activeConnection: BaseConnector | undefined;
|
|
162
162
|
/** Current wallet connection error */
|
|
163
|
-
|
|
163
|
+
connectionError: string | undefined;
|
|
164
164
|
/** All modal and UI states */
|
|
165
165
|
modalStates: {
|
|
166
166
|
isConnectModalOpen: boolean;
|
|
@@ -307,7 +307,7 @@ declare namespace NovaConnectProvider {
|
|
|
307
307
|
* @example
|
|
308
308
|
* ```typescript
|
|
309
309
|
* const params: GetChainsListParams = {
|
|
310
|
-
*
|
|
310
|
+
* connectorType: WalletType.EVM_METAMASK,
|
|
311
311
|
* appChains: [
|
|
312
312
|
* { id: 1, name: 'Ethereum' },
|
|
313
313
|
* { id: 137, name: 'Polygon' }
|
|
@@ -318,12 +318,12 @@ declare namespace NovaConnectProvider {
|
|
|
318
318
|
*/
|
|
319
319
|
interface GetChainsListParams extends InitialChains {
|
|
320
320
|
/** The wallet type to determine chain compatibility */
|
|
321
|
-
|
|
321
|
+
connectorType: ConnectorType;
|
|
322
322
|
/** Optional array of specific chain identifiers to filter or validate */
|
|
323
323
|
chains?: ChainIdentifierArray;
|
|
324
324
|
}
|
|
325
325
|
/**
|
|
326
|
-
* Retrieves chain list for a specific
|
|
326
|
+
* Retrieves chain list for a specific connectorType type with automatic adapter loading.
|
|
327
327
|
*
|
|
328
328
|
* This is the primary function for getting blockchain-compatible chains based on
|
|
329
329
|
* wallet type and configuration. It automatically determines the correct adapter,
|
|
@@ -334,14 +334,14 @@ interface GetChainsListParams extends InitialChains {
|
|
|
334
334
|
* - Solana clusters: Returns string cluster names from RPC configuration
|
|
335
335
|
* - Future blockchains: Extensible through the adapter pattern
|
|
336
336
|
*
|
|
337
|
-
* @param params - Configuration object with
|
|
337
|
+
* @param params - Configuration object with connectorType type and chain data
|
|
338
338
|
* @returns Promise resolving to array of chain identifiers
|
|
339
339
|
*
|
|
340
340
|
* @example
|
|
341
341
|
* ```typescript
|
|
342
342
|
* // Get EVM chains for MetaMask
|
|
343
|
-
* const evmChains = await
|
|
344
|
-
*
|
|
343
|
+
* const evmChains = await getChainsListByConnectorType({
|
|
344
|
+
* connectorType: ConnectorType.EVM_METAMASK,
|
|
345
345
|
* appChains: [
|
|
346
346
|
* { id: 1, name: 'Ethereum' },
|
|
347
347
|
* { id: 137, name: 'Polygon' }
|
|
@@ -350,8 +350,8 @@ interface GetChainsListParams extends InitialChains {
|
|
|
350
350
|
* // Returns: [1, 137]
|
|
351
351
|
*
|
|
352
352
|
* // Get Solana clusters for Phantom
|
|
353
|
-
* const solanaClusters = await
|
|
354
|
-
*
|
|
353
|
+
* const solanaClusters = await getChainsListByConnectorType({
|
|
354
|
+
* connectorType: ConnectorType.SOLANA_PHANTOM,
|
|
355
355
|
* solanaRPCUrls: {
|
|
356
356
|
* 'mainnet-beta': 'https://api.mainnet-beta.solana.com',
|
|
357
357
|
* 'devnet': 'https://api.devnet.solana.com'
|
|
@@ -362,7 +362,7 @@ interface GetChainsListParams extends InitialChains {
|
|
|
362
362
|
*
|
|
363
363
|
* @since 1.0.0
|
|
364
364
|
*/
|
|
365
|
-
declare function
|
|
365
|
+
declare function getChainsListByConnectorType(params: GetChainsListParams): Promise<(string | number)[]>;
|
|
366
366
|
/**
|
|
367
367
|
* Synchronous version that only works with pre-loaded adapters.
|
|
368
368
|
*
|
|
@@ -386,14 +386,14 @@ declare function getChainsListByWalletType(params: GetChainsListParams): Promise
|
|
|
386
386
|
*
|
|
387
387
|
* // Now safe to use sync version
|
|
388
388
|
* const chains = getChainsListByWalletTypeSync({
|
|
389
|
-
*
|
|
389
|
+
* connectorType: ConnectorType.EVM_METAMASK,
|
|
390
390
|
* appChains: evmConfiguration
|
|
391
391
|
* });
|
|
392
392
|
* ```
|
|
393
393
|
*
|
|
394
394
|
* @since 1.0.0
|
|
395
395
|
*/
|
|
396
|
-
declare function
|
|
396
|
+
declare function getChainsListByConnectorTypeSync(params: GetChainsListParams): (string | number)[];
|
|
397
397
|
/**
|
|
398
398
|
* Validates if a chain list conforms to EVM format (with adapter loading).
|
|
399
399
|
*
|
|
@@ -918,7 +918,7 @@ declare const networksLinks: Partial<Record<OrbitAdapter, {
|
|
|
918
918
|
* @example
|
|
919
919
|
* ```typescript
|
|
920
920
|
* // Import synchronous version (backward compatible)
|
|
921
|
-
* import {
|
|
921
|
+
* import { getChainsListByConnectorType, isEvmChainList } from './utils';
|
|
922
922
|
*
|
|
923
923
|
* // Import asynchronous version (better performance)
|
|
924
924
|
* import {
|
|
@@ -1154,4 +1154,4 @@ declare function initializeBlockchainSupport(): Promise<InitializationResult>;
|
|
|
1154
1154
|
*/
|
|
1155
1155
|
declare function isAdapterSupported(adapter: OrbitAdapter): Promise<boolean>;
|
|
1156
1156
|
|
|
1157
|
-
export { type AdapterInfo, type AdapterLoadStatus, type BlockchainUtilities, type BlockchainUtilityResult, ButtonTxStatus, type ChainAdapter, ChainIdentifierArray, ConnectContentType, ConnectedContentType, ErrorsProvider, type ErrorsProviderCustomization, type ErrorsProviderProps, type GroupedConnector, InitialChains, type InitializationResult, NovaConnectLabelsProvider, NovaConnectProvider, type NovaConnectProviderCustomization, NovaConnectProviderProps, type NovaConnectProviderPropsWithCustomization, NovaConnectProviderType, getAdapterStatus, getAllAdaptersStatus, getAvailableChainIds, getAvailableSolanaClusters, getAvailableSolanaClusters$1 as getAvailableSolanaClustersAsync, getBlockchainUtilities,
|
|
1157
|
+
export { type AdapterInfo, type AdapterLoadStatus, type BlockchainUtilities, type BlockchainUtilityResult, ButtonTxStatus, type ChainAdapter, ChainIdentifierArray, ConnectContentType, ConnectedContentType, ErrorsProvider, type ErrorsProviderCustomization, type ErrorsProviderProps, type GroupedConnector, InitialChains, type InitializationResult, NovaConnectLabelsProvider, NovaConnectProvider, type NovaConnectProviderCustomization, NovaConnectProviderProps, type NovaConnectProviderPropsWithCustomization, NovaConnectProviderType, getAdapterStatus, getAllAdaptersStatus, getAvailableChainIds, getAvailableSolanaClusters, getAvailableSolanaClusters$1 as getAvailableSolanaClustersAsync, getBlockchainUtilities, getChainsListByConnectorTypeSync as getChainsListByConnectorType, getChainsListByConnectorType as getChainsListByConnectorTypeAsync, getChainsListByConnectorTypeSync, getConnectChainId, getEvmUtils, getFilteredConnectors, getGroupedConnectors, getSolanaUtils, getWalletChains, hasAvailableConnectors, hasConnectorsForAdapter, initializeBlockchainSupport, isAdapterSupported, isEvmChainListSync as isEvmChainList, isEvmChainList as isEvmChainListAsync, isEvmChainListSync, isSolanaChainListSync as isSolanaChainList, isSolanaChainList as isSolanaChainListAsync, isSolanaChainListSync, isValidSolanaCluster, isValidSolanaCluster$1 as isValidSolanaClusterAsync, networksLinks, preloadChainAdapters };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {f as f$1,b,K,F,J,C,M,I,L,i,B,N}from'./chunk-7F5QM2LC.js';export{c as getAvailableChainIds,j as getAvailableSolanaClusters,b as getConnectChainId,f as getFilteredConnectors,d as getGroupedConnectors,h as getNetworkIcon,e as hasAvailableConnectors,g as hasConnectorsForAdapter,k as isValidSolanaCluster,i as networksLinks}from'./chunk-7F5QM2LC.js';export{k as getAdapterStatus,l as getAllAdaptersStatus,g as getAvailableSolanaClustersAsync,b as getChainsListByWalletType,a as getChainsListByWalletTypeAsync,b as getChainsListByWalletTypeSync,i as getWalletChains,e as isEvmChainList,c as isEvmChainListAsync,e as isEvmChainListSync,f as isSolanaChainList,d as isSolanaChainListAsync,f as isSolanaChainListSync,h as isValidSolanaClusterAsync,j as preloadChainAdapters}from'./chunk-MQGDTFY7.js';import {d,h as h$1,g,c}from'./chunk-S5WT3DLF.js';export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,n as getLabelWithFallback,k as hasLabel,m as isDefaultLabels,a as useGetWalletNameAndAvatar,e as useHasNovaConnectContext,l as useLabelsByCategory,d as useNovaConnect,i as useNovaConnectLabel,h as useNovaConnectLabels,j as useNovaConnectLabelsSubset,f as useNovaConnectOptional,p as useWalletNativeBalance}from'./chunk-S5WT3DLF.js';import {a}from'./chunk-TAV7EL23.js';import {h,f}from'./chunk-MPEJHQKC.js';import {waitFor,delay,formatWalletName,getWalletTypeFromConnectorName,impersonatedHelpers,OrbitAdapter}from'@tuwaio/orbit-core';import {cn,DialogHeader,DialogTitle,DialogClose,CloseIcon,standardButtonClasses,Dialog,DialogContent,ToastCloseButton,deepMerge}from'@tuwaio/nova-core';import {forwardRef,memo,useContext,useMemo,useEffect,useCallback,useRef,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {InformationCircleIcon}from'@heroicons/react/24/outline';import {motion}from'framer-motion';import {isAddress}from'gill';var pe=({title:o,rawError:e,onCopyComplete:a,errorType:r,isConnected:t,...f})=>jsx(N,{title:o,rawError:e,onCopyComplete:a,customization:f.customization}),ue=o=>{let e=h$1();return jsx(ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},Ce=(o,e)=>{o(e.title,e.rawError,e.errorKey);},fe=o=>{o();},ve=(o,e)=>{o&&process.env.NODE_ENV==="development"&&console.log("Error copied to clipboard:",e.substring(0,100));},ye=o=>o,ge=o=>o;function Mo({containerId:o="nova-connect-errors",position:e="top-center",autoClose:a=7e3,draggable:r=false,customization:t}){let f=h$1(),u=h(l=>l.switchNetworkError),R=h(l=>l.activeWallet),B=h(l=>l.walletConnectionError),{ToastError:N=pe,Container:y=ue}=t?.components??{},{showError:d=Ce,dismissError:O=fe,onCopyComplete:S=ve}=t?.handlers??{},{errorTitle:D=ye,errorHash:E=ge}=t??{},M=useRef(new Set),x=useRef(null),s=useMemo(()=>{let l=!!B,b=!!u,P=!!R?.isConnected;return {hasWalletError:l,hasSwitchError:b,isConnected:P,hasAnyError:l||b,primaryError:B||u||null,errorType:l?"wallet":b?"switch":null}},[B,u,R?.isConnected]),H=useMemo(()=>{switch(s.errorType){case "wallet":return f.walletConnectionError;case "switch":return f.errorWhenChainSwitching;default:return f.somethingWentWrong}},[s.errorType,f]),m=useMemo(()=>D(H,{errorType:s.errorType}),[D,H,s.errorType]),z=useMemo(()=>s.primaryError?`${s.errorType}-${s.primaryError.substring(0,50)}`:null,[s.primaryError,s.errorType]),C=useMemo(()=>E(z,{primaryError:s.primaryError,errorType:s.errorType}),[E,z,s.primaryError,s.errorType]),T=useCallback(()=>{O(()=>{x.current&&(toast.dismiss(x.current),x.current=null),toast.dismiss({containerId:o});});},[o,O]),F=useCallback((l,b)=>{S(l,b,s.errorType);},[S,s.errorType]),n=useCallback((l,b,P)=>{if(T(),!M.current.has(P))try{let V={containerId:o,toastId:P,onClose:()=>{M.current.delete(P),x.current=null;}},_=t?.toastOptions?.error?.({title:l,rawError:b,errorType:s.errorType,isConnected:s.isConnected}),q={...V,..._};toast.error(jsx(N,{title:l,rawError:b,errorType:s.errorType,isConnected:s.isConnected,onCopyComplete:J=>F(J,b),customization:t?.toastErrorCustomization}),q),M.current.add(P),x.current=P;}catch(V){console.error("Failed to show error toast:",V);}},[T,o,t?.toastOptions?.error,t?.toastErrorCustomization,N,s.errorType,s.isConnected,F]),v=useCallback((l,b,P)=>{d(n,{title:l,rawError:b,errorKey:P,errorType:s.errorType});},[n,d,s.errorType]);useEffect(()=>{let{hasAnyError:l,isConnected:b,primaryError:P}=s;if(b&&!l){T(),M.current.clear();return}if(l&&P&&C){if(b&&s.errorType!=="switch")return;v(m,P,C);}},[s,m,C,v,T]),useEffect(()=>()=>{T(),M.current.clear();},[T]);let g=useMemo(()=>t?.classNames?.container?t.classNames.container({hasErrors:s.hasAnyError,errorType:s.errorType}):"novacon:p-0 novacon:bg-transparent",[t,s.hasAnyError,s.errorType]),p=useMemo(()=>({containerId:o,position:e,closeOnClick:false,icon:false,closeButton:ToastCloseButton,autoClose:a,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:r,pauseOnHover:true,theme:"light",transition:Bounce}),[o,e,a,r]),h$2=useMemo(()=>({...p,...t?.containerProps,className:g}),[p,t?.containerProps,g]);return jsx(y,{...h$2})}Mo.displayName="ErrorsProvider";function Po({labels:o,children:e}){let a=useMemo(()=>o,[o]);if(process.env.NODE_ENV==="development"){(!o||typeof o!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let t=["connectWallet","disconnect","connecting","connected","error","success"].filter(f=>!(f in o));t.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${t.join(", ")}`);}return jsx(g.Provider,{value:a,children:e})}Po.displayName="NovaConnectLabelsProvider";function He(o,e){if(!o||!Array.isArray(o)||!e)return;let a=o.find(r=>r&&typeof r=="object"&&"name"in r&&typeof r.name=="string"?formatWalletName(r.name)===e:false);return a&&typeof a=="object"&&"name"in a&&typeof a.name=="string"?a.name:void 0}var qo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:cn("novacon:relative novacon:flex novacon:w-full novacon:flex-col",o),...r,children:e}));qo.displayName="DefaultModalContainer";var Jo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:o,...r,children:jsx(DialogHeader,{children:e})}));Jo.displayName="DefaultModalHeader";var Qo=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx("button",{ref:t,className:cn("novacon:cursor-pointer novacon:text-[var(--tuwa-text-secondary)] novacon:transition novacon:duration-300 novacon:ease-in-out novacon:active:scale-75 novacon:hover:scale-110",o),type:"button",onClick:e,...r,children:jsx(InformationCircleIcon,{width:20,height:20,className:"novacon:mr-1","aria-hidden":"true"})}));Qo.displayName="DefaultInfoButton";var Xo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx(DialogTitle,{ref:t,className:cn("novacon:flex novacon:items-center",o),...r,children:e}));Xo.displayName="DefaultTitle";var Yo=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx(DialogClose,{asChild:true,children:jsx("button",{ref:t,type:"button",onClick:e,className:cn("novacon:cursor-pointer novacon:rounded-full novacon:p-1 novacon:text-[var(--tuwa-text-tertiary)] novacon:transition-colors novacon:hover:bg-[var(--tuwa-bg-muted)] novacon:hover:text-[var(--tuwa-text-primary)]",o),...r,children:jsx(CloseIcon,{"aria-hidden":"true"})})}));Yo.displayName="DefaultCloseButton";var Zo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("main",{ref:t,className:cn("novacon:flex novacon:flex-col novacon:gap-4 novacon:p-4",o),id:"connect-modal-content",role:"main",...r,children:e}));Zo.displayName="DefaultMainContent";var oe=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("footer",{ref:t,className:cn("novacon:flex novacon:w-full novacon:items-center novacon:justify-between novacon:border-t novacon:border-[var(--tuwa-border-primary)] novacon:p-4",o),role:"contentinfo",...r,children:e}));oe.displayName="DefaultFooter";var ee=forwardRef(({className:o,onClick:e,children:a,modalData:r,...t},f)=>jsx("button",{ref:f,type:"button",onClick:e,className:cn(standardButtonClasses,o),...t,children:a}));ee.displayName="DefaultBackButton";var te=forwardRef(({className:o,onClick:e,children:a,disabled:r,loading:t,buttonConfig:f,modalData:u,...R},B)=>jsx("button",{ref:B,type:"button",onClick:e,disabled:r||t,className:cn(standardButtonClasses,o),...R,children:t?"Loading...":a}));te.displayName="DefaultActionButton";var ne=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("span",{ref:t,className:cn("novacon:sr-only",o),...r,children:e}));ne.displayName="DefaultActionDescription";var re=forwardRef(({children:o,className:e,...a},r)=>{let{modalData:t,...f}=a;return jsx("div",{ref:r,className:e,...f,children:o})});re.displayName="DefaultEmptyState";var No=memo(({appChains:o,solanaRPCUrls:e,withImpersonated:a,customization:r={}})=>{let{isConnectModalOpen:t,setIsConnectModalOpen:f$2,setConnectModalContentType:u,setActiveConnector:R,setImpersonatedAddress:B,setIsConnected:N,connectModalContentType:y,selectedAdapter:d$1,setSelectedAdapter:O,isConnected:S,activeConnector:D,impersonatedAddress:E}=d(),M$1=h(c=>c.walletConnectionError),x=h(c=>c.getConnectors),s=h(c=>c.connect),H=h(c=>c.activeWallet),m=h$1(),z=useContext(f),C$1=useMemo(()=>{if(t)return x()},[t,x]),T=useMemo(()=>f$1({connectors:C$1,selectedAdapter:d$1}),[C$1,d$1]),F$1=useMemo(()=>M$1?typeof M$1=="string"?new Error(M$1):M$1:null,[M$1]),n=useMemo(()=>({contentType:y,selectedAdapter:d$1,activeConnector:D,impersonatedAddress:E,isConnected:S,isOpen:t,error:F$1,connectors:C$1,filteredConnectors:T,labels:m}),[y,d$1,D,E,S,t,F$1,C$1,T,m]);useEffect(()=>{t&&(u("connectors"),O(void 0),R(void 0),B(""),N(false));},[t]);let{components:v={},classNames:g={},handlers:p={},config:h$2={},childComponents:l={}}=r,b$1=v.ModalContainer||qo,P=v.ModalHeader||Jo,V=v.InfoButton||Qo,_=v.Title||Xo,q=v.CloseButton||Yo,J$1=v.MainContent||Zo,Q=v.Footer||oe,so=v.BackButton||ee,X=v.ActionButton||te,io=v.ActionDescription||ne,G=v.EmptyState||re,Co=v.Dialog||Dialog,lo=v.DialogContent||DialogContent,eo=v.MotionDiv||motion.div,to=useCallback(()=>{switch(y){case "about":return m.aboutWallets;case "getWallet":return m.getWallet;case "connecting":return d$1&&D&&C$1&&He(C$1[d$1],D)||m.connectingEllipsis;case "impersonate":return m.connectImpersonatedWallet;default:return m.connectWallet}},[y,d$1,D,C$1,m]),Y=useCallback(()=>"connectors",[y]),Z=useCallback(c=>{p?.onOpenChange?p.onOpenChange(c,n):f$2(c);},[p?.onOpenChange,n,f$2]),fo=useCallback(()=>{let c=()=>u(Y());p?.onBack?p.onBack(n,c):c();},[p?.onBack,n,u,Y]),vo=useCallback(()=>{p?.onInfoClick?p.onInfoClick(n):u("about");},[p?.onInfoClick,n,u]),$=useCallback(async(c,yo)=>{await s({walletType:c,chainId:b({appChains:o,selectedAdapter:yo,solanaRPCUrls:e})});try{await waitFor(()=>z?.getState().activeWallet?.isConnected),N(!0);let go=setTimeout(()=>f$2(!1),400),le=setTimeout(()=>N(!1),500);await delay(null,500),clearTimeout(go),clearTimeout(le);}catch(go){console.error(go);}},[s,o,d$1,e]),j=useCallback(async(c,yo)=>{O(c),u("connecting"),await $(yo,c);},[$]),Bo=useCallback(c=>{R(formatWalletName(c.name)),c.adapters.length===1?(O(c.adapters[0]),u(formatWalletName(c.name)==="impersonatedwallet"?"impersonate":"connecting")):d$1?u(formatWalletName(c.name)==="impersonatedwallet"?"impersonate":"connecting"):formatWalletName(c.name)==="impersonatedwallet"?u("impersonate"):u("network");},[d$1]),se=useCallback(()=>{switch(y){case "network":return jsx(L,{activeConnector:D,connectors:T,onClick:j,customization:l.networkSelections});case "connectors":return C$1?jsxs(Fragment,{children:[jsx(M,{networks:Object.keys(C$1),selectedAdapter:d$1,onSelect:c=>O(c),customization:l.networkTabs}),jsx(I,{isOnlyOneNetwork:Object.keys(C$1).length===1,connectors:T,selectedAdapter:d$1,onClick:Bo,setContentType:u,appChains:o,solanaRPCUrls:e,setIsConnected:N,setIsOpen:f$2,withImpersonated:a,customization:l.connectorsSelections})]}):jsx(G,{className:g.emptyConnectors?.({modalData:n}),modalData:n,children:"No connectors available"});case "about":return jsx(C,{customization:l.aboutWallets});case "getWallet":return jsx(J,{customization:l.getWallet});case "connecting":return jsx(F,{selectedAdapter:d$1,connectors:T,activeConnector:D,isConnected:S,customization:l.connecting});case "impersonate":return jsx(K,{impersonatedAddress:E,setImpersonatedAddress:B,customization:l.impersonateForm})}},[y,D,T,j,l,C$1,d$1,Bo,S,E]),K$1=useCallback(()=>{switch(y){case "connectors":return {title:m.iDontHaveWallet,onClick:()=>{p.onActionClick?.connectors?p.onActionClick.connectors(n):u("getWallet");}};case "getWallet":return {title:m.choseWallet,onClick:()=>{p.onActionClick?.getWallet?p.onActionClick.getWallet(n):window.open(i[d$1??Object.keys(C$1)[0]]?.choseWallet,"_blank","noopener,noreferrer");}};case "about":return {title:m.learnMore,onClick:()=>{p.onActionClick?.about?p.onActionClick.about(n):window.open(i[d$1??Object.keys(C$1)[0]]?.about,"_blank","noopener,noreferrer");}};case "impersonate":return {title:m.connect,onClick:async()=>{if(p.onActionClick?.impersonate)await p.onActionClick.impersonate(n);else {let c=E.trim();if(M$1||!c||isAddress(c)||H?.isConnected)return;impersonatedHelpers.setImpersonated(c),await $(`${d$1??OrbitAdapter.EVM}:impersonatedwallet`,d$1??OrbitAdapter.EVM),u("connecting");}}};case "connecting":return M$1&&d$1&&D?{title:m.tryAgain,onClick:async()=>{p.onActionClick?.connecting?await p.onActionClick.connecting(n):await $(getWalletTypeFromConnectorName(d$1,D),d$1);}}:void 0}},[y,m,p,n,d$1,C$1,E,M$1,$,D])(),ie=useCallback(()=>{switch(y){case "getWallet":return "Opens external wallet selection page";case "about":return "Opens external documentation";case "impersonate":return "Connects with impersonated wallet address";case "connecting":return "Retries wallet connection";default:return ""}},[y]);return jsx(Co,{open:t,onOpenChange:Z,children:jsx(lo,{className:cn("novacon:w-full novacon:sm:max-w-md"),children:jsx(eo,{layout:true,transition:{layout:{duration:h$2.animation?.disabled?0:h$2.animation?.layoutDuration??1e-4}},children:jsxs(b$1,{className:g.modalContainer?.({modalData:n}),modalData:n,children:[jsxs(P,{className:g.header?.({modalData:n}),modalData:n,children:[jsxs(_,{className:g.title?.({modalData:n}),modalData:n,children:[y==="connectors"&&jsx(V,{className:g.infoButton?.({modalData:n}),onClick:vo,"aria-label":h$2.ariaLabels?.infoButton?.(n)||`${m.learnMore} ${m.aboutWallets}`,modalData:n}),to()]}),jsx(q,{className:g.closeButton?.({modalData:n}),onClick:()=>Z(false),"aria-label":h$2.ariaLabels?.closeButton?.(n)||m.closeModal,modalData:n})]}),jsx(J$1,{className:g.mainContent?.({modalData:n}),modalData:n,children:se()}),jsxs(Q,{className:g.footer?.({modalData:n}),modalData:n,children:[jsx("div",{className:"novacon:flex novacon:items-center novacon:gap-4",children:y!=="connectors"&&jsx(so,{className:g.backButton?.({modalData:n}),onClick:fo,"aria-label":h$2.ariaLabels?.backButton?.(n)||`${m.back} to previous step`,modalData:n,children:m.back})}),K$1&&jsxs("div",{className:"novacon:flex novacon:items-center novacon:gap-3",children:[jsx(X,{className:g.actionButton?.({modalData:n,buttonConfig:K$1}),onClick:K$1.onClick,disabled:K$1.disabled,loading:K$1.loading,"aria-describedby":"bottom-action-description",modalData:n,buttonConfig:K$1,children:K$1.title}),jsx(io,{id:"bottom-action-description",className:g.actionDescription?.({modalData:n}),modalData:n,children:ie()})]})]})]})})})})});No.displayName="ConnectModal";var Fe=({labels:o,children:e})=>jsx(Po,{labels:o,children:e}),Ve=({customization:o})=>jsx(Mo,{customization:o}),Ue=(o,e)=>deepMerge(o,e||{}),Ge=o=>o,$e=o=>o,je=(o,e,a)=>o;function Ke({labels:o,children:e,appChains:a$1,solanaRPCUrls:r,transactionPool:t,pulsarAdapter:f,withImpersonated:u,withBalance:R,withChain:B$1,customization:N}){let y=h(j=>j.activeWallet),d=h(j=>j.walletConnectionError),{LabelsProvider:O=Fe,ErrorsProvider:S=Ve}=N?.components??{},{merge:D=Ue,transform:E=Ge}=N?.labels??{},{transform:M=$e}=N?.contextValue??{},{providerTree:x=je}=N?.rendering??{},s=useMemo(()=>D(a,o||{}),[o,D]),[H,m]=useState(false),[z,C]=useState(false),[T,F]=useState(false),[n,v]=useState(false),[g,p]=useState("idle"),[h$1,l]=useState("connectors"),[b,P]=useState(void 0),[V,_]=useState(void 0),[q,J]=useState(""),[Q,so]=useState(false),[X,io]=useState("main"),G=useMemo(()=>({isConnected:Q,activeWallet:y,walletConnectionError:d,modalStates:{isConnectModalOpen:H,isConnectedModalOpen:z,isChainsListOpen:T,isChainsListOpenMobile:n},contentTypes:{connectModal:h$1,connectedModal:X},statuses:{connectedButton:g}}),[Q,y,d,H,z,T,n,h$1,X,g]),Co=useMemo(()=>E(s,G),[s,E,G]),lo=useMemo(()=>M({appChains:a$1,solanaRPCUrls:r,withImpersonated:u,withBalance:R,withChain:B$1,isConnectModalOpen:H,setIsConnectModalOpen:m,isConnectedModalOpen:z,setIsConnectedModalOpen:C,isChainsListOpen:T,setIsChainsListOpen:F,isChainsListOpenMobile:n,setIsChainsListOpenMobile:v,connectedButtonStatus:g,setConnectedButtonStatus:p,connectedModalContentType:X,setConnectedModalContentType:io,connectModalContentType:h$1,setConnectModalContentType:l,selectedAdapter:b,setSelectedAdapter:P,activeConnector:V,setActiveConnector:_,impersonatedAddress:q,setImpersonatedAddress:J,isConnected:Q,setIsConnected:so},G),[a$1,r,u,R,B$1,H,m,z,C,T,F,n,v,g,p,X,io,h$1,l,b,P,V,_,q,J,Q,so,M,G]),eo=jsx(S,{customization:N?.errors}),to=jsx(O,{labels:Co,children:e}),Y=a$1||r?jsx(No,{withImpersonated:u,solanaRPCUrls:r,appChains:a$1,customization:N?.modals?.connectModal}):null,Z=a$1||r?jsx(B,{solanaRPCUrls:r,appChains:a$1,transactionPool:t,pulsarAdapter:f,customization:N?.modals?.connectedModal}):null,fo=jsxs(c.Provider,{value:lo,children:[eo,to,Y,Z]}),vo=jsxs(c.Provider,{value:lo,children:[eo,to,Y,Z]}),$=x(vo,{ErrorsProvider:eo,LabelsProvider:to,MainContent:fo,ConnectModal:Y||jsx(Fragment,{}),ConnectedModal:Z||jsx(Fragment,{})},G);return jsx(Fragment,{children:$})}Ke.displayName="NovaConnectProvider";async function qn(){let{getAllAdaptersStatus:o}=await import('./getChainsListByWalletType-VMQ4BO2B.js');return {hasEvmUtils:await ho(),hasSolanaUtils:await wo(),adaptersStatus:o()}}async function ho(){try{return await import('./utils-5KC7QXWB.js'),!0}catch{return false}}async function wo(){try{return await import('./utils-SUIRQJIA.js'),!0}catch{return false}}async function Jn(){try{return {available:!0,...await import('./evm/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"EVM utilities not available"}}}async function Qn(){try{return {available:!0,...await import('./solana/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"Solana utilities not available"}}}async function Xn(){let o={evm:false,solana:false,errors:[]};try{let{preloadChainAdapters:e}=await import('./getChainsListByWalletType-VMQ4BO2B.js');await e([OrbitAdapter.EVM,OrbitAdapter.SOLANA]),o.evm=await ho(),o.solana=await wo();}catch(e){let a=e instanceof Error?e.message:"Unknown initialization error";o.errors.push(a);}return o}async function Yn(o){switch(o){case OrbitAdapter.EVM:return ho();case OrbitAdapter.SOLANA:return wo();case OrbitAdapter.Starknet:return false;default:return false}}export{Mo as ErrorsProvider,Po as NovaConnectLabelsProvider,Ke as NovaConnectProvider,qn as getBlockchainUtilities,Jn as getEvmUtils,Qn as getSolanaUtils,Xn as initializeBlockchainSupport,Yn as isAdapterSupported};//# sourceMappingURL=index.js.map
|
|
1
|
+
import {A,v,z,s,C,y,B,r,D}from'./chunk-4FB4UCVM.js';import {d,h as h$1,t,p,w,g,c}from'./chunk-S6WXKVYP.js';export{g as NovaConnectLabelsContext,c as NovaConnectProviderContext,b as NovaConnectProviderError,o as createLabelsSubset,q as getAvailableChainIds,x as getAvailableSolanaClusters,p as getConnectChainId,t as getFilteredConnectors,r as getGroupedConnectors,n as getLabelWithFallback,v as getNetworkIcon,s as hasAvailableConnectors,u as hasConnectorsForAdapter,k as hasLabel,m as isDefaultLabels,y as isValidSolanaCluster,w as networksLinks,a as useGetWalletNameAndAvatar,e as useHasNovaConnectContext,l as useLabelsByCategory,d as useNovaConnect,i as useNovaConnectLabel,h as useNovaConnectLabels,j as useNovaConnectLabelsSubset,f as useNovaConnectOptional,z as useWalletChainsList,A as useWalletNativeBalance}from'./chunk-S6WXKVYP.js';export{k as getAdapterStatus,l as getAllAdaptersStatus,g as getAvailableSolanaClustersAsync,b as getChainsListByConnectorType,a as getChainsListByConnectorTypeAsync,b as getChainsListByConnectorTypeSync,i as getWalletChains,e as isEvmChainList,c as isEvmChainListAsync,e as isEvmChainListSync,f as isSolanaChainList,d as isSolanaChainListAsync,f as isSolanaChainListSync,h as isValidSolanaClusterAsync,j as preloadChainAdapters}from'./chunk-B2NRY4JV.js';import {a}from'./chunk-3BMX6JWH.js';import {h,f}from'./chunk-P5ZBSLGK.js';import {waitFor,delay,formatConnectorName,getConnectorTypeFromName,impersonatedHelpers,OrbitAdapter}from'@tuwaio/orbit-core';import {cn,DialogHeader,DialogTitle,DialogClose,CloseIcon,standardButtonClasses,Dialog,DialogContent,ToastCloseButton,deepMerge}from'@tuwaio/nova-core';import {forwardRef,memo,useContext,useMemo,useEffect,useCallback,useRef,useState}from'react';import {toast,Bounce,ToastContainer}from'react-toastify';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {InformationCircleIcon}from'@heroicons/react/24/outline';import {motion}from'framer-motion';import {isAddress}from'gill';var ue=({title:o,rawError:e,onCopyComplete:a,errorType:r,isConnected:t,...f})=>jsx(D,{title:o,rawError:e,onCopyComplete:a,customization:f.customization}),Ce=o=>{let e=h$1();return jsx(ToastContainer,{...o,role:"alert","aria-live":"assertive","aria-label":e.somethingWentWrong})},fe=(o,e)=>{o(e.title,e.rawError,e.errorKey);},ve=o=>{o();},ye=(o,e)=>{o&&process.env.NODE_ENV==="development"&&console.log("Error copied to clipboard:",e.substring(0,100));},ge=o=>o,be=o=>o;function Mo({containerId:o="nova-connect-errors",position:e="top-center",autoClose:a=7e3,draggable:r=false,customization:t}){let f=h$1(),u=h(c=>c.switchNetworkError),R=h(c=>c.activeConnection),B=h(c=>c.connectionError),{ToastError:N=ue,Container:y=Ce}=t?.components??{},{showError:d=fe,dismissError:S=ve,onCopyComplete:H=ye}=t?.handlers??{},{errorTitle:T=ge,errorHash:E=be}=t??{},M=useRef(new Set),x=useRef(null),s=useMemo(()=>{let c=!!B,b=!!u,P=!!R?.isConnected;return {hasWalletError:c,hasSwitchError:b,isConnected:P,hasAnyError:c||b,primaryError:B||u||null,errorType:c?"wallet":b?"switch":null}},[B,u,R?.isConnected]),z=useMemo(()=>{switch(s.errorType){case "wallet":return f.connectionError;case "switch":return f.errorWhenChainSwitching;default:return f.somethingWentWrong}},[s.errorType,f]),m=useMemo(()=>T(z,{errorType:s.errorType}),[T,z,s.errorType]),W=useMemo(()=>s.primaryError?`${s.errorType}-${s.primaryError.substring(0,50)}`:null,[s.primaryError,s.errorType]),C=useMemo(()=>E(W,{primaryError:s.primaryError,errorType:s.errorType}),[E,W,s.primaryError,s.errorType]),D=useCallback(()=>{S(()=>{x.current&&(toast.dismiss(x.current),x.current=null),toast.dismiss({containerId:o});});},[o,S]),F=useCallback((c,b)=>{H(c,b,s.errorType);},[H,s.errorType]),n=useCallback((c,b,P)=>{if(D(),!M.current.has(P))try{let V={containerId:o,toastId:P,onClose:()=>{M.current.delete(P),x.current=null;}},_=t?.toastOptions?.error?.({title:c,rawError:b,errorType:s.errorType,isConnected:s.isConnected}),q={...V,..._};toast.error(jsx(N,{title:c,rawError:b,errorType:s.errorType,isConnected:s.isConnected,onCopyComplete:J=>F(J,b),customization:t?.toastErrorCustomization}),q),M.current.add(P),x.current=P;}catch(V){console.error("Failed to show error toast:",V);}},[D,o,t?.toastOptions?.error,t?.toastErrorCustomization,N,s.errorType,s.isConnected,F]),v=useCallback((c,b,P)=>{d(n,{title:c,rawError:b,errorKey:P,errorType:s.errorType});},[n,d,s.errorType]);useEffect(()=>{let{hasAnyError:c,isConnected:b,primaryError:P}=s;if(b&&!c){D(),M.current.clear();return}if(c&&P&&C){if(b&&s.errorType!=="switch")return;v(m,P,C);}},[s,m,C,v,D]),useEffect(()=>()=>{D(),M.current.clear();},[D]);let g=useMemo(()=>t?.classNames?.container?t.classNames.container({hasErrors:s.hasAnyError,errorType:s.errorType}):"novacon:p-0 novacon:bg-transparent",[t,s.hasAnyError,s.errorType]),p=useMemo(()=>({containerId:o,position:e,closeOnClick:false,icon:false,closeButton:ToastCloseButton,autoClose:a,hideProgressBar:false,newestOnTop:false,pauseOnFocusLoss:false,draggable:r,pauseOnHover:true,theme:"light",transition:Bounce}),[o,e,a,r]),h$2=useMemo(()=>({...p,...t?.containerProps,className:g}),[p,t?.containerProps,g]);return jsx(y,{...h$2})}Mo.displayName="ErrorsProvider";function Po({labels:o,children:e}){let a=useMemo(()=>o,[o]);if(process.env.NODE_ENV==="development"){(!o||typeof o!="object")&&console.warn("NovaConnectLabelsProvider: labels prop should be an object");let t=["connectWallet","disconnect","connecting","connected","error","success"].filter(f=>!(f in o));t.length>0&&console.warn(`NovaConnectLabelsProvider: Missing required labels: ${t.join(", ")}`);}return jsx(g.Provider,{value:a,children:e})}Po.displayName="NovaConnectLabelsProvider";function ze(o,e){if(!o||!Array.isArray(o)||!e)return;let a=o.find(r=>r&&typeof r=="object"&&"name"in r&&typeof r.name=="string"?formatConnectorName(r.name)===e:false);return a&&typeof a=="object"&&"name"in a&&typeof a.name=="string"?a.name:void 0}var Jo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:cn("novacon:relative novacon:flex novacon:w-full novacon:flex-col",o),...r,children:e}));Jo.displayName="DefaultModalContainer";var Qo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("div",{ref:t,className:o,...r,children:jsx(DialogHeader,{children:e})}));Qo.displayName="DefaultModalHeader";var Xo=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx("button",{ref:t,className:cn("novacon:cursor-pointer novacon:text-[var(--tuwa-text-secondary)] novacon:transition novacon:duration-300 novacon:ease-in-out novacon:active:scale-75 novacon:hover:scale-110",o),type:"button",onClick:e,...r,children:jsx(InformationCircleIcon,{width:20,height:20,className:"novacon:mr-1","aria-hidden":"true"})}));Xo.displayName="DefaultInfoButton";var Yo=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx(DialogTitle,{ref:t,className:cn("novacon:flex novacon:items-center",o),...r,children:e}));Yo.displayName="DefaultTitle";var Zo=forwardRef(({className:o,onClick:e,modalData:a,...r},t)=>jsx(DialogClose,{asChild:true,children:jsx("button",{ref:t,type:"button",onClick:e,className:cn("novacon:cursor-pointer novacon:rounded-full novacon:p-1 novacon:text-[var(--tuwa-text-tertiary)] novacon:transition-colors novacon:hover:bg-[var(--tuwa-bg-muted)] novacon:hover:text-[var(--tuwa-text-primary)]",o),...r,children:jsx(CloseIcon,{"aria-hidden":"true"})})}));Zo.displayName="DefaultCloseButton";var oe=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("main",{ref:t,className:cn("novacon:flex novacon:flex-col novacon:gap-4 novacon:p-4",o),id:"connect-modal-content",role:"main",...r,children:e}));oe.displayName="DefaultMainContent";var ee=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("footer",{ref:t,className:cn("novacon:flex novacon:w-full novacon:items-center novacon:justify-between novacon:border-t novacon:border-[var(--tuwa-border-primary)] novacon:p-4",o),role:"contentinfo",...r,children:e}));ee.displayName="DefaultFooter";var te=forwardRef(({className:o,onClick:e,children:a,modalData:r,...t},f)=>jsx("button",{ref:f,type:"button",onClick:e,className:cn(standardButtonClasses,o),...t,children:a}));te.displayName="DefaultBackButton";var ne=forwardRef(({className:o,onClick:e,children:a,disabled:r,loading:t,buttonConfig:f,modalData:u,...R},B)=>jsx("button",{ref:B,type:"button",onClick:e,disabled:r||t,className:cn(standardButtonClasses,o),...R,children:t?"Loading...":a}));ne.displayName="DefaultActionButton";var re=forwardRef(({className:o,children:e,modalData:a,...r},t)=>jsx("span",{ref:t,className:cn("novacon:sr-only",o),...r,children:e}));re.displayName="DefaultActionDescription";var ae=forwardRef(({children:o,className:e,...a},r)=>{let{modalData:t,...f}=a;return jsx("div",{ref:r,className:e,...f,children:o})});ae.displayName="DefaultEmptyState";var No=memo(({appChains:o,solanaRPCUrls:e,withImpersonated:a,customization:r={}})=>{let{isConnectModalOpen:t$1,setIsConnectModalOpen:f$1,setConnectModalContentType:u,setActiveConnector:R,setImpersonatedAddress:B$1,setIsConnected:N,connectModalContentType:y$1,selectedAdapter:d$1,setSelectedAdapter:S,isConnected:H,activeConnector:T,impersonatedAddress:E}=d(),M=h(l=>l.connectionError),x=h(l=>l.getConnectors),s$1=h(l=>l.connect),z$1=h(l=>l.activeConnection),m=h$1(),W=useContext(f),C$1=useMemo(()=>{if(t$1)return x()},[t$1,x]),D=useMemo(()=>t({connectors:C$1,selectedAdapter:d$1}),[C$1,d$1]),F=useMemo(()=>M?typeof M=="string"?new Error(M):M:null,[M]),n=useMemo(()=>({contentType:y$1,selectedAdapter:d$1,activeConnector:T,impersonatedAddress:E,isConnected:H,isOpen:t$1,error:F,connectors:C$1,filteredConnectors:D,labels:m}),[y$1,d$1,T,E,H,t$1,F,C$1,D,m]);useEffect(()=>{t$1&&(u("connectors"),S(void 0),R(void 0),B$1(""),N(false));},[t$1]);let{components:v$1={},classNames:g={},handlers:p$1={},config:h$2={},childComponents:c={}}=r,b=v$1.ModalContainer||Jo,P=v$1.ModalHeader||Qo,V=v$1.InfoButton||Xo,_=v$1.Title||Yo,q=v$1.CloseButton||Zo,J=v$1.MainContent||oe,Q=v$1.Footer||ee,so=v$1.BackButton||te,X=v$1.ActionButton||ne,io=v$1.ActionDescription||re,G=v$1.EmptyState||ae,Co=v$1.Dialog||Dialog,co=v$1.DialogContent||DialogContent,eo=v$1.MotionDiv||motion.div,to=useCallback(()=>{switch(y$1){case "about":return m.aboutWallets;case "getWallet":return m.getWallet;case "connecting":return d$1&&T&&C$1&&ze(C$1[d$1],T)||m.connectingEllipsis;case "impersonate":return m.connectImpersonatedWallet;default:return m.connectWallet}},[y$1,d$1,T,C$1,m]),Y=useCallback(()=>"connectors",[y$1]),Z=useCallback(l=>{p$1?.onOpenChange?p$1.onOpenChange(l,n):f$1(l);},[p$1?.onOpenChange,n,f$1]),fo=useCallback(()=>{let l=()=>u(Y());p$1?.onBack?p$1.onBack(n,l):l();},[p$1?.onBack,n,u,Y]),vo=useCallback(()=>{p$1?.onInfoClick?p$1.onInfoClick(n):u("about");},[p$1?.onInfoClick,n,u]),j=useCallback(async(l,yo)=>{await s$1({connectorType:l,chainId:p({appChains:o,selectedAdapter:yo,solanaRPCUrls:e})});try{await waitFor(()=>W?.getState().activeConnection?.isConnected),N(!0);let go=setTimeout(()=>f$1(!1),400),le=setTimeout(()=>N(!1),500);await delay(null,500),clearTimeout(go),clearTimeout(le);}catch(go){console.error(go);}},[s$1,o,d$1,e]),$=useCallback(async(l,yo)=>{S(l),u("connecting"),await j(yo,l);},[j]),Bo=useCallback(l=>{R(formatConnectorName(l.name)),l.adapters.length===1?(S(l.adapters[0]),u(formatConnectorName(l.name)==="impersonatedwallet"?"impersonate":"connecting")):d$1?u(formatConnectorName(l.name)==="impersonatedwallet"?"impersonate":"connecting"):formatConnectorName(l.name)==="impersonatedwallet"?u("impersonate"):u("network");},[d$1]),ie=useCallback(()=>{switch(y$1){case "network":return jsx(B,{activeConnector:T,connectors:D,onClick:$,customization:c.networkSelections});case "connectors":return C$1?jsxs(Fragment,{children:[jsx(C,{networks:Object.keys(C$1),selectedAdapter:d$1,onSelect:l=>S(l),customization:c.networkTabs}),jsx(y,{isOnlyOneNetwork:Object.keys(C$1).length===1,connectors:D,selectedAdapter:d$1,onClick:Bo,setContentType:u,appChains:o,solanaRPCUrls:e,setIsConnected:N,setIsOpen:f$1,withImpersonated:a,customization:c.connectorsSelections})]}):jsx(G,{className:g.emptyConnectors?.({modalData:n}),modalData:n,children:"No connectors available"});case "about":return jsx(s,{customization:c.aboutWallets});case "getWallet":return jsx(z,{customization:c.getWallet});case "connecting":return jsx(v,{selectedAdapter:d$1,connectors:D,activeConnector:T,isConnected:H,customization:c.connecting});case "impersonate":return jsx(A,{selectedAdapter:d$1,impersonatedAddress:E,setImpersonatedAddress:B$1,customization:c.impersonateForm})}},[y$1,T,D,$,c,C$1,d$1,Bo,H,E]),K=useCallback(()=>{switch(y$1){case "connectors":return {title:m.iDontHaveWallet,onClick:()=>{p$1.onActionClick?.connectors?p$1.onActionClick.connectors(n):u("getWallet");}};case "getWallet":return {title:m.choseWallet,onClick:()=>{p$1.onActionClick?.getWallet?p$1.onActionClick.getWallet(n):window.open(w[d$1??Object.keys(C$1)[0]]?.choseWallet,"_blank","noopener,noreferrer");}};case "about":return {title:m.learnMore,onClick:()=>{p$1.onActionClick?.about?p$1.onActionClick.about(n):window.open(w[d$1??Object.keys(C$1)[0]]?.about,"_blank","noopener,noreferrer");}};case "impersonate":return {title:m.connect,onClick:async()=>{if(p$1.onActionClick?.impersonate)await p$1.onActionClick.impersonate(n);else {let l=E.trim();if(M||!l||isAddress(l)||z$1?.isConnected)return;impersonatedHelpers.setImpersonated(l),u("connecting"),await j(getConnectorTypeFromName(d$1??OrbitAdapter.EVM,T??""),d$1??OrbitAdapter.EVM);}}};case "connecting":return M&&d$1&&T?{title:m.tryAgain,onClick:async()=>{p$1.onActionClick?.connecting?await p$1.onActionClick.connecting(n):await j(getConnectorTypeFromName(d$1,T),d$1);}}:void 0}},[y$1,m,p$1,n,d$1,C$1,E,M,j,T])(),ce=useCallback(()=>{switch(y$1){case "getWallet":return "Opens external wallet selection page";case "about":return "Opens external documentation";case "impersonate":return "Connects with impersonated wallet address";case "connecting":return "Retries wallet connection";default:return ""}},[y$1]);return jsx(Co,{open:t$1,onOpenChange:Z,children:jsx(co,{className:cn("novacon:w-full novacon:sm:max-w-md"),children:jsx(eo,{layout:true,transition:{layout:{duration:h$2.animation?.disabled?0:h$2.animation?.layoutDuration??1e-4}},children:jsxs(b,{className:g.modalContainer?.({modalData:n}),modalData:n,children:[jsxs(P,{className:g.header?.({modalData:n}),modalData:n,children:[jsxs(_,{className:g.title?.({modalData:n}),modalData:n,children:[y$1==="connectors"&&jsx(V,{className:g.infoButton?.({modalData:n}),onClick:vo,"aria-label":h$2.ariaLabels?.infoButton?.(n)||`${m.learnMore} ${m.aboutWallets}`,modalData:n}),to()]}),jsx(q,{className:g.closeButton?.({modalData:n}),onClick:()=>Z(false),"aria-label":h$2.ariaLabels?.closeButton?.(n)||m.closeModal,modalData:n})]}),jsx(J,{className:g.mainContent?.({modalData:n}),modalData:n,children:ie()}),jsxs(Q,{className:g.footer?.({modalData:n}),modalData:n,children:[jsx("div",{className:"novacon:flex novacon:items-center novacon:gap-4",children:y$1!=="connectors"&&jsx(so,{className:g.backButton?.({modalData:n}),onClick:fo,"aria-label":h$2.ariaLabels?.backButton?.(n)||`${m.back} to previous step`,modalData:n,children:m.back})}),K&&jsxs("div",{className:"novacon:flex novacon:items-center novacon:gap-3",children:[jsx(X,{className:g.actionButton?.({modalData:n,buttonConfig:K}),onClick:K.onClick,disabled:K.disabled,loading:K.loading,"aria-describedby":"bottom-action-description",modalData:n,buttonConfig:K,children:K.title}),jsx(io,{id:"bottom-action-description",className:g.actionDescription?.({modalData:n}),modalData:n,children:ce()})]})]})]})})})})});No.displayName="ConnectModal";var Fe=({labels:o,children:e})=>jsx(Po,{labels:o,children:e}),Ve=({customization:o})=>jsx(Mo,{customization:o}),Ue=(o,e)=>deepMerge(o,e||{}),Ge=o=>o,je=o=>o,$e=(o,e,a)=>o;function Ke({labels:o,children:e,appChains:a$1,solanaRPCUrls:r$1,transactionPool:t,pulsarAdapter:f,withImpersonated:u,withBalance:R,withChain:B,customization:N}){let y=h($=>$.activeConnection),d=h($=>$.connectionError),{LabelsProvider:S=Fe,ErrorsProvider:H=Ve}=N?.components??{},{merge:T=Ue,transform:E=Ge}=N?.labels??{},{transform:M=je}=N?.contextValue??{},{providerTree:x=$e}=N?.rendering??{},s=useMemo(()=>T(a,o||{}),[o,T]),[z,m]=useState(false),[W,C]=useState(false),[D,F]=useState(false),[n,v]=useState(false),[g,p]=useState("idle"),[h$1,c$1]=useState("connectors"),[b,P]=useState(void 0),[V,_]=useState(void 0),[q,J]=useState(""),[Q,so]=useState(false),[X,io]=useState("main"),G=useMemo(()=>({isConnected:Q,activeConnection:y,connectionError:d,modalStates:{isConnectModalOpen:z,isConnectedModalOpen:W,isChainsListOpen:D,isChainsListOpenMobile:n},contentTypes:{connectModal:h$1,connectedModal:X},statuses:{connectedButton:g}}),[Q,y,d,z,W,D,n,h$1,X,g]),Co=useMemo(()=>E(s,G),[s,E,G]),co=useMemo(()=>M({appChains:a$1,solanaRPCUrls:r$1,withImpersonated:u,withBalance:R,withChain:B,isConnectModalOpen:z,setIsConnectModalOpen:m,isConnectedModalOpen:W,setIsConnectedModalOpen:C,isChainsListOpen:D,setIsChainsListOpen:F,isChainsListOpenMobile:n,setIsChainsListOpenMobile:v,connectedButtonStatus:g,setConnectedButtonStatus:p,connectedModalContentType:X,setConnectedModalContentType:io,connectModalContentType:h$1,setConnectModalContentType:c$1,selectedAdapter:b,setSelectedAdapter:P,activeConnector:V,setActiveConnector:_,impersonatedAddress:q,setImpersonatedAddress:J,isConnected:Q,setIsConnected:so},G),[a$1,r$1,u,R,B,z,m,W,C,D,F,n,v,g,p,X,io,h$1,c$1,b,P,V,_,q,J,Q,so,M,G]),eo=jsx(H,{customization:N?.errors}),to=jsx(S,{labels:Co,children:e}),Y=a$1||r$1?jsx(No,{withImpersonated:u,solanaRPCUrls:r$1,appChains:a$1,customization:N?.modals?.connectModal}):null,Z=a$1||r$1?jsx(r,{solanaRPCUrls:r$1,appChains:a$1,transactionPool:t,pulsarAdapter:f,customization:N?.modals?.connectedModal}):null,fo=jsxs(c.Provider,{value:co,children:[eo,to,Y,Z]}),vo=jsxs(c.Provider,{value:co,children:[eo,to,Y,Z]}),j=x(vo,{ErrorsProvider:eo,LabelsProvider:to,MainContent:fo,ConnectModal:Y||jsx(Fragment,{}),ConnectedModal:Z||jsx(Fragment,{})},G);return jsx(Fragment,{children:j})}Ke.displayName="NovaConnectProvider";async function Jn(){let{getAllAdaptersStatus:o}=await import('./getChainsListByConnectorType-FGTS3CWJ.js');return {hasEvmUtils:await ho(),hasSolanaUtils:await wo(),adaptersStatus:o()}}async function ho(){try{return await import('./utils-5KC7QXWB.js'),!0}catch{return false}}async function wo(){try{return await import('./utils-YYMTL3XH.js'),!0}catch{return false}}async function Qn(){try{return {available:!0,...await import('./evm/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"EVM utilities not available"}}}async function Xn(){try{return {available:!0,...await import('./solana/index.js')}}catch(o){return {available:false,error:o instanceof Error?o.message:"Solana utilities not available"}}}async function Yn(){let o={evm:false,solana:false,errors:[]};try{let{preloadChainAdapters:e}=await import('./getChainsListByConnectorType-FGTS3CWJ.js');await e([OrbitAdapter.EVM,OrbitAdapter.SOLANA]),o.evm=await ho(),o.solana=await wo();}catch(e){let a=e instanceof Error?e.message:"Unknown initialization error";o.errors.push(a);}return o}async function Zn(o){switch(o){case OrbitAdapter.EVM:return ho();case OrbitAdapter.SOLANA:return wo();case OrbitAdapter.Starknet:return false;default:return false}}export{Mo as ErrorsProvider,Po as NovaConnectLabelsProvider,Ke as NovaConnectProvider,Jn as getBlockchainUtilities,Qn as getEvmUtils,Xn as getSolanaUtils,Yn as initializeBlockchainSupport,Zn as isAdapterSupported};//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|