@shadow-corp/nearconnect 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/README.md +546 -0
  2. package/build/InjectedWallet.d.ts +22 -0
  3. package/build/InjectedWallet.js +58 -0
  4. package/build/InjectedWallet.js.map +1 -0
  5. package/build/NearConnector.d.ts +151 -0
  6. package/build/NearConnector.js +536 -0
  7. package/build/NearConnector.js.map +1 -0
  8. package/build/ParentFrameWallet.d.ts +22 -0
  9. package/build/ParentFrameWallet.js +66 -0
  10. package/build/ParentFrameWallet.js.map +1 -0
  11. package/build/SandboxedWallet/code.d.ts +7 -0
  12. package/build/SandboxedWallet/code.js +324 -0
  13. package/build/SandboxedWallet/code.js.map +1 -0
  14. package/build/SandboxedWallet/executor.d.ts +23 -0
  15. package/build/SandboxedWallet/executor.js +338 -0
  16. package/build/SandboxedWallet/executor.js.map +1 -0
  17. package/build/SandboxedWallet/iframe.d.ts +18 -0
  18. package/build/SandboxedWallet/iframe.js +78 -0
  19. package/build/SandboxedWallet/iframe.js.map +1 -0
  20. package/build/SandboxedWallet/index.d.ts +24 -0
  21. package/build/SandboxedWallet/index.js +54 -0
  22. package/build/SandboxedWallet/index.js.map +1 -0
  23. package/build/actions/index.d.ts +3 -0
  24. package/build/actions/index.js +105 -0
  25. package/build/actions/index.js.map +1 -0
  26. package/build/actions/types.d.ts +76 -0
  27. package/build/actions/types.js +3 -0
  28. package/build/actions/types.js.map +1 -0
  29. package/build/connection/health.d.ts +213 -0
  30. package/build/connection/health.js +391 -0
  31. package/build/connection/health.js.map +1 -0
  32. package/build/connection/index.d.ts +4 -0
  33. package/build/connection/index.js +48 -0
  34. package/build/connection/index.js.map +1 -0
  35. package/build/connection/reconnect.d.ts +261 -0
  36. package/build/connection/reconnect.js +454 -0
  37. package/build/connection/reconnect.js.map +1 -0
  38. package/build/connection/retry.d.ts +187 -0
  39. package/build/connection/retry.js +427 -0
  40. package/build/connection/retry.js.map +1 -0
  41. package/build/connection/state.d.ts +222 -0
  42. package/build/connection/state.js +431 -0
  43. package/build/connection/state.js.map +1 -0
  44. package/build/errors.d.ts +177 -0
  45. package/build/errors.js +546 -0
  46. package/build/errors.js.map +1 -0
  47. package/build/hardware/errors.d.ts +36 -0
  48. package/build/hardware/errors.js +127 -0
  49. package/build/hardware/errors.js.map +1 -0
  50. package/build/hardware/index.d.ts +7 -0
  51. package/build/hardware/index.js +39 -0
  52. package/build/hardware/index.js.map +1 -0
  53. package/build/hardware/near-app.d.ts +95 -0
  54. package/build/hardware/near-app.js +291 -0
  55. package/build/hardware/near-app.js.map +1 -0
  56. package/build/hardware/transport.d.ts +94 -0
  57. package/build/hardware/transport.js +267 -0
  58. package/build/hardware/transport.js.map +1 -0
  59. package/build/hardware/types.d.ts +98 -0
  60. package/build/hardware/types.js +72 -0
  61. package/build/hardware/types.js.map +1 -0
  62. package/build/helpers/analytics.d.ts +191 -0
  63. package/build/helpers/analytics.js +304 -0
  64. package/build/helpers/analytics.js.map +1 -0
  65. package/build/helpers/base58.d.ts +6 -0
  66. package/build/helpers/base58.js +47 -0
  67. package/build/helpers/base58.js.map +1 -0
  68. package/build/helpers/events.d.ts +42 -0
  69. package/build/helpers/events.js +68 -0
  70. package/build/helpers/events.js.map +1 -0
  71. package/build/helpers/html.d.ts +8 -0
  72. package/build/helpers/html.js +30 -0
  73. package/build/helpers/html.js.map +1 -0
  74. package/build/helpers/indexdb.d.ts +14 -0
  75. package/build/helpers/indexdb.js +166 -0
  76. package/build/helpers/indexdb.js.map +1 -0
  77. package/build/helpers/manifest.d.ts +147 -0
  78. package/build/helpers/manifest.js +329 -0
  79. package/build/helpers/manifest.js.map +1 -0
  80. package/build/helpers/queue.d.ts +11 -0
  81. package/build/helpers/queue.js +48 -0
  82. package/build/helpers/queue.js.map +1 -0
  83. package/build/helpers/session.d.ts +119 -0
  84. package/build/helpers/session.js +289 -0
  85. package/build/helpers/session.js.map +1 -0
  86. package/build/helpers/simulation.d.ts +128 -0
  87. package/build/helpers/simulation.js +441 -0
  88. package/build/helpers/simulation.js.map +1 -0
  89. package/build/helpers/storage.d.ts +58 -0
  90. package/build/helpers/storage.js +190 -0
  91. package/build/helpers/storage.js.map +1 -0
  92. package/build/helpers/trust.d.ts +157 -0
  93. package/build/helpers/trust.js +340 -0
  94. package/build/helpers/trust.js.map +1 -0
  95. package/build/helpers/url.d.ts +1 -0
  96. package/build/helpers/url.js +13 -0
  97. package/build/helpers/url.js.map +1 -0
  98. package/build/helpers/uuid.d.ts +1 -0
  99. package/build/helpers/uuid.js +14 -0
  100. package/build/helpers/uuid.js.map +1 -0
  101. package/build/index.d.ts +21 -0
  102. package/build/index.js +167 -0
  103. package/build/index.js.map +1 -0
  104. package/build/popups/IframeWalletPopup.d.ts +16 -0
  105. package/build/popups/IframeWalletPopup.js +38 -0
  106. package/build/popups/IframeWalletPopup.js.map +1 -0
  107. package/build/popups/NearWalletsPopup.d.ts +25 -0
  108. package/build/popups/NearWalletsPopup.js +153 -0
  109. package/build/popups/NearWalletsPopup.js.map +1 -0
  110. package/build/popups/Popup.d.ts +22 -0
  111. package/build/popups/Popup.js +94 -0
  112. package/build/popups/Popup.js.map +1 -0
  113. package/build/popups/styles.d.ts +1 -0
  114. package/build/popups/styles.js +257 -0
  115. package/build/popups/styles.js.map +1 -0
  116. package/build/security/audit-log.d.ts +123 -0
  117. package/build/security/audit-log.js +268 -0
  118. package/build/security/audit-log.js.map +1 -0
  119. package/build/security/csp.d.ts +68 -0
  120. package/build/security/csp.js +328 -0
  121. package/build/security/csp.js.map +1 -0
  122. package/build/security/index.d.ts +10 -0
  123. package/build/security/index.js +42 -0
  124. package/build/security/index.js.map +1 -0
  125. package/build/security/origin-guard.d.ts +90 -0
  126. package/build/security/origin-guard.js +244 -0
  127. package/build/security/origin-guard.js.map +1 -0
  128. package/build/security/rate-limiter.d.ts +84 -0
  129. package/build/security/rate-limiter.js +212 -0
  130. package/build/security/rate-limiter.js.map +1 -0
  131. package/build/security/secure-storage.d.ts +77 -0
  132. package/build/security/secure-storage.js +242 -0
  133. package/build/security/secure-storage.js.map +1 -0
  134. package/build/security/transaction-guard.d.ts +71 -0
  135. package/build/security/transaction-guard.js +239 -0
  136. package/build/security/transaction-guard.js.map +1 -0
  137. package/build/types.d.ts +508 -0
  138. package/build/types.js +3 -0
  139. package/build/types.js.map +1 -0
  140. package/build/ui/AccountSwitcherModal.d.ts +53 -0
  141. package/build/ui/AccountSwitcherModal.js +239 -0
  142. package/build/ui/AccountSwitcherModal.js.map +1 -0
  143. package/build/ui/Modal.d.ts +84 -0
  144. package/build/ui/Modal.js +278 -0
  145. package/build/ui/Modal.js.map +1 -0
  146. package/build/ui/TransactionModal.d.ts +84 -0
  147. package/build/ui/TransactionModal.js +406 -0
  148. package/build/ui/TransactionModal.js.map +1 -0
  149. package/build/ui/WalletSelectorModal.d.ts +97 -0
  150. package/build/ui/WalletSelectorModal.js +481 -0
  151. package/build/ui/WalletSelectorModal.js.map +1 -0
  152. package/build/ui/icons.d.ts +19 -0
  153. package/build/ui/icons.js +65 -0
  154. package/build/ui/icons.js.map +1 -0
  155. package/build/ui/index.d.ts +10 -0
  156. package/build/ui/index.js +31 -0
  157. package/build/ui/index.js.map +1 -0
  158. package/build/ui/styles.d.ts +5 -0
  159. package/build/ui/styles.js +973 -0
  160. package/build/ui/styles.js.map +1 -0
  161. package/build/ui/theme.d.ts +133 -0
  162. package/build/ui/theme.js +204 -0
  163. package/build/ui/theme.js.map +1 -0
  164. package/build/wallets/external/index.d.ts +4 -0
  165. package/build/wallets/external/index.js +9 -0
  166. package/build/wallets/external/index.js.map +1 -0
  167. package/build/wallets/external/manager.d.ts +152 -0
  168. package/build/wallets/external/manager.js +586 -0
  169. package/build/wallets/external/manager.js.map +1 -0
  170. package/build/wallets/privileged/index.d.ts +5 -0
  171. package/build/wallets/privileged/index.js +12 -0
  172. package/build/wallets/privileged/index.js.map +1 -0
  173. package/build/wallets/privileged/ledger.d.ts +132 -0
  174. package/build/wallets/privileged/ledger.js +563 -0
  175. package/build/wallets/privileged/ledger.js.map +1 -0
  176. package/build/wallets/privileged/manager.d.ts +54 -0
  177. package/build/wallets/privileged/manager.js +174 -0
  178. package/build/wallets/privileged/manager.js.map +1 -0
  179. package/package.json +33 -0
@@ -0,0 +1,973 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateStyles = generateStyles;
4
+ const theme_1 = require("./theme");
5
+ /**
6
+ * Generate CSS for the UI components
7
+ */
8
+ function generateStyles(id, theme) {
9
+ const cssVars = (0, theme_1.themeToCssVars)(theme);
10
+ return /*css*/ `
11
+ /* CSS Custom Properties */
12
+ ${id} {
13
+ ${cssVars}
14
+ }
15
+
16
+ /* Reset & Base */
17
+ ${id} * {
18
+ box-sizing: border-box;
19
+ font-family: var(--nc-font-family);
20
+ -ms-overflow-style: none;
21
+ scrollbar-width: none;
22
+ color: var(--nc-color-text);
23
+ }
24
+
25
+ ${id} *::-webkit-scrollbar {
26
+ display: none;
27
+ }
28
+
29
+ ${id} p, ${id} h1, ${id} h2, ${id} h3, ${id} h4, ${id} h5, ${id} h6 {
30
+ margin: 0;
31
+ }
32
+
33
+ /* Focus visible for accessibility */
34
+ ${id} *:focus-visible {
35
+ outline: 2px solid var(--nc-color-accent);
36
+ outline-offset: 2px;
37
+ }
38
+
39
+ ${id} *:focus:not(:focus-visible) {
40
+ outline: none;
41
+ }
42
+
43
+ /* Reduced motion support */
44
+ @media (prefers-reduced-motion: reduce) {
45
+ ${id} * {
46
+ transition-duration: 0.01ms !important;
47
+ animation-duration: 0.01ms !important;
48
+ }
49
+ }
50
+
51
+ /* Modal Container */
52
+ ${id} .nc-modal-overlay {
53
+ position: fixed;
54
+ top: 0;
55
+ left: 0;
56
+ width: 100%;
57
+ height: 100%;
58
+ z-index: 100000000;
59
+ background-color: var(--nc-color-background-overlay);
60
+ display: flex;
61
+ justify-content: center;
62
+ align-items: center;
63
+ flex-direction: column;
64
+ transition: opacity var(--nc-duration) var(--nc-easing);
65
+ }
66
+
67
+ @media (max-width: 600px) {
68
+ ${id} .nc-modal-overlay {
69
+ justify-content: flex-end;
70
+ }
71
+ }
72
+
73
+ /* Modal Content */
74
+ ${id} .nc-modal {
75
+ display: flex;
76
+ flex-direction: column;
77
+ align-items: center;
78
+ max-width: 420px;
79
+ max-height: 615px;
80
+ width: 100%;
81
+ border-radius: var(--nc-radius-xl);
82
+ background: var(--nc-color-background);
83
+ border: 1.5px solid var(--nc-color-border);
84
+ transition: transform var(--nc-duration) var(--nc-easing);
85
+ overflow: hidden;
86
+ }
87
+
88
+ @media (max-width: 600px) {
89
+ ${id} .nc-modal {
90
+ max-width: 100%;
91
+ width: 100%;
92
+ max-height: 85vh;
93
+ border-bottom-left-radius: 0;
94
+ border-bottom-right-radius: 0;
95
+ border: none;
96
+ border-top: 1.5px solid var(--nc-color-border);
97
+ }
98
+ }
99
+
100
+ /* Modal Header */
101
+ ${id} .nc-header {
102
+ display: flex;
103
+ padding: var(--nc-spacing-md);
104
+ gap: var(--nc-spacing-md);
105
+ align-self: stretch;
106
+ align-items: center;
107
+ justify-content: center;
108
+ position: relative;
109
+ border-bottom: 1px solid var(--nc-color-border);
110
+ }
111
+
112
+ ${id} .nc-header-title {
113
+ color: var(--nc-color-text);
114
+ text-align: center;
115
+ font-size: var(--nc-font-size-xl);
116
+ font-weight: var(--nc-font-weight-bold);
117
+ line-height: 1.2;
118
+ margin: 0;
119
+ }
120
+
121
+ ${id} .nc-header-btn {
122
+ position: absolute;
123
+ width: 36px;
124
+ height: 36px;
125
+ border-radius: var(--nc-radius-md);
126
+ cursor: pointer;
127
+ transition: background var(--nc-duration) var(--nc-easing);
128
+ border: none;
129
+ background: none;
130
+ display: flex;
131
+ align-items: center;
132
+ justify-content: center;
133
+ padding: 0;
134
+ }
135
+
136
+ ${id} .nc-header-btn:hover {
137
+ background: var(--nc-color-background-secondary);
138
+ }
139
+
140
+ ${id} .nc-header-btn--close {
141
+ right: var(--nc-spacing-md);
142
+ }
143
+
144
+ ${id} .nc-header-btn--back {
145
+ left: var(--nc-spacing-md);
146
+ }
147
+
148
+ ${id} .nc-header-btn svg {
149
+ width: 20px;
150
+ height: 20px;
151
+ }
152
+
153
+ ${id} .nc-header-btn path,
154
+ ${id} .nc-header-btn circle {
155
+ stroke: var(--nc-color-text-muted);
156
+ transition: stroke var(--nc-duration) var(--nc-easing);
157
+ }
158
+
159
+ ${id} .nc-header-btn:hover path,
160
+ ${id} .nc-header-btn:hover circle {
161
+ stroke: var(--nc-color-text);
162
+ }
163
+
164
+ /* Modal Body */
165
+ ${id} .nc-body {
166
+ display: flex;
167
+ padding: var(--nc-spacing-md);
168
+ flex-direction: column;
169
+ align-items: flex-start;
170
+ gap: var(--nc-spacing-sm);
171
+ overflow: auto;
172
+ width: 100%;
173
+ flex: 1;
174
+ }
175
+
176
+ /* Search Input */
177
+ ${id} .nc-search {
178
+ width: 100%;
179
+ padding: var(--nc-spacing-sm) var(--nc-spacing-md);
180
+ border-radius: var(--nc-radius-md);
181
+ background: var(--nc-color-background-secondary);
182
+ color: var(--nc-color-text);
183
+ border: 1px solid transparent;
184
+ font-size: var(--nc-font-size-md);
185
+ transition: all var(--nc-duration) var(--nc-easing);
186
+ margin-bottom: var(--nc-spacing-sm);
187
+ }
188
+
189
+ ${id} .nc-search::placeholder {
190
+ color: var(--nc-color-text-muted);
191
+ }
192
+
193
+ ${id} .nc-search:focus {
194
+ border-color: var(--nc-color-accent);
195
+ background: var(--nc-color-background);
196
+ }
197
+
198
+ /* Wallet List */
199
+ ${id} .nc-wallet-list {
200
+ display: flex;
201
+ flex-direction: column;
202
+ width: 100%;
203
+ gap: var(--nc-spacing-xs);
204
+ }
205
+
206
+ /* Wallet Group */
207
+ ${id} .nc-wallet-group {
208
+ margin-bottom: var(--nc-spacing-md);
209
+ }
210
+
211
+ ${id} .nc-wallet-group-title {
212
+ font-size: var(--nc-font-size-xs);
213
+ font-weight: var(--nc-font-weight-medium);
214
+ color: var(--nc-color-text-muted);
215
+ text-transform: uppercase;
216
+ letter-spacing: 0.05em;
217
+ padding: var(--nc-spacing-sm) var(--nc-spacing-sm);
218
+ margin-bottom: var(--nc-spacing-xs);
219
+ }
220
+
221
+ /* Wallet Item */
222
+ ${id} .nc-wallet-item {
223
+ display: flex;
224
+ padding: var(--nc-spacing-sm);
225
+ align-items: center;
226
+ gap: var(--nc-spacing-md);
227
+ cursor: pointer;
228
+ transition: background var(--nc-duration) var(--nc-easing);
229
+ border-radius: var(--nc-radius-lg);
230
+ border: none;
231
+ background: none;
232
+ width: 100%;
233
+ text-align: left;
234
+ }
235
+
236
+ ${id} .nc-wallet-item:hover {
237
+ background: var(--nc-color-background-secondary);
238
+ }
239
+
240
+ ${id} .nc-wallet-item:active {
241
+ transform: scale(0.98);
242
+ }
243
+
244
+ ${id} .nc-wallet-item--disabled {
245
+ opacity: 0.5;
246
+ cursor: not-allowed;
247
+ }
248
+
249
+ ${id} .nc-wallet-item--disabled:hover {
250
+ background: none;
251
+ }
252
+
253
+ ${id} .nc-wallet-icon {
254
+ width: 48px;
255
+ height: 48px;
256
+ border-radius: var(--nc-radius-md);
257
+ object-fit: cover;
258
+ flex-shrink: 0;
259
+ background: var(--nc-color-background-secondary);
260
+ }
261
+
262
+ ${id} .nc-wallet-info {
263
+ display: flex;
264
+ flex-direction: column;
265
+ align-items: flex-start;
266
+ gap: 2px;
267
+ flex: 1;
268
+ min-width: 0;
269
+ }
270
+
271
+ ${id} .nc-wallet-name {
272
+ color: var(--nc-color-text-secondary);
273
+ font-size: var(--nc-font-size-lg);
274
+ font-weight: var(--nc-font-weight-bold);
275
+ letter-spacing: -0.02em;
276
+ white-space: nowrap;
277
+ overflow: hidden;
278
+ text-overflow: ellipsis;
279
+ max-width: 100%;
280
+ }
281
+
282
+ ${id} .nc-wallet-desc {
283
+ color: var(--nc-color-text-muted);
284
+ font-size: var(--nc-font-size-sm);
285
+ font-weight: var(--nc-font-weight);
286
+ white-space: nowrap;
287
+ overflow: hidden;
288
+ text-overflow: ellipsis;
289
+ max-width: 100%;
290
+ }
291
+
292
+ /* Wallet Badges */
293
+ ${id} .nc-wallet-badges {
294
+ display: flex;
295
+ gap: var(--nc-spacing-xs);
296
+ flex-shrink: 0;
297
+ }
298
+
299
+ ${id} .nc-badge {
300
+ padding: 2px 6px;
301
+ border-radius: var(--nc-radius-sm);
302
+ font-size: var(--nc-font-size-xs);
303
+ font-weight: var(--nc-font-weight-medium);
304
+ background: var(--nc-color-background-secondary);
305
+ color: var(--nc-color-text-muted);
306
+ }
307
+
308
+ ${id} .nc-badge--recent {
309
+ background: var(--nc-color-accent);
310
+ color: var(--nc-color-accent-text);
311
+ }
312
+
313
+ ${id} .nc-badge--installed {
314
+ background: var(--nc-color-success);
315
+ color: white;
316
+ }
317
+
318
+ /* Footer */
319
+ ${id} .nc-footer {
320
+ width: 100%;
321
+ display: flex;
322
+ align-items: center;
323
+ justify-content: space-between;
324
+ padding: var(--nc-spacing-md);
325
+ border-top: 1px solid var(--nc-color-border);
326
+ gap: var(--nc-spacing-md);
327
+ }
328
+
329
+ ${id} .nc-footer-branding {
330
+ display: flex;
331
+ align-items: center;
332
+ gap: var(--nc-spacing-sm);
333
+ }
334
+
335
+ ${id} .nc-footer-logo {
336
+ width: 24px;
337
+ height: 24px;
338
+ border-radius: var(--nc-radius-full);
339
+ object-fit: cover;
340
+ }
341
+
342
+ ${id} .nc-footer-name {
343
+ font-size: var(--nc-font-size-sm);
344
+ font-weight: var(--nc-font-weight-medium);
345
+ color: var(--nc-color-text-secondary);
346
+ }
347
+
348
+ ${id} .nc-footer-link {
349
+ color: var(--nc-color-text-muted);
350
+ font-size: var(--nc-font-size-sm);
351
+ font-weight: var(--nc-font-weight-medium);
352
+ text-decoration: none;
353
+ transition: color var(--nc-duration) var(--nc-easing);
354
+ cursor: pointer;
355
+ }
356
+
357
+ ${id} .nc-footer-link:hover {
358
+ color: var(--nc-color-text);
359
+ }
360
+
361
+ /* Loading State */
362
+ ${id} .nc-loading {
363
+ display: flex;
364
+ flex-direction: column;
365
+ align-items: center;
366
+ justify-content: center;
367
+ padding: var(--nc-spacing-xxl);
368
+ gap: var(--nc-spacing-md);
369
+ width: 100%;
370
+ }
371
+
372
+ ${id} .nc-spinner {
373
+ width: 32px;
374
+ height: 32px;
375
+ border: 3px solid var(--nc-color-background-secondary);
376
+ border-top-color: var(--nc-color-accent);
377
+ border-radius: var(--nc-radius-full);
378
+ animation: nc-spin 0.8s linear infinite;
379
+ }
380
+
381
+ @keyframes nc-spin {
382
+ to { transform: rotate(360deg); }
383
+ }
384
+
385
+ ${id} .nc-loading-text {
386
+ color: var(--nc-color-text-muted);
387
+ font-size: var(--nc-font-size-md);
388
+ }
389
+
390
+ /* Error State */
391
+ ${id} .nc-error {
392
+ display: flex;
393
+ flex-direction: column;
394
+ align-items: center;
395
+ justify-content: center;
396
+ padding: var(--nc-spacing-xl);
397
+ gap: var(--nc-spacing-md);
398
+ width: 100%;
399
+ text-align: center;
400
+ }
401
+
402
+ ${id} .nc-error-icon {
403
+ width: 48px;
404
+ height: 48px;
405
+ color: var(--nc-color-error);
406
+ }
407
+
408
+ ${id} .nc-error-title {
409
+ color: var(--nc-color-text);
410
+ font-size: var(--nc-font-size-lg);
411
+ font-weight: var(--nc-font-weight-bold);
412
+ }
413
+
414
+ ${id} .nc-error-message {
415
+ color: var(--nc-color-text-muted);
416
+ font-size: var(--nc-font-size-md);
417
+ max-width: 280px;
418
+ }
419
+
420
+ ${id} .nc-error-actions {
421
+ display: flex;
422
+ gap: var(--nc-spacing-sm);
423
+ margin-top: var(--nc-spacing-sm);
424
+ }
425
+
426
+ /* Button */
427
+ ${id} .nc-btn {
428
+ display: inline-flex;
429
+ align-items: center;
430
+ justify-content: center;
431
+ gap: var(--nc-spacing-sm);
432
+ padding: var(--nc-spacing-sm) var(--nc-spacing-md);
433
+ border-radius: var(--nc-radius-md);
434
+ font-size: var(--nc-font-size-md);
435
+ font-weight: var(--nc-font-weight-medium);
436
+ cursor: pointer;
437
+ transition: all var(--nc-duration) var(--nc-easing);
438
+ border: none;
439
+ text-decoration: none;
440
+ }
441
+
442
+ ${id} .nc-btn--primary {
443
+ background: var(--nc-color-button-background);
444
+ color: var(--nc-color-button-text);
445
+ }
446
+
447
+ ${id} .nc-btn--primary:hover {
448
+ background: var(--nc-color-button-hover);
449
+ }
450
+
451
+ ${id} .nc-btn--secondary {
452
+ background: var(--nc-color-background-secondary);
453
+ color: var(--nc-color-text);
454
+ }
455
+
456
+ ${id} .nc-btn--secondary:hover {
457
+ background: var(--nc-color-border-hover);
458
+ }
459
+
460
+ ${id} .nc-btn--ghost {
461
+ background: transparent;
462
+ color: var(--nc-color-text-muted);
463
+ }
464
+
465
+ ${id} .nc-btn--ghost:hover {
466
+ background: var(--nc-color-background-secondary);
467
+ color: var(--nc-color-text);
468
+ }
469
+
470
+ /* Empty State */
471
+ ${id} .nc-empty {
472
+ display: flex;
473
+ flex-direction: column;
474
+ align-items: center;
475
+ justify-content: center;
476
+ padding: var(--nc-spacing-xl);
477
+ gap: var(--nc-spacing-md);
478
+ width: 100%;
479
+ text-align: center;
480
+ }
481
+
482
+ ${id} .nc-empty-title {
483
+ color: var(--nc-color-text);
484
+ font-size: var(--nc-font-size-lg);
485
+ font-weight: var(--nc-font-weight-bold);
486
+ }
487
+
488
+ ${id} .nc-empty-message {
489
+ color: var(--nc-color-text-muted);
490
+ font-size: var(--nc-font-size-md);
491
+ }
492
+
493
+ /* Connecting State */
494
+ ${id} .nc-connecting {
495
+ display: flex;
496
+ flex-direction: column;
497
+ align-items: center;
498
+ justify-content: center;
499
+ padding: var(--nc-spacing-xxl);
500
+ gap: var(--nc-spacing-lg);
501
+ width: 100%;
502
+ text-align: center;
503
+ }
504
+
505
+ ${id} .nc-connecting-icon {
506
+ width: 64px;
507
+ height: 64px;
508
+ border-radius: var(--nc-radius-lg);
509
+ object-fit: cover;
510
+ animation: nc-pulse 2s ease-in-out infinite;
511
+ }
512
+
513
+ @keyframes nc-pulse {
514
+ 0%, 100% { transform: scale(1); opacity: 1; }
515
+ 50% { transform: scale(1.05); opacity: 0.8; }
516
+ }
517
+
518
+ ${id} .nc-connecting-title {
519
+ color: var(--nc-color-text);
520
+ font-size: var(--nc-font-size-lg);
521
+ font-weight: var(--nc-font-weight-bold);
522
+ }
523
+
524
+ ${id} .nc-connecting-message {
525
+ color: var(--nc-color-text-muted);
526
+ font-size: var(--nc-font-size-md);
527
+ max-width: 280px;
528
+ }
529
+
530
+ /* Help Section */
531
+ ${id} .nc-help {
532
+ display: flex;
533
+ flex-direction: column;
534
+ gap: var(--nc-spacing-md);
535
+ padding: var(--nc-spacing-md);
536
+ width: 100%;
537
+ }
538
+
539
+ ${id} .nc-help-item {
540
+ display: flex;
541
+ align-items: flex-start;
542
+ gap: var(--nc-spacing-md);
543
+ padding: var(--nc-spacing-md);
544
+ background: var(--nc-color-background-secondary);
545
+ border-radius: var(--nc-radius-md);
546
+ }
547
+
548
+ ${id} .nc-help-icon {
549
+ width: 24px;
550
+ height: 24px;
551
+ flex-shrink: 0;
552
+ color: var(--nc-color-accent);
553
+ }
554
+
555
+ ${id} .nc-help-content {
556
+ display: flex;
557
+ flex-direction: column;
558
+ gap: var(--nc-spacing-xs);
559
+ }
560
+
561
+ ${id} .nc-help-title {
562
+ color: var(--nc-color-text);
563
+ font-size: var(--nc-font-size-md);
564
+ font-weight: var(--nc-font-weight-medium);
565
+ }
566
+
567
+ ${id} .nc-help-desc {
568
+ color: var(--nc-color-text-muted);
569
+ font-size: var(--nc-font-size-sm);
570
+ }
571
+
572
+ /* Skeleton loader */
573
+ ${id} .nc-skeleton {
574
+ background: linear-gradient(
575
+ 90deg,
576
+ var(--nc-color-background-secondary) 25%,
577
+ var(--nc-color-border) 50%,
578
+ var(--nc-color-background-secondary) 75%
579
+ );
580
+ background-size: 200% 100%;
581
+ animation: nc-skeleton 1.5s ease-in-out infinite;
582
+ border-radius: var(--nc-radius-sm);
583
+ }
584
+
585
+ @keyframes nc-skeleton {
586
+ 0% { background-position: 200% 0; }
587
+ 100% { background-position: -200% 0; }
588
+ }
589
+
590
+ ${id} .nc-skeleton--icon {
591
+ width: 48px;
592
+ height: 48px;
593
+ border-radius: var(--nc-radius-md);
594
+ }
595
+
596
+ ${id} .nc-skeleton--text {
597
+ height: 16px;
598
+ width: 120px;
599
+ }
600
+
601
+ ${id} .nc-skeleton--text-sm {
602
+ height: 12px;
603
+ width: 80px;
604
+ }
605
+
606
+ /* Visually hidden for screen readers */
607
+ ${id} .nc-sr-only {
608
+ position: absolute;
609
+ width: 1px;
610
+ height: 1px;
611
+ padding: 0;
612
+ margin: -1px;
613
+ overflow: hidden;
614
+ clip: rect(0, 0, 0, 0);
615
+ white-space: nowrap;
616
+ border: 0;
617
+ }
618
+
619
+ /* Transaction Modal Styles */
620
+ ${id} .nc-tx-wallet {
621
+ display: flex;
622
+ align-items: center;
623
+ gap: var(--nc-spacing-sm);
624
+ padding: var(--nc-spacing-sm);
625
+ background: var(--nc-color-background-secondary);
626
+ border-radius: var(--nc-radius-md);
627
+ width: 100%;
628
+ margin-bottom: var(--nc-spacing-sm);
629
+ }
630
+
631
+ ${id} .nc-tx-wallet-icon {
632
+ width: 32px;
633
+ height: 32px;
634
+ border-radius: var(--nc-radius-sm);
635
+ object-fit: cover;
636
+ }
637
+
638
+ ${id} .nc-tx-wallet-name {
639
+ font-size: var(--nc-font-size-md);
640
+ font-weight: var(--nc-font-weight-medium);
641
+ color: var(--nc-color-text);
642
+ }
643
+
644
+ ${id} .nc-tx-target {
645
+ display: flex;
646
+ flex-direction: column;
647
+ gap: var(--nc-spacing-xs);
648
+ padding: var(--nc-spacing-md);
649
+ background: var(--nc-color-background-secondary);
650
+ border-radius: var(--nc-radius-md);
651
+ width: 100%;
652
+ margin-bottom: var(--nc-spacing-md);
653
+ }
654
+
655
+ ${id} .nc-tx-target-label {
656
+ font-size: var(--nc-font-size-xs);
657
+ color: var(--nc-color-text-muted);
658
+ text-transform: uppercase;
659
+ letter-spacing: 0.05em;
660
+ }
661
+
662
+ ${id} .nc-tx-target-value {
663
+ font-size: var(--nc-font-size-md);
664
+ font-family: var(--nc-font-family-mono);
665
+ color: var(--nc-color-text);
666
+ word-break: break-all;
667
+ }
668
+
669
+ ${id} .nc-tx-actions {
670
+ display: flex;
671
+ flex-direction: column;
672
+ gap: var(--nc-spacing-sm);
673
+ width: 100%;
674
+ margin-bottom: var(--nc-spacing-md);
675
+ }
676
+
677
+ ${id} .nc-tx-action {
678
+ padding: var(--nc-spacing-md);
679
+ background: var(--nc-color-background-secondary);
680
+ border-radius: var(--nc-radius-md);
681
+ border-left: 3px solid var(--nc-color-accent);
682
+ }
683
+
684
+ ${id} .nc-tx-action-header {
685
+ display: flex;
686
+ align-items: center;
687
+ gap: var(--nc-spacing-sm);
688
+ margin-bottom: var(--nc-spacing-xs);
689
+ }
690
+
691
+ ${id} .nc-tx-action-type {
692
+ font-size: var(--nc-font-size-xs);
693
+ font-weight: var(--nc-font-weight-medium);
694
+ color: var(--nc-color-accent);
695
+ text-transform: uppercase;
696
+ letter-spacing: 0.05em;
697
+ }
698
+
699
+ ${id} .nc-tx-action-title {
700
+ font-size: var(--nc-font-size-md);
701
+ font-weight: var(--nc-font-weight-bold);
702
+ color: var(--nc-color-text);
703
+ }
704
+
705
+ ${id} .nc-tx-action-desc {
706
+ font-size: var(--nc-font-size-sm);
707
+ color: var(--nc-color-text-muted);
708
+ margin: 0;
709
+ }
710
+
711
+ ${id} .nc-tx-action-details {
712
+ display: flex;
713
+ flex-direction: column;
714
+ gap: var(--nc-spacing-xs);
715
+ margin-top: var(--nc-spacing-sm);
716
+ padding-top: var(--nc-spacing-sm);
717
+ border-top: 1px solid var(--nc-color-border);
718
+ }
719
+
720
+ ${id} .nc-tx-action-detail {
721
+ display: flex;
722
+ justify-content: space-between;
723
+ align-items: center;
724
+ }
725
+
726
+ ${id} .nc-tx-action-detail-key {
727
+ font-size: var(--nc-font-size-sm);
728
+ color: var(--nc-color-text-muted);
729
+ }
730
+
731
+ ${id} .nc-tx-action-detail-value {
732
+ font-size: var(--nc-font-size-sm);
733
+ font-family: var(--nc-font-family-mono);
734
+ color: var(--nc-color-text);
735
+ }
736
+
737
+ ${id} .nc-tx-summary {
738
+ display: flex;
739
+ flex-direction: column;
740
+ gap: var(--nc-spacing-sm);
741
+ padding: var(--nc-spacing-md);
742
+ background: var(--nc-color-background-secondary);
743
+ border-radius: var(--nc-radius-md);
744
+ width: 100%;
745
+ }
746
+
747
+ ${id} .nc-tx-summary-row {
748
+ display: flex;
749
+ justify-content: space-between;
750
+ align-items: center;
751
+ }
752
+
753
+ ${id} .nc-tx-summary-label {
754
+ font-size: var(--nc-font-size-sm);
755
+ color: var(--nc-color-text-muted);
756
+ }
757
+
758
+ ${id} .nc-tx-summary-value {
759
+ font-size: var(--nc-font-size-sm);
760
+ font-family: var(--nc-font-family-mono);
761
+ color: var(--nc-color-text);
762
+ }
763
+
764
+ ${id} .nc-tx-summary-value--highlight {
765
+ color: var(--nc-color-warning);
766
+ font-weight: var(--nc-font-weight-bold);
767
+ }
768
+
769
+ ${id} .nc-tx-result {
770
+ display: flex;
771
+ flex-direction: column;
772
+ align-items: center;
773
+ justify-content: center;
774
+ padding: var(--nc-spacing-xl);
775
+ gap: var(--nc-spacing-md);
776
+ width: 100%;
777
+ text-align: center;
778
+ }
779
+
780
+ ${id} .nc-tx-result-icon {
781
+ width: 64px;
782
+ height: 64px;
783
+ }
784
+
785
+ ${id} .nc-tx-result--success .nc-tx-result-icon {
786
+ color: var(--nc-color-success);
787
+ }
788
+
789
+ ${id} .nc-tx-result-title {
790
+ color: var(--nc-color-text);
791
+ font-size: var(--nc-font-size-lg);
792
+ font-weight: var(--nc-font-weight-bold);
793
+ margin: 0;
794
+ }
795
+
796
+ ${id} .nc-tx-result-message {
797
+ color: var(--nc-color-text-muted);
798
+ font-size: var(--nc-font-size-md);
799
+ margin: 0;
800
+ max-width: 280px;
801
+ }
802
+
803
+ /* Account Switcher Styles */
804
+ ${id} .nc-account-list {
805
+ display: flex;
806
+ flex-direction: column;
807
+ width: 100%;
808
+ gap: var(--nc-spacing-xs);
809
+ }
810
+
811
+ ${id} .nc-account-item {
812
+ display: flex;
813
+ align-items: center;
814
+ gap: var(--nc-spacing-sm);
815
+ border-radius: var(--nc-radius-lg);
816
+ transition: background var(--nc-duration) var(--nc-easing);
817
+ }
818
+
819
+ ${id} .nc-account-item:hover {
820
+ background: var(--nc-color-background-secondary);
821
+ }
822
+
823
+ ${id} .nc-account-item--active {
824
+ background: var(--nc-color-background-secondary);
825
+ }
826
+
827
+ ${id} .nc-account-item--confirm {
828
+ padding: var(--nc-spacing-md);
829
+ background: var(--nc-color-background-secondary);
830
+ }
831
+
832
+ ${id} .nc-account-select {
833
+ display: flex;
834
+ align-items: center;
835
+ gap: var(--nc-spacing-md);
836
+ flex: 1;
837
+ padding: var(--nc-spacing-sm);
838
+ border: none;
839
+ background: none;
840
+ cursor: pointer;
841
+ text-align: left;
842
+ border-radius: var(--nc-radius-lg);
843
+ }
844
+
845
+ ${id} .nc-account-avatar {
846
+ width: 40px;
847
+ height: 40px;
848
+ border-radius: var(--nc-radius-full);
849
+ overflow: hidden;
850
+ flex-shrink: 0;
851
+ background: var(--nc-color-background-secondary);
852
+ }
853
+
854
+ ${id} .nc-account-avatar-img {
855
+ width: 100%;
856
+ height: 100%;
857
+ object-fit: cover;
858
+ }
859
+
860
+ ${id} .nc-account-avatar-gen {
861
+ width: 100%;
862
+ height: 100%;
863
+ display: flex;
864
+ align-items: center;
865
+ justify-content: center;
866
+ font-size: var(--nc-font-size-sm);
867
+ font-weight: var(--nc-font-weight-bold);
868
+ color: white;
869
+ }
870
+
871
+ ${id} .nc-account-info {
872
+ display: flex;
873
+ flex-direction: column;
874
+ gap: 2px;
875
+ flex: 1;
876
+ min-width: 0;
877
+ }
878
+
879
+ ${id} .nc-account-id {
880
+ font-size: var(--nc-font-size-md);
881
+ font-weight: var(--nc-font-weight-medium);
882
+ color: var(--nc-color-text);
883
+ white-space: nowrap;
884
+ overflow: hidden;
885
+ text-overflow: ellipsis;
886
+ }
887
+
888
+ ${id} .nc-account-balance {
889
+ font-size: var(--nc-font-size-sm);
890
+ font-family: var(--nc-font-family-mono);
891
+ color: var(--nc-color-text-muted);
892
+ }
893
+
894
+ ${id} .nc-account-wallet {
895
+ font-size: var(--nc-font-size-xs);
896
+ color: var(--nc-color-text-muted);
897
+ }
898
+
899
+ ${id} .nc-account-active {
900
+ font-size: var(--nc-font-size-xs);
901
+ font-weight: var(--nc-font-weight-medium);
902
+ color: var(--nc-color-success);
903
+ padding: 2px 6px;
904
+ background: rgba(34, 197, 94, 0.1);
905
+ border-radius: var(--nc-radius-sm);
906
+ flex-shrink: 0;
907
+ }
908
+
909
+ ${id} .nc-account-disconnect {
910
+ width: 32px;
911
+ height: 32px;
912
+ display: flex;
913
+ align-items: center;
914
+ justify-content: center;
915
+ border: none;
916
+ background: none;
917
+ cursor: pointer;
918
+ border-radius: var(--nc-radius-md);
919
+ transition: background var(--nc-duration) var(--nc-easing);
920
+ flex-shrink: 0;
921
+ margin-right: var(--nc-spacing-sm);
922
+ }
923
+
924
+ ${id} .nc-account-disconnect:hover {
925
+ background: var(--nc-color-error);
926
+ }
927
+
928
+ ${id} .nc-account-disconnect svg {
929
+ width: 16px;
930
+ height: 16px;
931
+ color: var(--nc-color-text-muted);
932
+ }
933
+
934
+ ${id} .nc-account-disconnect:hover svg {
935
+ color: white;
936
+ }
937
+
938
+ ${id} .nc-account-confirm {
939
+ display: flex;
940
+ flex-direction: column;
941
+ align-items: center;
942
+ gap: var(--nc-spacing-sm);
943
+ width: 100%;
944
+ }
945
+
946
+ ${id} .nc-account-confirm-text {
947
+ font-size: var(--nc-font-size-sm);
948
+ color: var(--nc-color-text);
949
+ margin: 0;
950
+ }
951
+
952
+ ${id} .nc-account-confirm-actions {
953
+ display: flex;
954
+ gap: var(--nc-spacing-sm);
955
+ }
956
+
957
+ ${id} .nc-btn--sm {
958
+ padding: var(--nc-spacing-xs) var(--nc-spacing-sm);
959
+ font-size: var(--nc-font-size-sm);
960
+ }
961
+
962
+ ${id} .nc-btn--danger {
963
+ background: var(--nc-color-error);
964
+ color: white;
965
+ }
966
+
967
+ ${id} .nc-btn--danger:hover {
968
+ background: var(--nc-color-error);
969
+ opacity: 0.9;
970
+ }
971
+ `;
972
+ }
973
+ //# sourceMappingURL=styles.js.map