@hsuite/native-connect-angular 1.0.0 → 2.1.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 (162) hide show
  1. package/coverage/coverage-summary.json +49 -49
  2. package/coverage/index.html +122 -122
  3. package/coverage/lcov-report/index.html +122 -122
  4. package/coverage/lcov-report/lib/components/account-selector/account-actions/account-actions.component.ts.html +1 -1
  5. package/coverage/lcov-report/lib/components/account-selector/account-actions/index.html +1 -1
  6. package/coverage/lcov-report/lib/components/account-selector/account-filter/account-filter.component.ts.html +1 -1
  7. package/coverage/lcov-report/lib/components/account-selector/account-filter/index.html +1 -1
  8. package/coverage/lcov-report/lib/components/account-selector/account-formatting.service.ts.html +1 -1
  9. package/coverage/lcov-report/lib/components/account-selector/account-grouping.service.ts.html +1 -1
  10. package/coverage/lcov-report/lib/components/account-selector/account-list/account-list.component.ts.html +1 -1
  11. package/coverage/lcov-report/lib/components/account-selector/account-list/index.html +1 -1
  12. package/coverage/lcov-report/lib/components/account-selector/account-selector.component.ts.html +1 -1
  13. package/coverage/lcov-report/lib/components/account-selector/account-selector.service.ts.html +1 -1
  14. package/coverage/lcov-report/lib/components/account-selector/index.html +1 -1
  15. package/coverage/lcov-report/lib/components/wallet-account-display/index.html +1 -1
  16. package/coverage/lcov-report/lib/components/wallet-account-display/wallet-account-display.component.ts.html +1 -1
  17. package/coverage/lcov-report/lib/components/wallet-connect-button/index.html +21 -21
  18. package/coverage/lcov-report/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +475 -451
  19. package/coverage/lcov-report/lib/components/wallet-connect-prompt/index.html +1 -1
  20. package/coverage/lcov-report/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts.html +1 -1
  21. package/coverage/lcov-report/lib/components/wallet-connected-guard/index.html +1 -1
  22. package/coverage/lcov-report/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts.html +1 -1
  23. package/coverage/lcov-report/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts.html +148 -148
  24. package/coverage/lcov-report/lib/components/wallet-connection-modal/connection-method-step/index.html +17 -17
  25. package/coverage/lcov-report/lib/components/wallet-connection-modal/index.html +21 -21
  26. package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/index.html +17 -17
  27. package/coverage/lcov-report/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +838 -838
  28. package/coverage/lcov-report/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +1182 -987
  29. package/coverage/lcov-report/lib/components/wallet-session-display/index.html +1 -1
  30. package/coverage/lcov-report/lib/components/wallet-session-display/wallet-session-display.component.ts.html +1 -1
  31. package/coverage/lcov-report/lib/components/wallet-transaction-status/index.html +1 -1
  32. package/coverage/lcov-report/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts.html +1 -1
  33. package/coverage/lcov-report/lib/directives/index.html +1 -1
  34. package/coverage/lcov-report/lib/directives/wallet-connected.directive.ts.html +1 -1
  35. package/coverage/lcov-report/lib/directives/wallet-context.directive.ts.html +1 -1
  36. package/coverage/lcov-report/lib/directives/wallet-events.directive.ts.html +1 -1
  37. package/coverage/lcov-report/lib/hsuite-wallet.module.ts.html +1 -1
  38. package/coverage/lcov-report/lib/index.html +1 -1
  39. package/coverage/lcov-report/lib/models/connection-config.model.ts.html +1 -1
  40. package/coverage/lcov-report/lib/models/index.html +1 -1
  41. package/coverage/lcov-report/lib/models/provider-types.ts.html +1 -1
  42. package/coverage/lcov-report/lib/providers/base-wallet-provider.ts.html +20 -20
  43. package/coverage/lcov-report/lib/providers/hsuite-native/channel-client.service.ts.html +637 -637
  44. package/coverage/lcov-report/lib/providers/hsuite-native/index.html +19 -19
  45. package/coverage/lcov-report/lib/providers/hsuite-native-provider.ts.html +1 -1
  46. package/coverage/lcov-report/lib/providers/index.html +18 -18
  47. package/coverage/lcov-report/lib/providers/p2p-native/index.html +20 -20
  48. package/coverage/lcov-report/lib/providers/p2p-native/p2p-native.provider.ts.html +993 -993
  49. package/coverage/lcov-report/lib/providers/p2p-native/p2p-session-manager.ts.html +1 -1
  50. package/coverage/lcov-report/lib/providers/wallet-error-handler.ts.html +1 -1
  51. package/coverage/lcov-report/lib/providers/walletconnect/core/index.html +65 -65
  52. package/coverage/lcov-report/lib/providers/walletconnect/core/session-health.ts.html +240 -240
  53. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +559 -559
  54. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-provider.ts.html +1104 -1104
  55. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +493 -493
  56. package/coverage/lcov-report/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +366 -366
  57. package/coverage/lcov-report/lib/providers/walletconnect/signers/hedera-signer.ts.html +730 -730
  58. package/coverage/lcov-report/lib/providers/walletconnect/signers/index.html +43 -43
  59. package/coverage/lcov-report/lib/providers/walletconnect/signers/signer-factory.ts.html +234 -234
  60. package/coverage/lcov-report/lib/providers/walletconnect/signers/xrpl-signer.ts.html +650 -650
  61. package/coverage/lcov-report/lib/services/index.html +31 -31
  62. package/coverage/lcov-report/lib/services/logger.service.ts.html +4 -4
  63. package/coverage/lcov-report/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1 -1
  64. package/coverage/lcov-report/lib/services/transaction-builders/hedera-amount-utils.ts.html +155 -155
  65. package/coverage/lcov-report/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +2156 -2156
  66. package/coverage/lcov-report/lib/services/transaction-builders/index.html +43 -43
  67. package/coverage/lcov-report/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1674 -1674
  68. package/coverage/lcov-report/lib/services/transaction.service.ts.html +4 -7
  69. package/coverage/lcov-report/lib/services/unified-wallet.service.ts.html +7 -10
  70. package/coverage/lcov-report/lib/services/wallet-context.service.ts.html +1 -1
  71. package/coverage/lcov-report/lib/services/wallet-event-bus.service.ts.html +249 -249
  72. package/coverage/lcov-report/lib/services/wallet-providers.service.ts.html +4 -7
  73. package/coverage/lcov-report/lib/transports/chrome-extension-transport.ts.html +1 -1
  74. package/coverage/lcov-report/lib/transports/index.html +1 -1
  75. package/coverage/lcov-report/lib/utils/index.html +1 -1
  76. package/coverage/lcov-report/lib/utils/ledger-icons.util.ts.html +1 -1
  77. package/coverage/lcov.info +14420 -14977
  78. package/coverage/lib/components/account-selector/account-actions/account-actions.component.ts.html +1 -1
  79. package/coverage/lib/components/account-selector/account-actions/index.html +1 -1
  80. package/coverage/lib/components/account-selector/account-filter/account-filter.component.ts.html +1 -1
  81. package/coverage/lib/components/account-selector/account-filter/index.html +1 -1
  82. package/coverage/lib/components/account-selector/account-formatting.service.ts.html +1 -1
  83. package/coverage/lib/components/account-selector/account-grouping.service.ts.html +1 -1
  84. package/coverage/lib/components/account-selector/account-list/account-list.component.ts.html +1 -1
  85. package/coverage/lib/components/account-selector/account-list/index.html +1 -1
  86. package/coverage/lib/components/account-selector/account-selector.component.ts.html +1 -1
  87. package/coverage/lib/components/account-selector/account-selector.service.ts.html +1 -1
  88. package/coverage/lib/components/account-selector/index.html +1 -1
  89. package/coverage/lib/components/wallet-account-display/index.html +1 -1
  90. package/coverage/lib/components/wallet-account-display/wallet-account-display.component.ts.html +1 -1
  91. package/coverage/lib/components/wallet-connect-button/index.html +21 -21
  92. package/coverage/lib/components/wallet-connect-button/wallet-connect-button.component.ts.html +475 -451
  93. package/coverage/lib/components/wallet-connect-prompt/index.html +1 -1
  94. package/coverage/lib/components/wallet-connect-prompt/wallet-connect-prompt.component.ts.html +1 -1
  95. package/coverage/lib/components/wallet-connected-guard/index.html +1 -1
  96. package/coverage/lib/components/wallet-connected-guard/wallet-connected-guard.component.ts.html +1 -1
  97. package/coverage/lib/components/wallet-connection-modal/connection-method-step/connection-method-step.component.ts.html +148 -148
  98. package/coverage/lib/components/wallet-connection-modal/connection-method-step/index.html +17 -17
  99. package/coverage/lib/components/wallet-connection-modal/index.html +21 -21
  100. package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/index.html +17 -17
  101. package/coverage/lib/components/wallet-connection-modal/qr-pairing-step/qr-pairing-step.component.ts.html +838 -838
  102. package/coverage/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts.html +1182 -987
  103. package/coverage/lib/components/wallet-session-display/index.html +1 -1
  104. package/coverage/lib/components/wallet-session-display/wallet-session-display.component.ts.html +1 -1
  105. package/coverage/lib/components/wallet-transaction-status/index.html +1 -1
  106. package/coverage/lib/components/wallet-transaction-status/wallet-transaction-status.component.ts.html +1 -1
  107. package/coverage/lib/directives/index.html +1 -1
  108. package/coverage/lib/directives/wallet-connected.directive.ts.html +1 -1
  109. package/coverage/lib/directives/wallet-context.directive.ts.html +1 -1
  110. package/coverage/lib/directives/wallet-events.directive.ts.html +1 -1
  111. package/coverage/lib/hsuite-wallet.module.ts.html +1 -1
  112. package/coverage/lib/index.html +1 -1
  113. package/coverage/lib/models/connection-config.model.ts.html +1 -1
  114. package/coverage/lib/models/index.html +1 -1
  115. package/coverage/lib/models/provider-types.ts.html +1 -1
  116. package/coverage/lib/providers/base-wallet-provider.ts.html +20 -20
  117. package/coverage/lib/providers/hsuite-native/channel-client.service.ts.html +637 -637
  118. package/coverage/lib/providers/hsuite-native/index.html +19 -19
  119. package/coverage/lib/providers/hsuite-native-provider.ts.html +1 -1
  120. package/coverage/lib/providers/index.html +18 -18
  121. package/coverage/lib/providers/p2p-native/index.html +20 -20
  122. package/coverage/lib/providers/p2p-native/p2p-native.provider.ts.html +993 -993
  123. package/coverage/lib/providers/p2p-native/p2p-session-manager.ts.html +1 -1
  124. package/coverage/lib/providers/wallet-error-handler.ts.html +1 -1
  125. package/coverage/lib/providers/walletconnect/core/index.html +65 -65
  126. package/coverage/lib/providers/walletconnect/core/session-health.ts.html +240 -240
  127. package/coverage/lib/providers/walletconnect/core/walletconnect-client-manager.ts.html +559 -559
  128. package/coverage/lib/providers/walletconnect/core/walletconnect-provider.ts.html +1104 -1104
  129. package/coverage/lib/providers/walletconnect/core/walletconnect-session-store.ts.html +493 -493
  130. package/coverage/lib/providers/walletconnect/core/walletconnect-signing-orchestrator.ts.html +366 -366
  131. package/coverage/lib/providers/walletconnect/signers/hedera-signer.ts.html +730 -730
  132. package/coverage/lib/providers/walletconnect/signers/index.html +43 -43
  133. package/coverage/lib/providers/walletconnect/signers/signer-factory.ts.html +234 -234
  134. package/coverage/lib/providers/walletconnect/signers/xrpl-signer.ts.html +650 -650
  135. package/coverage/lib/services/index.html +31 -31
  136. package/coverage/lib/services/logger.service.ts.html +4 -4
  137. package/coverage/lib/services/transaction-builders/base-transaction-builder.service.ts.html +1 -1
  138. package/coverage/lib/services/transaction-builders/hedera-amount-utils.ts.html +155 -155
  139. package/coverage/lib/services/transaction-builders/hedera-transaction-builder.service.ts.html +2156 -2156
  140. package/coverage/lib/services/transaction-builders/index.html +43 -43
  141. package/coverage/lib/services/transaction-builders/xrpl-transaction-builder.service.ts.html +1674 -1674
  142. package/coverage/lib/services/transaction.service.ts.html +4 -7
  143. package/coverage/lib/services/unified-wallet.service.ts.html +7 -10
  144. package/coverage/lib/services/wallet-context.service.ts.html +1 -1
  145. package/coverage/lib/services/wallet-event-bus.service.ts.html +249 -249
  146. package/coverage/lib/services/wallet-providers.service.ts.html +4 -7
  147. package/coverage/lib/transports/chrome-extension-transport.ts.html +1 -1
  148. package/coverage/lib/transports/index.html +1 -1
  149. package/coverage/lib/utils/index.html +1 -1
  150. package/coverage/lib/utils/ledger-icons.util.ts.html +1 -1
  151. package/dist/fesm2022/hsuite-native-connect-angular.mjs +85 -20
  152. package/dist/fesm2022/hsuite-native-connect-angular.mjs.map +1 -1
  153. package/dist/index.d.ts +33 -3
  154. package/package.json +4 -4
  155. package/src/lib/components/wallet-connect-button/wallet-connect-button.component.spec.ts +89 -0
  156. package/src/lib/components/wallet-connect-button/wallet-connect-button.component.ts +8 -0
  157. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.html +1 -6
  158. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.spec.ts +173 -0
  159. package/src/lib/components/wallet-connection-modal/wallet-connection-modal.component.ts +84 -19
  160. package/src/lib/services/transaction.service.ts +0 -1
  161. package/src/lib/services/unified-wallet.service.ts +0 -1
  162. package/src/lib/services/wallet-providers.service.ts +0 -1
@@ -808,7 +808,7 @@
808
808
  <div class='footer quiet pad2 space-top1 center small'>
809
809
  Code coverage generated by
810
810
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
811
- at 2026-06-02T14:30:38.372Z
811
+ at 2026-06-10T09:00:36.812Z
812
812
  </div>
813
813
  <script src="../../prettify.js"></script>
814
814
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-06-02T14:30:38.372Z
104
+ at 2026-06-10T09:00:36.812Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-06-02T14:30:38.372Z
104
+ at 2026-06-10T09:00:36.812Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -304,7 +304,7 @@
304
304
  <div class='footer quiet pad2 space-top1 center small'>
305
305
  Code coverage generated by
306
306
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
307
- at 2026-06-02T14:30:38.372Z
307
+ at 2026-06-10T09:00:36.812Z
308
308
  </div>
309
309
  <script src="../../prettify.js"></script>
310
310
  <script>
@@ -9314,6 +9314,15 @@ class WalletConnectionModalComponent {
9314
9314
  * WalletConnect project ID (required for WalletConnect)
9315
9315
  */
9316
9316
  projectId;
9317
+ /**
9318
+ * Pins the connection network and hides the network-selection step.
9319
+ *
9320
+ * When set to `'mainnet'` or `'testnet'`, the host dApp decides the network
9321
+ * and the user is never shown the network picker — the modal opens directly
9322
+ * on protocol selection. When omitted (default), the user chooses the network
9323
+ * as the first step.
9324
+ */
9325
+ network;
9317
9326
  /**
9318
9327
  * App name for WalletConnect metadata
9319
9328
  */
@@ -9499,21 +9508,30 @@ class WalletConnectionModalComponent {
9499
9508
  stepConfig = computed(() => {
9500
9509
  const protocol = this.selectedProtocol();
9501
9510
  const method = this.selectedConnectionMethod();
9511
+ let base;
9502
9512
  // Initial state: show 3 placeholder steps until protocol is selected
9503
9513
  if (!protocol) {
9504
- return { total: 3, labels: ['Network', 'Protocol', '...'] };
9514
+ base = { total: 3, labels: ['Network', 'Protocol', '...'] };
9505
9515
  }
9506
- // HSuite Native path
9507
- if (protocol === 'hsuite-native') {
9508
- // If mobile QR is selected, we need 4 steps
9509
- if (method === 'mobile-qr') {
9510
- return { total: 4, labels: ['Network', 'Protocol', 'Method', 'Pair'] };
9511
- }
9512
- // Desktop connection is 3 steps (connects immediately after method selection)
9513
- return { total: 3, labels: ['Network', 'Protocol', 'Method'] };
9516
+ else if (protocol === 'hsuite-native') {
9517
+ // HSuite Native path
9518
+ base =
9519
+ method === 'mobile-qr'
9520
+ ? // Mobile QR needs 4 steps
9521
+ { total: 4, labels: ['Network', 'Protocol', 'Method', 'Pair'] }
9522
+ : // Desktop connects immediately after method selection (3 steps)
9523
+ { total: 3, labels: ['Network', 'Protocol', 'Method'] };
9524
+ }
9525
+ else {
9526
+ // WalletConnect path: 4 steps
9527
+ base = { total: 4, labels: ['Network', 'Protocol', 'Ledger', 'Connect'] };
9514
9528
  }
9515
- // WalletConnect path: 4 steps
9516
- return { total: 4, labels: ['Network', 'Protocol', 'Ledger', 'Connect'] };
9529
+ // When the network is pinned by the host dApp the network step is never
9530
+ // shown drop it from the indicator so the numbering stays accurate.
9531
+ if (this.network) {
9532
+ return { total: base.total - 1, labels: base.labels.slice(1) };
9533
+ }
9534
+ return base;
9517
9535
  }, ...(ngDevMode ? [{ debugName: "stepConfig" }] : []));
9518
9536
  /**
9519
9537
  * Maps the internal ConnectionStep enum to display position (1-based).
@@ -9523,20 +9541,23 @@ class WalletConnectionModalComponent {
9523
9541
  const step = this.currentStep();
9524
9542
  // Protocol could be used for protocol-specific step mapping in the future
9525
9543
  const _protocol = this.selectedProtocol();
9544
+ // When the network is pinned the network step is removed, so every
9545
+ // subsequent step shifts down one position in the indicator.
9546
+ const networkOffset = this.network ? 1 : 0;
9526
9547
  // Map internal step to display position based on protocol path
9527
9548
  switch (step) {
9528
9549
  case ConnectionStep.NetworkSelection:
9529
9550
  return 1;
9530
9551
  case ConnectionStep.ProtocolSelection:
9531
- return 2;
9552
+ return 2 - networkOffset;
9532
9553
  case ConnectionStep.ConnectionMethodSelection:
9533
- return 3;
9554
+ return 3 - networkOffset;
9534
9555
  case ConnectionStep.LedgerSelection:
9535
9556
  // WalletConnect ledger selection is step 3
9536
- return 3;
9557
+ return 3 - networkOffset;
9537
9558
  case ConnectionStep.QrPairing:
9538
9559
  // QR pairing is step 4 for both paths that use it
9539
- return 4;
9560
+ return 4 - networkOffset;
9540
9561
  case ConnectionStep.ConnectionProgress:
9541
9562
  // Connection progress is always the last step
9542
9563
  return this.stepConfig().total;
@@ -9544,6 +9565,22 @@ class WalletConnectionModalComponent {
9544
9565
  return 1;
9545
9566
  }
9546
9567
  }, ...(ngDevMode ? [{ debugName: "displayStep" }] : []));
9568
+ /**
9569
+ * Whether a back affordance should be offered for the current step.
9570
+ * The first reachable step has no back target — that is protocol selection
9571
+ * when the network is pinned, otherwise network selection. The connection
9572
+ * progress step manages its own retry navigation instead.
9573
+ */
9574
+ canGoBack = computed(() => {
9575
+ const step = this.currentStep();
9576
+ if (step === ConnectionStep.ConnectionProgress) {
9577
+ return false;
9578
+ }
9579
+ const firstStep = this.network
9580
+ ? ConnectionStep.ProtocolSelection
9581
+ : ConnectionStep.NetworkSelection;
9582
+ return step > firstStep;
9583
+ }, ...(ngDevMode ? [{ debugName: "canGoBack" }] : []));
9547
9584
  /**
9548
9585
  *
9549
9586
  * @param modalController
@@ -9557,6 +9594,19 @@ class WalletConnectionModalComponent {
9557
9594
  this.onMobileConnected();
9558
9595
  });
9559
9596
  }
9597
+ /**
9598
+ * Apply the pinned network (if any) before the first render.
9599
+ *
9600
+ * When the host dApp provides a {@link network}, lock the selection to it and
9601
+ * skip straight to protocol selection so the user never sees — and cannot
9602
+ * change — the network. With no input, the modal opens on network selection.
9603
+ */
9604
+ ngOnInit() {
9605
+ if (this.network) {
9606
+ this.selectedNetwork.set(this.network);
9607
+ this.currentStep.set(ConnectionStep.ProtocolSelection);
9608
+ }
9609
+ }
9560
9610
  /**
9561
9611
  * Select a network option (internal, use selectNetworkAndProceed for UI)
9562
9612
  * @param networkId
@@ -9672,7 +9722,11 @@ class WalletConnectionModalComponent {
9672
9722
  back() {
9673
9723
  const currentStep = this.currentStep();
9674
9724
  if (currentStep === ConnectionStep.ProtocolSelection) {
9675
- this.currentStep.set(ConnectionStep.NetworkSelection);
9725
+ // When the network is pinned, protocol selection is the first reachable
9726
+ // step — there is no network step to return to.
9727
+ if (!this.network) {
9728
+ this.currentStep.set(ConnectionStep.NetworkSelection);
9729
+ }
9676
9730
  }
9677
9731
  else if (currentStep === ConnectionStep.ConnectionMethodSelection) {
9678
9732
  this.currentStep.set(ConnectionStep.ProtocolSelection);
@@ -9869,13 +9923,15 @@ class WalletConnectionModalComponent {
9869
9923
  .__HSUITE_WALLET_EXTENSION__ === true);
9870
9924
  }
9871
9925
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WalletConnectionModalComponent, deps: [{ token: i1$1.ModalController }, { token: UnifiedWalletService }], target: i0.ɵɵFactoryTarget.Component });
9872
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: WalletConnectionModalComponent, isStandalone: true, selector: "hsuite-wallet-connection-modal", inputs: { projectId: "projectId", appName: "appName", appDescription: "appDescription", walletUrl: "walletUrl" }, outputs: { connected: "connected" }, ngImport: i0, template: "<ion-content>\n <div class=\"modal-inner-content wallet-connection-modal\">\n <div class=\"header\">\n <div class=\"title\">\n <ion-button\n *ngIf=\"currentStep() > 1 && currentStep() !== ConnectionStep.ConnectionProgress\"\n (click)=\"back()\"\n fill=\"clear\"\n class=\"back-btn\"\n >\n <ion-icon slot=\"icon-only\" name=\"arrow-back-outline\"></ion-icon>\n </ion-button>\n <p>{{ stepTitle() }}</p>\n </div>\n <ion-button class=\"close-modal\" (click)=\"dismiss()\" fill=\"clear\" [disabled]=\"isConnecting()\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </div>\n\n <!-- Dynamic Step Progress Indicator -->\n <div class=\"dao-header\">\n <div class=\"step-progress\">\n <!-- Dynamic steps based on selected protocol path -->\n <ng-container *ngFor=\"let label of stepConfig().labels; let i = index\">\n <div class=\"step-indicator\">\n <div\n class=\"step-circle\"\n [class.active]=\"displayStep() === i + 1\"\n [class.completed]=\"displayStep() > i + 1\"\n [attr.title]=\"label\"\n >\n <ion-icon *ngIf=\"displayStep() > i + 1\" name=\"checkmark\"></ion-icon>\n <span *ngIf=\"displayStep() <= i + 1\">{{ i + 1 }}</span>\n </div>\n <!-- Step line between circles (not after the last one) -->\n <div\n class=\"step-line\"\n *ngIf=\"i < stepConfig().labels.length - 1\"\n [class.active]=\"displayStep() > i + 1\"\n ></div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"form\">\n <!-- Step 1: Network Selection (Direct Selection - click advances to next step) -->\n <div *ngIf=\"currentStep() === ConnectionStep.NetworkSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Choose Network</h3>\n <p>Select the network you want to connect to.</p>\n </div>\n\n <div class=\"options-grid direct-select\">\n <ion-card\n *ngFor=\"let network of networkOptions\"\n (click)=\"selectNetworkAndProceed(network.id)\"\n [class.selected]=\"selectedNetwork() === network.id\"\n button\n >\n <ion-card-content>\n <div class=\"option-icon\">\n <ion-icon [name]=\"network.icon\"></ion-icon>\n </div>\n <h3>{{ network.name }}</h3>\n <p>{{ network.description }}</p>\n <ion-badge *ngIf=\"network.recommended\" color=\"success\">Recommended</ion-badge>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 2: Protocol Selection (Direct Selection - click advances to next step) -->\n <div *ngIf=\"currentStep() === ConnectionStep.ProtocolSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Connection Protocol</h3>\n <p>Choose how you want to connect your wallet.</p>\n </div>\n\n <div class=\"options-list direct-select\">\n <ion-card\n *ngFor=\"let protocol of protocolOptions()\"\n (click)=\"selectProtocolAndProceed(protocol.id)\"\n [class.selected]=\"selectedProtocol() === protocol.id\"\n button\n >\n <ion-card-content>\n <div class=\"protocol-header\">\n <div class=\"option-icon\">\n <ion-icon [name]=\"protocol.icon\"></ion-icon>\n </div>\n <div class=\"protocol-info\">\n <h3>{{ protocol.name }}</h3>\n <p>{{ protocol.description }}</p>\n </div>\n </div>\n\n <ul class=\"feature-list\">\n <li *ngFor=\"let feature of protocol.features\">\n <ion-icon name=\"checkmark-circle\" color=\"success\"></ion-icon>\n <span>{{ feature }}</span>\n </li>\n </ul>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 3: Connection Method Selection (HSuite Native only) -->\n <div *ngIf=\"currentStep() === ConnectionStep.ConnectionMethodSelection\" class=\"step-content\">\n <hsuite-connection-method-step\n [methods]=\"connectionMethodOptions()\"\n [isMobile]=\"isMobile()\"\n [selectedMethod]=\"selectedConnectionMethod()\"\n (methodSelected)=\"onConnectionMethodSelected($event)\"\n ></hsuite-connection-method-step>\n </div>\n\n <!-- Step 3 (WalletConnect path): Ledger Selection (Direct Selection - click initiates connection) -->\n <div *ngIf=\"currentStep() === ConnectionStep.LedgerSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Choose Blockchain</h3>\n <p>Select the blockchain ledger to connect with.</p>\n </div>\n\n <div class=\"options-grid direct-select\">\n <ion-card\n *ngFor=\"let ledger of ledgerOptions\"\n (click)=\"selectLedgerAndConnect(ledger.id)\"\n [class.selected]=\"selectedLedger() === ledger.id\"\n button\n >\n <ion-card-content>\n <div class=\"option-icon\">\n <ion-icon [name]=\"ledger.icon\"></ion-icon>\n </div>\n <h3>{{ ledger.name }}</h3>\n <p>{{ ledger.description }}</p>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 5: QR Pairing (Mobile P2P - Nostr-first, single QR) -->\n <div *ngIf=\"currentStep() === ConnectionStep.QrPairing\" class=\"step-content\">\n <hsuite-qr-pairing-step\n [offerData]=\"pairingOffer()\"\n [appName]=\"appName\"\n [isLoading]=\"isGeneratingOffer()\"\n [isWaitingForWallet]=\"isWaitingForWallet()\"\n [isWaitingForApproval]=\"isWaitingForApproval()\"\n [errorMessage]=\"connectionError()\"\n (expired)=\"onQrExpired()\"\n (refreshRequested)=\"onQrRefresh()\"\n (cancelled)=\"back()\"\n ></hsuite-qr-pairing-step>\n </div>\n\n <!-- Step 6: Connection Progress -->\n <div *ngIf=\"currentStep() === ConnectionStep.ConnectionProgress\" class=\"step-content\">\n <div class=\"membership-section connection-progress\">\n <div *ngIf=\"isConnecting()\" class=\"status-info\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n <h3>Connecting...</h3>\n <p *ngIf=\"selectedProtocol() === 'walletconnect'\">\n Please approve the connection in your wallet app or scan the QR code.\n </p>\n <p *ngIf=\"selectedProtocol() === 'hsuite-native'\">Opening HSuite Wallet...</p>\n </div>\n\n <div *ngIf=\"connectionError()\" class=\"membership-section\">\n <div class=\"error-section\">\n <ion-item lines=\"none\">\n <ion-icon slot=\"start\" name=\"alert-circle-outline\" color=\"danger\"></ion-icon>\n <ion-label>\n <h3>Connection Failed</h3>\n <p>{{ connectionError() }}</p>\n </ion-label>\n </ion-item>\n </div>\n <ion-button expand=\"block\" fill=\"outline\" (click)=\"back()\" class=\"ion-margin-top\">\n Try Again\n </ion-button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer removed: All steps now use direct selection (click to proceed) -->\n </div>\n</ion-content>\n", styles: [":host{display:flex;align-items:center;justify-content:center;height:100%;width:100%}ion-content{--background: transparent;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0;height:100vh;width:100%;display:flex!important;align-items:center!important;justify-content:center!important}ion-content::part(scroll){display:flex;align-items:center;justify-content:center;min-height:100%;width:100%}.modal-inner-content{width:90%;max-width:600px;max-height:80vh;background:var(--glass-background, rgba(var(--ion-color-dark-rgb), .95));border-radius:var(--border-radius-xl, 16px);padding:0;display:flex;flex-direction:column;box-shadow:var(--shadow-2xl);border:1px solid var(--border-flat, rgba(var(--ion-color-light-rgb), .1));overflow:hidden;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg, 16px) var(--space-xl, 20px);background:transparent;flex-shrink:0}.header .title{display:flex;align-items:center;gap:var(--space-sm, 8px);flex:1}.header .title p{margin:0;font-size:var(--font-size-2xl, 24px);font-weight:var(--font-weight-bold, 700);color:var(--ion-text-color);line-height:1.2}.header .back-btn{--padding-start: 8px;--padding-end: 8px;margin:0}.header .back-btn ion-icon{font-size:22px;color:var(--ion-color-primary)}.header .close-modal{--padding-start: 8px;--padding-end: 8px;margin:0;cursor:pointer}.header .close-modal ion-icon{font-size:24px;color:var(--ion-text-color)}.header .close-modal:hover:not(:disabled){transform:scale(1.05)}.header .close-modal:active:not(:disabled){transform:scale(.95)}.form{flex:1;overflow-y:auto;padding:0 var(--space-xl, 20px) var(--space-xl, 20px) var(--space-xl, 20px);background:transparent}.form::-webkit-scrollbar{width:8px}.form::-webkit-scrollbar-track{background:var(--surface-flat, rgba(var(--ion-color-light-rgb), .05));border-radius:4px}.form::-webkit-scrollbar-thumb{background:rgba(var(--ion-color-light-rgb),.2);border-radius:4px}.form::-webkit-scrollbar-thumb:hover{background:rgba(var(--ion-color-light-rgb),.3)}@media(min-width:768px){.modal-inner-content{width:80%;max-width:700px;border-radius:20px}.header{padding:20px 24px}.dao-header{margin:0 24px 24px}.form{padding:0 24px 24px}}@media(max-width:480px){.modal-inner-content{width:95%;max-height:85vh}.header{padding:14px 16px}.dao-header{margin:0 16px 20px}.form{padding:0 16px 16px}}.dao-header{margin:0 var(--space-xl, 20px) var(--token-space-6, 24px) var(--space-xl, 20px);padding:var(--token-space-4, 16px);background:var(--token-surface-2, var(--surface-flat, rgba(var(--ion-color-light-rgb), .05)));border:var(--token-border-width-1, 1px) solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);box-shadow:var(--token-elevation-1, var(--shadow-sm));flex-shrink:0;animation:fadeIn var(--token-transition-slow, .3s) ease}.dao-header .step-progress{display:flex;align-items:center;justify-content:center}.dao-header .step-progress .step-indicator{display:flex;align-items:center}.dao-header .step-progress .step-indicator .step-circle{width:36px;height:36px;border-radius:var(--token-radius-full, 50%);display:flex;align-items:center;justify-content:center;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .1));color:var(--ion-text-color);font-weight:var(--token-font-weight-semibold, 600);font-size:var(--token-font-size-2, 14px);border:var(--token-border-width-1, 1px) solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .2)));transition:all var(--token-transition-slow, .3s) var(--token-ease-in-out, cubic-bezier(.4, 0, .2, 1))}.dao-header .step-progress .step-indicator .step-circle.active{background:var(--ion-color-primary);color:var(--ion-color-primary-contrast);border-color:var(--ion-color-primary);transform:scale(1.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.2)}.dao-header .step-progress .step-indicator .step-circle.completed{background:var(--ion-color-success);color:var(--ion-color-success-contrast);border-color:var(--ion-color-success);transform:scale(1.05)}.dao-header .step-progress .step-indicator .step-circle:hover:not(.active):not(.completed){transform:scale(1.05);background:rgba(var(--ion-color-light-rgb),.15)}.dao-header .step-progress .step-indicator .step-circle ion-icon{font-size:20px}.dao-header .step-progress .step-indicator .step-line{width:40px;height:var(--token-border-width-2, 2px);background:var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .2)));margin:0 var(--token-space-2, 8px);transition:all var(--token-transition-slow, .3s) ease}.dao-header .step-progress .step-indicator .step-line.active{background:var(--ion-color-success);box-shadow:0 0 8px rgba(var(--ion-color-success-rgb),.5)}.membership-section{margin-bottom:var(--token-space-6, 24px);animation:fadeIn var(--token-transition-slow, .3s) ease}.membership-section .explanation{margin-bottom:var(--token-space-4, 16px)}.membership-section .explanation h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);color:var(--ion-text-color);line-height:var(--token-line-height-tight, 1.3);margin:0 0 var(--token-space-2, 8px) 0}.membership-section .explanation p{font-size:var(--token-font-size-2, 14px);color:var(--ion-color-medium);line-height:var(--token-line-height-normal, 1.4);margin:0}.membership-section .options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--token-space-3, 12px)}.membership-section .options-grid ion-card{margin:0;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .05));border:1px solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);transition:all var(--token-transition-normal, .2s) ease;cursor:pointer;box-shadow:var(--token-elevation-1, var(--shadow-sm))}.membership-section .options-grid ion-card:hover{transform:translateY(-2px);background:var(--token-surface-hover, rgba(var(--ion-color-light-rgb), .08));border-color:var(--border-flat, rgba(var(--ion-color-light-rgb), .2));box-shadow:var(--token-elevation-2, var(--shadow-md))}.membership-section .options-grid ion-card:active{transform:translateY(0)}.membership-section .options-grid ion-card.selected{border:2px solid var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.1)}.membership-section .options-grid ion-card ion-card-content{text-align:center;padding:var(--token-space-5, 20px)}.membership-section .options-grid ion-card ion-card-content .option-icon{margin-bottom:var(--token-space-3, 12px)}.membership-section .options-grid ion-card ion-card-content .option-icon ion-icon{font-size:40px;color:var(--ion-color-primary);transition:transform var(--token-transition-fast, .15s) ease}.membership-section .options-grid ion-card ion-card-content h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-2, 6px) 0;color:var(--ion-text-color)}.membership-section .options-grid ion-card ion-card-content p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0 0 var(--token-space-2, 8px) 0;line-height:var(--token-line-height-tight, 1.3)}.membership-section .options-grid ion-card:hover .option-icon ion-icon{transform:scale(1.1) rotate(5deg)}.membership-section .options-list{display:flex;flex-direction:column;gap:var(--token-space-3, 12px)}.membership-section .options-list ion-card{margin:0;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .05));border:1px solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);transition:all var(--token-transition-normal, .2s) ease;cursor:pointer;box-shadow:var(--token-elevation-1, var(--shadow-sm))}.membership-section .options-list ion-card:hover{transform:translate(4px);background:var(--token-surface-hover, rgba(var(--ion-color-light-rgb), .08));border-color:var(--border-flat, rgba(var(--ion-color-light-rgb), .2));box-shadow:var(--token-elevation-2, var(--shadow-md))}.membership-section .options-list ion-card:active{transform:translate(2px)}.membership-section .options-list ion-card.selected{border:2px solid var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.1)}.membership-section .options-list ion-card ion-card-content{padding:var(--token-space-4, 16px)}.membership-section .options-list ion-card ion-card-content .protocol-header{display:flex;align-items:center;gap:var(--token-space-3, 12px);margin-bottom:var(--token-space-3, 12px)}.membership-section .options-list ion-card ion-card-content .protocol-header .option-icon ion-icon{font-size:36px;color:var(--ion-color-primary);transition:transform var(--token-transition-fast, .15s) ease}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info{flex:1;min-width:0}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-1, 4px) 0;color:var(--ion-text-color)}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0;line-height:var(--token-line-height-tight, 1.3)}.membership-section .options-list ion-card ion-card-content .feature-list{list-style:none;padding:0;margin:0}.membership-section .options-list ion-card ion-card-content .feature-list li{display:flex;align-items:center;gap:var(--token-space-2, 8px);padding:var(--token-space-1, 4px) 0;font-size:var(--token-font-size-1, 13px);color:var(--ion-text-color);line-height:var(--token-line-height-normal, 1.4)}.membership-section .options-list ion-card ion-card-content .feature-list li ion-icon{font-size:var(--token-space-4, 16px);flex-shrink:0;color:var(--ion-color-success)}.membership-section .options-list ion-card:hover .protocol-header .option-icon ion-icon{transform:scale(1.1) rotate(5deg)}.membership-section.connection-progress{display:flex;justify-content:center;align-items:center;min-height:200px}.membership-section.connection-progress .status-info{text-align:center;padding:var(--token-space-6, 24px)}.membership-section.connection-progress .status-info ion-spinner{font-size:48px;margin-bottom:var(--token-space-4, 16px);color:var(--ion-color-primary)}.membership-section.connection-progress .status-info h3{font-size:var(--token-font-size-4, 18px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-2, 8px) 0;color:var(--ion-text-color)}.membership-section.connection-progress .status-info p{font-size:var(--token-font-size-2, 14px);color:var(--ion-color-medium);margin:0;max-width:300px;line-height:var(--token-line-height-normal, 1.4)}.membership-section .error-section{padding:var(--token-space-3, 12px);background:rgba(var(--ion-color-danger-rgb),.1);border:1px solid rgba(var(--ion-color-danger-rgb),.2);border-radius:var(--token-radius-2, 8px)}.membership-section .error-section ion-item{--background: transparent;--padding-start: 0;--inner-padding-end: 0}.membership-section .error-section ion-item ion-icon{font-size:var(--token-space-6, 24px)}.membership-section .error-section ion-item ion-label h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);color:var(--ion-color-danger);margin:0 0 var(--token-space-1, 4px) 0}.membership-section .error-section ion-item ion-label p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0;line-height:var(--token-line-height-tight, 1.3)}.step-content{animation:stepFadeIn var(--token-transition-normal, .25s) var(--token-ease-out, cubic-bezier(0, 0, .2, 1))}.direct-select ion-card{position:relative;overflow:hidden}.direct-select ion-card:after{content:\"\";position:absolute;right:12px;top:50%;transform:translateY(-50%) translate(0);width:0;height:0;border-left:6px solid var(--ion-color-primary);border-top:5px solid transparent;border-bottom:5px solid transparent;opacity:0;transition:all var(--token-transition-fast, .15s) ease}.direct-select ion-card:hover:after{opacity:.6;transform:translateY(-50%) translate(4px)}.direct-select ion-card:hover{border-color:rgba(var(--ion-color-primary-rgb),.4)}.direct-select ion-card:hover .option-icon ion-icon{color:var(--ion-color-primary)}.direct-select ion-card:active{transform:scale(.98);background:rgba(var(--ion-color-primary-rgb),.15)!important}.direct-select.options-grid ion-card:after{right:8px;top:16px;transform:translateY(0) translate(0)}.direct-select.options-grid ion-card:hover:after{transform:translateY(0) translate(4px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes stepFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes stepPulse{0%{box-shadow:0 0 rgba(var(--ion-color-primary-rgb),.4)}70%{box-shadow:0 0 0 8px rgba(var(--ion-color-primary-rgb),0)}to{box-shadow:0 0 rgba(var(--ion-color-primary-rgb),0)}}.step-progress .step-indicator .step-circle.active{animation:stepPulse 1.5s ease-out infinite}@media(max-width:768px){.membership-section .options-grid{grid-template-columns:1fr}.dao-header .step-progress .step-indicator .step-circle{width:28px;height:28px;font-size:12px}.dao-header .step-progress .step-indicator .step-line{width:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}@keyframes fadeIn{0%,to{opacity:1;transform:translateY(0)}}@keyframes stepFadeIn{0%,to{opacity:1;transform:translateY(0)}}@keyframes stepPulse{0%,to{box-shadow:none}}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1$1.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { kind: "component", type: i1$1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1$1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1$1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1$1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1$1.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1$1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: ConnectionMethodStepComponent, selector: "hsuite-connection-method-step", inputs: ["methods", "isMobile", "selectedMethod"], outputs: ["methodSelected"] }, { kind: "component", type: QrPairingStepComponent, selector: "hsuite-qr-pairing-step", inputs: ["offerData", "appName", "isLoading", "isWaitingForWallet", "isWaitingForApproval", "errorMessage", "expirySeconds"], outputs: ["expired", "connected", "cancelled", "refreshRequested"] }] });
9926
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: WalletConnectionModalComponent, isStandalone: true, selector: "hsuite-wallet-connection-modal", inputs: { projectId: "projectId", network: "network", appName: "appName", appDescription: "appDescription", walletUrl: "walletUrl" }, outputs: { connected: "connected" }, ngImport: i0, template: "<ion-content>\n <div class=\"modal-inner-content wallet-connection-modal\">\n <div class=\"header\">\n <div class=\"title\">\n <ion-button *ngIf=\"canGoBack()\" (click)=\"back()\" fill=\"clear\" class=\"back-btn\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back-outline\"></ion-icon>\n </ion-button>\n <p>{{ stepTitle() }}</p>\n </div>\n <ion-button class=\"close-modal\" (click)=\"dismiss()\" fill=\"clear\" [disabled]=\"isConnecting()\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </div>\n\n <!-- Dynamic Step Progress Indicator -->\n <div class=\"dao-header\">\n <div class=\"step-progress\">\n <!-- Dynamic steps based on selected protocol path -->\n <ng-container *ngFor=\"let label of stepConfig().labels; let i = index\">\n <div class=\"step-indicator\">\n <div\n class=\"step-circle\"\n [class.active]=\"displayStep() === i + 1\"\n [class.completed]=\"displayStep() > i + 1\"\n [attr.title]=\"label\"\n >\n <ion-icon *ngIf=\"displayStep() > i + 1\" name=\"checkmark\"></ion-icon>\n <span *ngIf=\"displayStep() <= i + 1\">{{ i + 1 }}</span>\n </div>\n <!-- Step line between circles (not after the last one) -->\n <div\n class=\"step-line\"\n *ngIf=\"i < stepConfig().labels.length - 1\"\n [class.active]=\"displayStep() > i + 1\"\n ></div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"form\">\n <!-- Step 1: Network Selection (Direct Selection - click advances to next step) -->\n <div *ngIf=\"currentStep() === ConnectionStep.NetworkSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Choose Network</h3>\n <p>Select the network you want to connect to.</p>\n </div>\n\n <div class=\"options-grid direct-select\">\n <ion-card\n *ngFor=\"let network of networkOptions\"\n (click)=\"selectNetworkAndProceed(network.id)\"\n [class.selected]=\"selectedNetwork() === network.id\"\n button\n >\n <ion-card-content>\n <div class=\"option-icon\">\n <ion-icon [name]=\"network.icon\"></ion-icon>\n </div>\n <h3>{{ network.name }}</h3>\n <p>{{ network.description }}</p>\n <ion-badge *ngIf=\"network.recommended\" color=\"success\">Recommended</ion-badge>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 2: Protocol Selection (Direct Selection - click advances to next step) -->\n <div *ngIf=\"currentStep() === ConnectionStep.ProtocolSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Connection Protocol</h3>\n <p>Choose how you want to connect your wallet.</p>\n </div>\n\n <div class=\"options-list direct-select\">\n <ion-card\n *ngFor=\"let protocol of protocolOptions()\"\n (click)=\"selectProtocolAndProceed(protocol.id)\"\n [class.selected]=\"selectedProtocol() === protocol.id\"\n button\n >\n <ion-card-content>\n <div class=\"protocol-header\">\n <div class=\"option-icon\">\n <ion-icon [name]=\"protocol.icon\"></ion-icon>\n </div>\n <div class=\"protocol-info\">\n <h3>{{ protocol.name }}</h3>\n <p>{{ protocol.description }}</p>\n </div>\n </div>\n\n <ul class=\"feature-list\">\n <li *ngFor=\"let feature of protocol.features\">\n <ion-icon name=\"checkmark-circle\" color=\"success\"></ion-icon>\n <span>{{ feature }}</span>\n </li>\n </ul>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 3: Connection Method Selection (HSuite Native only) -->\n <div *ngIf=\"currentStep() === ConnectionStep.ConnectionMethodSelection\" class=\"step-content\">\n <hsuite-connection-method-step\n [methods]=\"connectionMethodOptions()\"\n [isMobile]=\"isMobile()\"\n [selectedMethod]=\"selectedConnectionMethod()\"\n (methodSelected)=\"onConnectionMethodSelected($event)\"\n ></hsuite-connection-method-step>\n </div>\n\n <!-- Step 3 (WalletConnect path): Ledger Selection (Direct Selection - click initiates connection) -->\n <div *ngIf=\"currentStep() === ConnectionStep.LedgerSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Choose Blockchain</h3>\n <p>Select the blockchain ledger to connect with.</p>\n </div>\n\n <div class=\"options-grid direct-select\">\n <ion-card\n *ngFor=\"let ledger of ledgerOptions\"\n (click)=\"selectLedgerAndConnect(ledger.id)\"\n [class.selected]=\"selectedLedger() === ledger.id\"\n button\n >\n <ion-card-content>\n <div class=\"option-icon\">\n <ion-icon [name]=\"ledger.icon\"></ion-icon>\n </div>\n <h3>{{ ledger.name }}</h3>\n <p>{{ ledger.description }}</p>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 5: QR Pairing (Mobile P2P - Nostr-first, single QR) -->\n <div *ngIf=\"currentStep() === ConnectionStep.QrPairing\" class=\"step-content\">\n <hsuite-qr-pairing-step\n [offerData]=\"pairingOffer()\"\n [appName]=\"appName\"\n [isLoading]=\"isGeneratingOffer()\"\n [isWaitingForWallet]=\"isWaitingForWallet()\"\n [isWaitingForApproval]=\"isWaitingForApproval()\"\n [errorMessage]=\"connectionError()\"\n (expired)=\"onQrExpired()\"\n (refreshRequested)=\"onQrRefresh()\"\n (cancelled)=\"back()\"\n ></hsuite-qr-pairing-step>\n </div>\n\n <!-- Step 6: Connection Progress -->\n <div *ngIf=\"currentStep() === ConnectionStep.ConnectionProgress\" class=\"step-content\">\n <div class=\"membership-section connection-progress\">\n <div *ngIf=\"isConnecting()\" class=\"status-info\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n <h3>Connecting...</h3>\n <p *ngIf=\"selectedProtocol() === 'walletconnect'\">\n Please approve the connection in your wallet app or scan the QR code.\n </p>\n <p *ngIf=\"selectedProtocol() === 'hsuite-native'\">Opening HSuite Wallet...</p>\n </div>\n\n <div *ngIf=\"connectionError()\" class=\"membership-section\">\n <div class=\"error-section\">\n <ion-item lines=\"none\">\n <ion-icon slot=\"start\" name=\"alert-circle-outline\" color=\"danger\"></ion-icon>\n <ion-label>\n <h3>Connection Failed</h3>\n <p>{{ connectionError() }}</p>\n </ion-label>\n </ion-item>\n </div>\n <ion-button expand=\"block\" fill=\"outline\" (click)=\"back()\" class=\"ion-margin-top\">\n Try Again\n </ion-button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer removed: All steps now use direct selection (click to proceed) -->\n </div>\n</ion-content>\n", styles: [":host{display:flex;align-items:center;justify-content:center;height:100%;width:100%}ion-content{--background: transparent;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0;height:100vh;width:100%;display:flex!important;align-items:center!important;justify-content:center!important}ion-content::part(scroll){display:flex;align-items:center;justify-content:center;min-height:100%;width:100%}.modal-inner-content{width:90%;max-width:600px;max-height:80vh;background:var(--glass-background, rgba(var(--ion-color-dark-rgb), .95));border-radius:var(--border-radius-xl, 16px);padding:0;display:flex;flex-direction:column;box-shadow:var(--shadow-2xl);border:1px solid var(--border-flat, rgba(var(--ion-color-light-rgb), .1));overflow:hidden;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg, 16px) var(--space-xl, 20px);background:transparent;flex-shrink:0}.header .title{display:flex;align-items:center;gap:var(--space-sm, 8px);flex:1}.header .title p{margin:0;font-size:var(--font-size-2xl, 24px);font-weight:var(--font-weight-bold, 700);color:var(--ion-text-color);line-height:1.2}.header .back-btn{--padding-start: 8px;--padding-end: 8px;margin:0}.header .back-btn ion-icon{font-size:22px;color:var(--ion-color-primary)}.header .close-modal{--padding-start: 8px;--padding-end: 8px;margin:0;cursor:pointer}.header .close-modal ion-icon{font-size:24px;color:var(--ion-text-color)}.header .close-modal:hover:not(:disabled){transform:scale(1.05)}.header .close-modal:active:not(:disabled){transform:scale(.95)}.form{flex:1;overflow-y:auto;padding:0 var(--space-xl, 20px) var(--space-xl, 20px) var(--space-xl, 20px);background:transparent}.form::-webkit-scrollbar{width:8px}.form::-webkit-scrollbar-track{background:var(--surface-flat, rgba(var(--ion-color-light-rgb), .05));border-radius:4px}.form::-webkit-scrollbar-thumb{background:rgba(var(--ion-color-light-rgb),.2);border-radius:4px}.form::-webkit-scrollbar-thumb:hover{background:rgba(var(--ion-color-light-rgb),.3)}@media(min-width:768px){.modal-inner-content{width:80%;max-width:700px;border-radius:20px}.header{padding:20px 24px}.dao-header{margin:0 24px 24px}.form{padding:0 24px 24px}}@media(max-width:480px){.modal-inner-content{width:95%;max-height:85vh}.header{padding:14px 16px}.dao-header{margin:0 16px 20px}.form{padding:0 16px 16px}}.dao-header{margin:0 var(--space-xl, 20px) var(--token-space-6, 24px) var(--space-xl, 20px);padding:var(--token-space-4, 16px);background:var(--token-surface-2, var(--surface-flat, rgba(var(--ion-color-light-rgb), .05)));border:var(--token-border-width-1, 1px) solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);box-shadow:var(--token-elevation-1, var(--shadow-sm));flex-shrink:0;animation:fadeIn var(--token-transition-slow, .3s) ease}.dao-header .step-progress{display:flex;align-items:center;justify-content:center}.dao-header .step-progress .step-indicator{display:flex;align-items:center}.dao-header .step-progress .step-indicator .step-circle{width:36px;height:36px;border-radius:var(--token-radius-full, 50%);display:flex;align-items:center;justify-content:center;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .1));color:var(--ion-text-color);font-weight:var(--token-font-weight-semibold, 600);font-size:var(--token-font-size-2, 14px);border:var(--token-border-width-1, 1px) solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .2)));transition:all var(--token-transition-slow, .3s) var(--token-ease-in-out, cubic-bezier(.4, 0, .2, 1))}.dao-header .step-progress .step-indicator .step-circle.active{background:var(--ion-color-primary);color:var(--ion-color-primary-contrast);border-color:var(--ion-color-primary);transform:scale(1.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.2)}.dao-header .step-progress .step-indicator .step-circle.completed{background:var(--ion-color-success);color:var(--ion-color-success-contrast);border-color:var(--ion-color-success);transform:scale(1.05)}.dao-header .step-progress .step-indicator .step-circle:hover:not(.active):not(.completed){transform:scale(1.05);background:rgba(var(--ion-color-light-rgb),.15)}.dao-header .step-progress .step-indicator .step-circle ion-icon{font-size:20px}.dao-header .step-progress .step-indicator .step-line{width:40px;height:var(--token-border-width-2, 2px);background:var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .2)));margin:0 var(--token-space-2, 8px);transition:all var(--token-transition-slow, .3s) ease}.dao-header .step-progress .step-indicator .step-line.active{background:var(--ion-color-success);box-shadow:0 0 8px rgba(var(--ion-color-success-rgb),.5)}.membership-section{margin-bottom:var(--token-space-6, 24px);animation:fadeIn var(--token-transition-slow, .3s) ease}.membership-section .explanation{margin-bottom:var(--token-space-4, 16px)}.membership-section .explanation h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);color:var(--ion-text-color);line-height:var(--token-line-height-tight, 1.3);margin:0 0 var(--token-space-2, 8px) 0}.membership-section .explanation p{font-size:var(--token-font-size-2, 14px);color:var(--ion-color-medium);line-height:var(--token-line-height-normal, 1.4);margin:0}.membership-section .options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--token-space-3, 12px)}.membership-section .options-grid ion-card{margin:0;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .05));border:1px solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);transition:all var(--token-transition-normal, .2s) ease;cursor:pointer;box-shadow:var(--token-elevation-1, var(--shadow-sm))}.membership-section .options-grid ion-card:hover{transform:translateY(-2px);background:var(--token-surface-hover, rgba(var(--ion-color-light-rgb), .08));border-color:var(--border-flat, rgba(var(--ion-color-light-rgb), .2));box-shadow:var(--token-elevation-2, var(--shadow-md))}.membership-section .options-grid ion-card:active{transform:translateY(0)}.membership-section .options-grid ion-card.selected{border:2px solid var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.1)}.membership-section .options-grid ion-card ion-card-content{text-align:center;padding:var(--token-space-5, 20px)}.membership-section .options-grid ion-card ion-card-content .option-icon{margin-bottom:var(--token-space-3, 12px)}.membership-section .options-grid ion-card ion-card-content .option-icon ion-icon{font-size:40px;color:var(--ion-color-primary);transition:transform var(--token-transition-fast, .15s) ease}.membership-section .options-grid ion-card ion-card-content h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-2, 6px) 0;color:var(--ion-text-color)}.membership-section .options-grid ion-card ion-card-content p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0 0 var(--token-space-2, 8px) 0;line-height:var(--token-line-height-tight, 1.3)}.membership-section .options-grid ion-card:hover .option-icon ion-icon{transform:scale(1.1) rotate(5deg)}.membership-section .options-list{display:flex;flex-direction:column;gap:var(--token-space-3, 12px)}.membership-section .options-list ion-card{margin:0;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .05));border:1px solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);transition:all var(--token-transition-normal, .2s) ease;cursor:pointer;box-shadow:var(--token-elevation-1, var(--shadow-sm))}.membership-section .options-list ion-card:hover{transform:translate(4px);background:var(--token-surface-hover, rgba(var(--ion-color-light-rgb), .08));border-color:var(--border-flat, rgba(var(--ion-color-light-rgb), .2));box-shadow:var(--token-elevation-2, var(--shadow-md))}.membership-section .options-list ion-card:active{transform:translate(2px)}.membership-section .options-list ion-card.selected{border:2px solid var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.1)}.membership-section .options-list ion-card ion-card-content{padding:var(--token-space-4, 16px)}.membership-section .options-list ion-card ion-card-content .protocol-header{display:flex;align-items:center;gap:var(--token-space-3, 12px);margin-bottom:var(--token-space-3, 12px)}.membership-section .options-list ion-card ion-card-content .protocol-header .option-icon ion-icon{font-size:36px;color:var(--ion-color-primary);transition:transform var(--token-transition-fast, .15s) ease}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info{flex:1;min-width:0}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-1, 4px) 0;color:var(--ion-text-color)}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0;line-height:var(--token-line-height-tight, 1.3)}.membership-section .options-list ion-card ion-card-content .feature-list{list-style:none;padding:0;margin:0}.membership-section .options-list ion-card ion-card-content .feature-list li{display:flex;align-items:center;gap:var(--token-space-2, 8px);padding:var(--token-space-1, 4px) 0;font-size:var(--token-font-size-1, 13px);color:var(--ion-text-color);line-height:var(--token-line-height-normal, 1.4)}.membership-section .options-list ion-card ion-card-content .feature-list li ion-icon{font-size:var(--token-space-4, 16px);flex-shrink:0;color:var(--ion-color-success)}.membership-section .options-list ion-card:hover .protocol-header .option-icon ion-icon{transform:scale(1.1) rotate(5deg)}.membership-section.connection-progress{display:flex;justify-content:center;align-items:center;min-height:200px}.membership-section.connection-progress .status-info{text-align:center;padding:var(--token-space-6, 24px)}.membership-section.connection-progress .status-info ion-spinner{font-size:48px;margin-bottom:var(--token-space-4, 16px);color:var(--ion-color-primary)}.membership-section.connection-progress .status-info h3{font-size:var(--token-font-size-4, 18px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-2, 8px) 0;color:var(--ion-text-color)}.membership-section.connection-progress .status-info p{font-size:var(--token-font-size-2, 14px);color:var(--ion-color-medium);margin:0;max-width:300px;line-height:var(--token-line-height-normal, 1.4)}.membership-section .error-section{padding:var(--token-space-3, 12px);background:rgba(var(--ion-color-danger-rgb),.1);border:1px solid rgba(var(--ion-color-danger-rgb),.2);border-radius:var(--token-radius-2, 8px)}.membership-section .error-section ion-item{--background: transparent;--padding-start: 0;--inner-padding-end: 0}.membership-section .error-section ion-item ion-icon{font-size:var(--token-space-6, 24px)}.membership-section .error-section ion-item ion-label h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);color:var(--ion-color-danger);margin:0 0 var(--token-space-1, 4px) 0}.membership-section .error-section ion-item ion-label p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0;line-height:var(--token-line-height-tight, 1.3)}.step-content{animation:stepFadeIn var(--token-transition-normal, .25s) var(--token-ease-out, cubic-bezier(0, 0, .2, 1))}.direct-select ion-card{position:relative;overflow:hidden}.direct-select ion-card:after{content:\"\";position:absolute;right:12px;top:50%;transform:translateY(-50%) translate(0);width:0;height:0;border-left:6px solid var(--ion-color-primary);border-top:5px solid transparent;border-bottom:5px solid transparent;opacity:0;transition:all var(--token-transition-fast, .15s) ease}.direct-select ion-card:hover:after{opacity:.6;transform:translateY(-50%) translate(4px)}.direct-select ion-card:hover{border-color:rgba(var(--ion-color-primary-rgb),.4)}.direct-select ion-card:hover .option-icon ion-icon{color:var(--ion-color-primary)}.direct-select ion-card:active{transform:scale(.98);background:rgba(var(--ion-color-primary-rgb),.15)!important}.direct-select.options-grid ion-card:after{right:8px;top:16px;transform:translateY(0) translate(0)}.direct-select.options-grid ion-card:hover:after{transform:translateY(0) translate(4px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes stepFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes stepPulse{0%{box-shadow:0 0 rgba(var(--ion-color-primary-rgb),.4)}70%{box-shadow:0 0 0 8px rgba(var(--ion-color-primary-rgb),0)}to{box-shadow:0 0 rgba(var(--ion-color-primary-rgb),0)}}.step-progress .step-indicator .step-circle.active{animation:stepPulse 1.5s ease-out infinite}@media(max-width:768px){.membership-section .options-grid{grid-template-columns:1fr}.dao-header .step-progress .step-indicator .step-circle{width:28px;height:28px;font-size:12px}.dao-header .step-progress .step-indicator .step-line{width:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}@keyframes fadeIn{0%,to{opacity:1;transform:translateY(0)}}@keyframes stepFadeIn{0%,to{opacity:1;transform:translateY(0)}}@keyframes stepPulse{0%,to{box-shadow:none}}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i1$1.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { kind: "component", type: i1$1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1$1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1$1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1$1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1$1.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1$1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: ConnectionMethodStepComponent, selector: "hsuite-connection-method-step", inputs: ["methods", "isMobile", "selectedMethod"], outputs: ["methodSelected"] }, { kind: "component", type: QrPairingStepComponent, selector: "hsuite-qr-pairing-step", inputs: ["offerData", "appName", "isLoading", "isWaitingForWallet", "isWaitingForApproval", "errorMessage", "expirySeconds"], outputs: ["expired", "connected", "cancelled", "refreshRequested"] }] });
9873
9927
  }
9874
9928
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WalletConnectionModalComponent, decorators: [{
9875
9929
  type: Component,
9876
- args: [{ selector: 'hsuite-wallet-connection-modal', standalone: true, imports: [CommonModule, IonicModule, ConnectionMethodStepComponent, QrPairingStepComponent], template: "<ion-content>\n <div class=\"modal-inner-content wallet-connection-modal\">\n <div class=\"header\">\n <div class=\"title\">\n <ion-button\n *ngIf=\"currentStep() > 1 && currentStep() !== ConnectionStep.ConnectionProgress\"\n (click)=\"back()\"\n fill=\"clear\"\n class=\"back-btn\"\n >\n <ion-icon slot=\"icon-only\" name=\"arrow-back-outline\"></ion-icon>\n </ion-button>\n <p>{{ stepTitle() }}</p>\n </div>\n <ion-button class=\"close-modal\" (click)=\"dismiss()\" fill=\"clear\" [disabled]=\"isConnecting()\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </div>\n\n <!-- Dynamic Step Progress Indicator -->\n <div class=\"dao-header\">\n <div class=\"step-progress\">\n <!-- Dynamic steps based on selected protocol path -->\n <ng-container *ngFor=\"let label of stepConfig().labels; let i = index\">\n <div class=\"step-indicator\">\n <div\n class=\"step-circle\"\n [class.active]=\"displayStep() === i + 1\"\n [class.completed]=\"displayStep() > i + 1\"\n [attr.title]=\"label\"\n >\n <ion-icon *ngIf=\"displayStep() > i + 1\" name=\"checkmark\"></ion-icon>\n <span *ngIf=\"displayStep() <= i + 1\">{{ i + 1 }}</span>\n </div>\n <!-- Step line between circles (not after the last one) -->\n <div\n class=\"step-line\"\n *ngIf=\"i < stepConfig().labels.length - 1\"\n [class.active]=\"displayStep() > i + 1\"\n ></div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"form\">\n <!-- Step 1: Network Selection (Direct Selection - click advances to next step) -->\n <div *ngIf=\"currentStep() === ConnectionStep.NetworkSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Choose Network</h3>\n <p>Select the network you want to connect to.</p>\n </div>\n\n <div class=\"options-grid direct-select\">\n <ion-card\n *ngFor=\"let network of networkOptions\"\n (click)=\"selectNetworkAndProceed(network.id)\"\n [class.selected]=\"selectedNetwork() === network.id\"\n button\n >\n <ion-card-content>\n <div class=\"option-icon\">\n <ion-icon [name]=\"network.icon\"></ion-icon>\n </div>\n <h3>{{ network.name }}</h3>\n <p>{{ network.description }}</p>\n <ion-badge *ngIf=\"network.recommended\" color=\"success\">Recommended</ion-badge>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 2: Protocol Selection (Direct Selection - click advances to next step) -->\n <div *ngIf=\"currentStep() === ConnectionStep.ProtocolSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Connection Protocol</h3>\n <p>Choose how you want to connect your wallet.</p>\n </div>\n\n <div class=\"options-list direct-select\">\n <ion-card\n *ngFor=\"let protocol of protocolOptions()\"\n (click)=\"selectProtocolAndProceed(protocol.id)\"\n [class.selected]=\"selectedProtocol() === protocol.id\"\n button\n >\n <ion-card-content>\n <div class=\"protocol-header\">\n <div class=\"option-icon\">\n <ion-icon [name]=\"protocol.icon\"></ion-icon>\n </div>\n <div class=\"protocol-info\">\n <h3>{{ protocol.name }}</h3>\n <p>{{ protocol.description }}</p>\n </div>\n </div>\n\n <ul class=\"feature-list\">\n <li *ngFor=\"let feature of protocol.features\">\n <ion-icon name=\"checkmark-circle\" color=\"success\"></ion-icon>\n <span>{{ feature }}</span>\n </li>\n </ul>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 3: Connection Method Selection (HSuite Native only) -->\n <div *ngIf=\"currentStep() === ConnectionStep.ConnectionMethodSelection\" class=\"step-content\">\n <hsuite-connection-method-step\n [methods]=\"connectionMethodOptions()\"\n [isMobile]=\"isMobile()\"\n [selectedMethod]=\"selectedConnectionMethod()\"\n (methodSelected)=\"onConnectionMethodSelected($event)\"\n ></hsuite-connection-method-step>\n </div>\n\n <!-- Step 3 (WalletConnect path): Ledger Selection (Direct Selection - click initiates connection) -->\n <div *ngIf=\"currentStep() === ConnectionStep.LedgerSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Choose Blockchain</h3>\n <p>Select the blockchain ledger to connect with.</p>\n </div>\n\n <div class=\"options-grid direct-select\">\n <ion-card\n *ngFor=\"let ledger of ledgerOptions\"\n (click)=\"selectLedgerAndConnect(ledger.id)\"\n [class.selected]=\"selectedLedger() === ledger.id\"\n button\n >\n <ion-card-content>\n <div class=\"option-icon\">\n <ion-icon [name]=\"ledger.icon\"></ion-icon>\n </div>\n <h3>{{ ledger.name }}</h3>\n <p>{{ ledger.description }}</p>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 5: QR Pairing (Mobile P2P - Nostr-first, single QR) -->\n <div *ngIf=\"currentStep() === ConnectionStep.QrPairing\" class=\"step-content\">\n <hsuite-qr-pairing-step\n [offerData]=\"pairingOffer()\"\n [appName]=\"appName\"\n [isLoading]=\"isGeneratingOffer()\"\n [isWaitingForWallet]=\"isWaitingForWallet()\"\n [isWaitingForApproval]=\"isWaitingForApproval()\"\n [errorMessage]=\"connectionError()\"\n (expired)=\"onQrExpired()\"\n (refreshRequested)=\"onQrRefresh()\"\n (cancelled)=\"back()\"\n ></hsuite-qr-pairing-step>\n </div>\n\n <!-- Step 6: Connection Progress -->\n <div *ngIf=\"currentStep() === ConnectionStep.ConnectionProgress\" class=\"step-content\">\n <div class=\"membership-section connection-progress\">\n <div *ngIf=\"isConnecting()\" class=\"status-info\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n <h3>Connecting...</h3>\n <p *ngIf=\"selectedProtocol() === 'walletconnect'\">\n Please approve the connection in your wallet app or scan the QR code.\n </p>\n <p *ngIf=\"selectedProtocol() === 'hsuite-native'\">Opening HSuite Wallet...</p>\n </div>\n\n <div *ngIf=\"connectionError()\" class=\"membership-section\">\n <div class=\"error-section\">\n <ion-item lines=\"none\">\n <ion-icon slot=\"start\" name=\"alert-circle-outline\" color=\"danger\"></ion-icon>\n <ion-label>\n <h3>Connection Failed</h3>\n <p>{{ connectionError() }}</p>\n </ion-label>\n </ion-item>\n </div>\n <ion-button expand=\"block\" fill=\"outline\" (click)=\"back()\" class=\"ion-margin-top\">\n Try Again\n </ion-button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer removed: All steps now use direct selection (click to proceed) -->\n </div>\n</ion-content>\n", styles: [":host{display:flex;align-items:center;justify-content:center;height:100%;width:100%}ion-content{--background: transparent;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0;height:100vh;width:100%;display:flex!important;align-items:center!important;justify-content:center!important}ion-content::part(scroll){display:flex;align-items:center;justify-content:center;min-height:100%;width:100%}.modal-inner-content{width:90%;max-width:600px;max-height:80vh;background:var(--glass-background, rgba(var(--ion-color-dark-rgb), .95));border-radius:var(--border-radius-xl, 16px);padding:0;display:flex;flex-direction:column;box-shadow:var(--shadow-2xl);border:1px solid var(--border-flat, rgba(var(--ion-color-light-rgb), .1));overflow:hidden;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg, 16px) var(--space-xl, 20px);background:transparent;flex-shrink:0}.header .title{display:flex;align-items:center;gap:var(--space-sm, 8px);flex:1}.header .title p{margin:0;font-size:var(--font-size-2xl, 24px);font-weight:var(--font-weight-bold, 700);color:var(--ion-text-color);line-height:1.2}.header .back-btn{--padding-start: 8px;--padding-end: 8px;margin:0}.header .back-btn ion-icon{font-size:22px;color:var(--ion-color-primary)}.header .close-modal{--padding-start: 8px;--padding-end: 8px;margin:0;cursor:pointer}.header .close-modal ion-icon{font-size:24px;color:var(--ion-text-color)}.header .close-modal:hover:not(:disabled){transform:scale(1.05)}.header .close-modal:active:not(:disabled){transform:scale(.95)}.form{flex:1;overflow-y:auto;padding:0 var(--space-xl, 20px) var(--space-xl, 20px) var(--space-xl, 20px);background:transparent}.form::-webkit-scrollbar{width:8px}.form::-webkit-scrollbar-track{background:var(--surface-flat, rgba(var(--ion-color-light-rgb), .05));border-radius:4px}.form::-webkit-scrollbar-thumb{background:rgba(var(--ion-color-light-rgb),.2);border-radius:4px}.form::-webkit-scrollbar-thumb:hover{background:rgba(var(--ion-color-light-rgb),.3)}@media(min-width:768px){.modal-inner-content{width:80%;max-width:700px;border-radius:20px}.header{padding:20px 24px}.dao-header{margin:0 24px 24px}.form{padding:0 24px 24px}}@media(max-width:480px){.modal-inner-content{width:95%;max-height:85vh}.header{padding:14px 16px}.dao-header{margin:0 16px 20px}.form{padding:0 16px 16px}}.dao-header{margin:0 var(--space-xl, 20px) var(--token-space-6, 24px) var(--space-xl, 20px);padding:var(--token-space-4, 16px);background:var(--token-surface-2, var(--surface-flat, rgba(var(--ion-color-light-rgb), .05)));border:var(--token-border-width-1, 1px) solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);box-shadow:var(--token-elevation-1, var(--shadow-sm));flex-shrink:0;animation:fadeIn var(--token-transition-slow, .3s) ease}.dao-header .step-progress{display:flex;align-items:center;justify-content:center}.dao-header .step-progress .step-indicator{display:flex;align-items:center}.dao-header .step-progress .step-indicator .step-circle{width:36px;height:36px;border-radius:var(--token-radius-full, 50%);display:flex;align-items:center;justify-content:center;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .1));color:var(--ion-text-color);font-weight:var(--token-font-weight-semibold, 600);font-size:var(--token-font-size-2, 14px);border:var(--token-border-width-1, 1px) solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .2)));transition:all var(--token-transition-slow, .3s) var(--token-ease-in-out, cubic-bezier(.4, 0, .2, 1))}.dao-header .step-progress .step-indicator .step-circle.active{background:var(--ion-color-primary);color:var(--ion-color-primary-contrast);border-color:var(--ion-color-primary);transform:scale(1.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.2)}.dao-header .step-progress .step-indicator .step-circle.completed{background:var(--ion-color-success);color:var(--ion-color-success-contrast);border-color:var(--ion-color-success);transform:scale(1.05)}.dao-header .step-progress .step-indicator .step-circle:hover:not(.active):not(.completed){transform:scale(1.05);background:rgba(var(--ion-color-light-rgb),.15)}.dao-header .step-progress .step-indicator .step-circle ion-icon{font-size:20px}.dao-header .step-progress .step-indicator .step-line{width:40px;height:var(--token-border-width-2, 2px);background:var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .2)));margin:0 var(--token-space-2, 8px);transition:all var(--token-transition-slow, .3s) ease}.dao-header .step-progress .step-indicator .step-line.active{background:var(--ion-color-success);box-shadow:0 0 8px rgba(var(--ion-color-success-rgb),.5)}.membership-section{margin-bottom:var(--token-space-6, 24px);animation:fadeIn var(--token-transition-slow, .3s) ease}.membership-section .explanation{margin-bottom:var(--token-space-4, 16px)}.membership-section .explanation h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);color:var(--ion-text-color);line-height:var(--token-line-height-tight, 1.3);margin:0 0 var(--token-space-2, 8px) 0}.membership-section .explanation p{font-size:var(--token-font-size-2, 14px);color:var(--ion-color-medium);line-height:var(--token-line-height-normal, 1.4);margin:0}.membership-section .options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--token-space-3, 12px)}.membership-section .options-grid ion-card{margin:0;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .05));border:1px solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);transition:all var(--token-transition-normal, .2s) ease;cursor:pointer;box-shadow:var(--token-elevation-1, var(--shadow-sm))}.membership-section .options-grid ion-card:hover{transform:translateY(-2px);background:var(--token-surface-hover, rgba(var(--ion-color-light-rgb), .08));border-color:var(--border-flat, rgba(var(--ion-color-light-rgb), .2));box-shadow:var(--token-elevation-2, var(--shadow-md))}.membership-section .options-grid ion-card:active{transform:translateY(0)}.membership-section .options-grid ion-card.selected{border:2px solid var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.1)}.membership-section .options-grid ion-card ion-card-content{text-align:center;padding:var(--token-space-5, 20px)}.membership-section .options-grid ion-card ion-card-content .option-icon{margin-bottom:var(--token-space-3, 12px)}.membership-section .options-grid ion-card ion-card-content .option-icon ion-icon{font-size:40px;color:var(--ion-color-primary);transition:transform var(--token-transition-fast, .15s) ease}.membership-section .options-grid ion-card ion-card-content h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-2, 6px) 0;color:var(--ion-text-color)}.membership-section .options-grid ion-card ion-card-content p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0 0 var(--token-space-2, 8px) 0;line-height:var(--token-line-height-tight, 1.3)}.membership-section .options-grid ion-card:hover .option-icon ion-icon{transform:scale(1.1) rotate(5deg)}.membership-section .options-list{display:flex;flex-direction:column;gap:var(--token-space-3, 12px)}.membership-section .options-list ion-card{margin:0;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .05));border:1px solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);transition:all var(--token-transition-normal, .2s) ease;cursor:pointer;box-shadow:var(--token-elevation-1, var(--shadow-sm))}.membership-section .options-list ion-card:hover{transform:translate(4px);background:var(--token-surface-hover, rgba(var(--ion-color-light-rgb), .08));border-color:var(--border-flat, rgba(var(--ion-color-light-rgb), .2));box-shadow:var(--token-elevation-2, var(--shadow-md))}.membership-section .options-list ion-card:active{transform:translate(2px)}.membership-section .options-list ion-card.selected{border:2px solid var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.1)}.membership-section .options-list ion-card ion-card-content{padding:var(--token-space-4, 16px)}.membership-section .options-list ion-card ion-card-content .protocol-header{display:flex;align-items:center;gap:var(--token-space-3, 12px);margin-bottom:var(--token-space-3, 12px)}.membership-section .options-list ion-card ion-card-content .protocol-header .option-icon ion-icon{font-size:36px;color:var(--ion-color-primary);transition:transform var(--token-transition-fast, .15s) ease}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info{flex:1;min-width:0}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-1, 4px) 0;color:var(--ion-text-color)}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0;line-height:var(--token-line-height-tight, 1.3)}.membership-section .options-list ion-card ion-card-content .feature-list{list-style:none;padding:0;margin:0}.membership-section .options-list ion-card ion-card-content .feature-list li{display:flex;align-items:center;gap:var(--token-space-2, 8px);padding:var(--token-space-1, 4px) 0;font-size:var(--token-font-size-1, 13px);color:var(--ion-text-color);line-height:var(--token-line-height-normal, 1.4)}.membership-section .options-list ion-card ion-card-content .feature-list li ion-icon{font-size:var(--token-space-4, 16px);flex-shrink:0;color:var(--ion-color-success)}.membership-section .options-list ion-card:hover .protocol-header .option-icon ion-icon{transform:scale(1.1) rotate(5deg)}.membership-section.connection-progress{display:flex;justify-content:center;align-items:center;min-height:200px}.membership-section.connection-progress .status-info{text-align:center;padding:var(--token-space-6, 24px)}.membership-section.connection-progress .status-info ion-spinner{font-size:48px;margin-bottom:var(--token-space-4, 16px);color:var(--ion-color-primary)}.membership-section.connection-progress .status-info h3{font-size:var(--token-font-size-4, 18px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-2, 8px) 0;color:var(--ion-text-color)}.membership-section.connection-progress .status-info p{font-size:var(--token-font-size-2, 14px);color:var(--ion-color-medium);margin:0;max-width:300px;line-height:var(--token-line-height-normal, 1.4)}.membership-section .error-section{padding:var(--token-space-3, 12px);background:rgba(var(--ion-color-danger-rgb),.1);border:1px solid rgba(var(--ion-color-danger-rgb),.2);border-radius:var(--token-radius-2, 8px)}.membership-section .error-section ion-item{--background: transparent;--padding-start: 0;--inner-padding-end: 0}.membership-section .error-section ion-item ion-icon{font-size:var(--token-space-6, 24px)}.membership-section .error-section ion-item ion-label h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);color:var(--ion-color-danger);margin:0 0 var(--token-space-1, 4px) 0}.membership-section .error-section ion-item ion-label p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0;line-height:var(--token-line-height-tight, 1.3)}.step-content{animation:stepFadeIn var(--token-transition-normal, .25s) var(--token-ease-out, cubic-bezier(0, 0, .2, 1))}.direct-select ion-card{position:relative;overflow:hidden}.direct-select ion-card:after{content:\"\";position:absolute;right:12px;top:50%;transform:translateY(-50%) translate(0);width:0;height:0;border-left:6px solid var(--ion-color-primary);border-top:5px solid transparent;border-bottom:5px solid transparent;opacity:0;transition:all var(--token-transition-fast, .15s) ease}.direct-select ion-card:hover:after{opacity:.6;transform:translateY(-50%) translate(4px)}.direct-select ion-card:hover{border-color:rgba(var(--ion-color-primary-rgb),.4)}.direct-select ion-card:hover .option-icon ion-icon{color:var(--ion-color-primary)}.direct-select ion-card:active{transform:scale(.98);background:rgba(var(--ion-color-primary-rgb),.15)!important}.direct-select.options-grid ion-card:after{right:8px;top:16px;transform:translateY(0) translate(0)}.direct-select.options-grid ion-card:hover:after{transform:translateY(0) translate(4px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes stepFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes stepPulse{0%{box-shadow:0 0 rgba(var(--ion-color-primary-rgb),.4)}70%{box-shadow:0 0 0 8px rgba(var(--ion-color-primary-rgb),0)}to{box-shadow:0 0 rgba(var(--ion-color-primary-rgb),0)}}.step-progress .step-indicator .step-circle.active{animation:stepPulse 1.5s ease-out infinite}@media(max-width:768px){.membership-section .options-grid{grid-template-columns:1fr}.dao-header .step-progress .step-indicator .step-circle{width:28px;height:28px;font-size:12px}.dao-header .step-progress .step-indicator .step-line{width:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}@keyframes fadeIn{0%,to{opacity:1;transform:translateY(0)}}@keyframes stepFadeIn{0%,to{opacity:1;transform:translateY(0)}}@keyframes stepPulse{0%,to{box-shadow:none}}}\n"] }]
9930
+ args: [{ selector: 'hsuite-wallet-connection-modal', standalone: true, imports: [CommonModule, IonicModule, ConnectionMethodStepComponent, QrPairingStepComponent], template: "<ion-content>\n <div class=\"modal-inner-content wallet-connection-modal\">\n <div class=\"header\">\n <div class=\"title\">\n <ion-button *ngIf=\"canGoBack()\" (click)=\"back()\" fill=\"clear\" class=\"back-btn\">\n <ion-icon slot=\"icon-only\" name=\"arrow-back-outline\"></ion-icon>\n </ion-button>\n <p>{{ stepTitle() }}</p>\n </div>\n <ion-button class=\"close-modal\" (click)=\"dismiss()\" fill=\"clear\" [disabled]=\"isConnecting()\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </div>\n\n <!-- Dynamic Step Progress Indicator -->\n <div class=\"dao-header\">\n <div class=\"step-progress\">\n <!-- Dynamic steps based on selected protocol path -->\n <ng-container *ngFor=\"let label of stepConfig().labels; let i = index\">\n <div class=\"step-indicator\">\n <div\n class=\"step-circle\"\n [class.active]=\"displayStep() === i + 1\"\n [class.completed]=\"displayStep() > i + 1\"\n [attr.title]=\"label\"\n >\n <ion-icon *ngIf=\"displayStep() > i + 1\" name=\"checkmark\"></ion-icon>\n <span *ngIf=\"displayStep() <= i + 1\">{{ i + 1 }}</span>\n </div>\n <!-- Step line between circles (not after the last one) -->\n <div\n class=\"step-line\"\n *ngIf=\"i < stepConfig().labels.length - 1\"\n [class.active]=\"displayStep() > i + 1\"\n ></div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"form\">\n <!-- Step 1: Network Selection (Direct Selection - click advances to next step) -->\n <div *ngIf=\"currentStep() === ConnectionStep.NetworkSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Choose Network</h3>\n <p>Select the network you want to connect to.</p>\n </div>\n\n <div class=\"options-grid direct-select\">\n <ion-card\n *ngFor=\"let network of networkOptions\"\n (click)=\"selectNetworkAndProceed(network.id)\"\n [class.selected]=\"selectedNetwork() === network.id\"\n button\n >\n <ion-card-content>\n <div class=\"option-icon\">\n <ion-icon [name]=\"network.icon\"></ion-icon>\n </div>\n <h3>{{ network.name }}</h3>\n <p>{{ network.description }}</p>\n <ion-badge *ngIf=\"network.recommended\" color=\"success\">Recommended</ion-badge>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 2: Protocol Selection (Direct Selection - click advances to next step) -->\n <div *ngIf=\"currentStep() === ConnectionStep.ProtocolSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Connection Protocol</h3>\n <p>Choose how you want to connect your wallet.</p>\n </div>\n\n <div class=\"options-list direct-select\">\n <ion-card\n *ngFor=\"let protocol of protocolOptions()\"\n (click)=\"selectProtocolAndProceed(protocol.id)\"\n [class.selected]=\"selectedProtocol() === protocol.id\"\n button\n >\n <ion-card-content>\n <div class=\"protocol-header\">\n <div class=\"option-icon\">\n <ion-icon [name]=\"protocol.icon\"></ion-icon>\n </div>\n <div class=\"protocol-info\">\n <h3>{{ protocol.name }}</h3>\n <p>{{ protocol.description }}</p>\n </div>\n </div>\n\n <ul class=\"feature-list\">\n <li *ngFor=\"let feature of protocol.features\">\n <ion-icon name=\"checkmark-circle\" color=\"success\"></ion-icon>\n <span>{{ feature }}</span>\n </li>\n </ul>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 3: Connection Method Selection (HSuite Native only) -->\n <div *ngIf=\"currentStep() === ConnectionStep.ConnectionMethodSelection\" class=\"step-content\">\n <hsuite-connection-method-step\n [methods]=\"connectionMethodOptions()\"\n [isMobile]=\"isMobile()\"\n [selectedMethod]=\"selectedConnectionMethod()\"\n (methodSelected)=\"onConnectionMethodSelected($event)\"\n ></hsuite-connection-method-step>\n </div>\n\n <!-- Step 3 (WalletConnect path): Ledger Selection (Direct Selection - click initiates connection) -->\n <div *ngIf=\"currentStep() === ConnectionStep.LedgerSelection\" class=\"step-content\">\n <div class=\"membership-section\">\n <div class=\"explanation\">\n <h3>Choose Blockchain</h3>\n <p>Select the blockchain ledger to connect with.</p>\n </div>\n\n <div class=\"options-grid direct-select\">\n <ion-card\n *ngFor=\"let ledger of ledgerOptions\"\n (click)=\"selectLedgerAndConnect(ledger.id)\"\n [class.selected]=\"selectedLedger() === ledger.id\"\n button\n >\n <ion-card-content>\n <div class=\"option-icon\">\n <ion-icon [name]=\"ledger.icon\"></ion-icon>\n </div>\n <h3>{{ ledger.name }}</h3>\n <p>{{ ledger.description }}</p>\n </ion-card-content>\n </ion-card>\n </div>\n </div>\n </div>\n\n <!-- Step 5: QR Pairing (Mobile P2P - Nostr-first, single QR) -->\n <div *ngIf=\"currentStep() === ConnectionStep.QrPairing\" class=\"step-content\">\n <hsuite-qr-pairing-step\n [offerData]=\"pairingOffer()\"\n [appName]=\"appName\"\n [isLoading]=\"isGeneratingOffer()\"\n [isWaitingForWallet]=\"isWaitingForWallet()\"\n [isWaitingForApproval]=\"isWaitingForApproval()\"\n [errorMessage]=\"connectionError()\"\n (expired)=\"onQrExpired()\"\n (refreshRequested)=\"onQrRefresh()\"\n (cancelled)=\"back()\"\n ></hsuite-qr-pairing-step>\n </div>\n\n <!-- Step 6: Connection Progress -->\n <div *ngIf=\"currentStep() === ConnectionStep.ConnectionProgress\" class=\"step-content\">\n <div class=\"membership-section connection-progress\">\n <div *ngIf=\"isConnecting()\" class=\"status-info\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n <h3>Connecting...</h3>\n <p *ngIf=\"selectedProtocol() === 'walletconnect'\">\n Please approve the connection in your wallet app or scan the QR code.\n </p>\n <p *ngIf=\"selectedProtocol() === 'hsuite-native'\">Opening HSuite Wallet...</p>\n </div>\n\n <div *ngIf=\"connectionError()\" class=\"membership-section\">\n <div class=\"error-section\">\n <ion-item lines=\"none\">\n <ion-icon slot=\"start\" name=\"alert-circle-outline\" color=\"danger\"></ion-icon>\n <ion-label>\n <h3>Connection Failed</h3>\n <p>{{ connectionError() }}</p>\n </ion-label>\n </ion-item>\n </div>\n <ion-button expand=\"block\" fill=\"outline\" (click)=\"back()\" class=\"ion-margin-top\">\n Try Again\n </ion-button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer removed: All steps now use direct selection (click to proceed) -->\n </div>\n</ion-content>\n", styles: [":host{display:flex;align-items:center;justify-content:center;height:100%;width:100%}ion-content{--background: transparent;--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0;height:100vh;width:100%;display:flex!important;align-items:center!important;justify-content:center!important}ion-content::part(scroll){display:flex;align-items:center;justify-content:center;min-height:100%;width:100%}.modal-inner-content{width:90%;max-width:600px;max-height:80vh;background:var(--glass-background, rgba(var(--ion-color-dark-rgb), .95));border-radius:var(--border-radius-xl, 16px);padding:0;display:flex;flex-direction:column;box-shadow:var(--shadow-2xl);border:1px solid var(--border-flat, rgba(var(--ion-color-light-rgb), .1));overflow:hidden;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg, 16px) var(--space-xl, 20px);background:transparent;flex-shrink:0}.header .title{display:flex;align-items:center;gap:var(--space-sm, 8px);flex:1}.header .title p{margin:0;font-size:var(--font-size-2xl, 24px);font-weight:var(--font-weight-bold, 700);color:var(--ion-text-color);line-height:1.2}.header .back-btn{--padding-start: 8px;--padding-end: 8px;margin:0}.header .back-btn ion-icon{font-size:22px;color:var(--ion-color-primary)}.header .close-modal{--padding-start: 8px;--padding-end: 8px;margin:0;cursor:pointer}.header .close-modal ion-icon{font-size:24px;color:var(--ion-text-color)}.header .close-modal:hover:not(:disabled){transform:scale(1.05)}.header .close-modal:active:not(:disabled){transform:scale(.95)}.form{flex:1;overflow-y:auto;padding:0 var(--space-xl, 20px) var(--space-xl, 20px) var(--space-xl, 20px);background:transparent}.form::-webkit-scrollbar{width:8px}.form::-webkit-scrollbar-track{background:var(--surface-flat, rgba(var(--ion-color-light-rgb), .05));border-radius:4px}.form::-webkit-scrollbar-thumb{background:rgba(var(--ion-color-light-rgb),.2);border-radius:4px}.form::-webkit-scrollbar-thumb:hover{background:rgba(var(--ion-color-light-rgb),.3)}@media(min-width:768px){.modal-inner-content{width:80%;max-width:700px;border-radius:20px}.header{padding:20px 24px}.dao-header{margin:0 24px 24px}.form{padding:0 24px 24px}}@media(max-width:480px){.modal-inner-content{width:95%;max-height:85vh}.header{padding:14px 16px}.dao-header{margin:0 16px 20px}.form{padding:0 16px 16px}}.dao-header{margin:0 var(--space-xl, 20px) var(--token-space-6, 24px) var(--space-xl, 20px);padding:var(--token-space-4, 16px);background:var(--token-surface-2, var(--surface-flat, rgba(var(--ion-color-light-rgb), .05)));border:var(--token-border-width-1, 1px) solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);box-shadow:var(--token-elevation-1, var(--shadow-sm));flex-shrink:0;animation:fadeIn var(--token-transition-slow, .3s) ease}.dao-header .step-progress{display:flex;align-items:center;justify-content:center}.dao-header .step-progress .step-indicator{display:flex;align-items:center}.dao-header .step-progress .step-indicator .step-circle{width:36px;height:36px;border-radius:var(--token-radius-full, 50%);display:flex;align-items:center;justify-content:center;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .1));color:var(--ion-text-color);font-weight:var(--token-font-weight-semibold, 600);font-size:var(--token-font-size-2, 14px);border:var(--token-border-width-1, 1px) solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .2)));transition:all var(--token-transition-slow, .3s) var(--token-ease-in-out, cubic-bezier(.4, 0, .2, 1))}.dao-header .step-progress .step-indicator .step-circle.active{background:var(--ion-color-primary);color:var(--ion-color-primary-contrast);border-color:var(--ion-color-primary);transform:scale(1.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.2)}.dao-header .step-progress .step-indicator .step-circle.completed{background:var(--ion-color-success);color:var(--ion-color-success-contrast);border-color:var(--ion-color-success);transform:scale(1.05)}.dao-header .step-progress .step-indicator .step-circle:hover:not(.active):not(.completed){transform:scale(1.05);background:rgba(var(--ion-color-light-rgb),.15)}.dao-header .step-progress .step-indicator .step-circle ion-icon{font-size:20px}.dao-header .step-progress .step-indicator .step-line{width:40px;height:var(--token-border-width-2, 2px);background:var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .2)));margin:0 var(--token-space-2, 8px);transition:all var(--token-transition-slow, .3s) ease}.dao-header .step-progress .step-indicator .step-line.active{background:var(--ion-color-success);box-shadow:0 0 8px rgba(var(--ion-color-success-rgb),.5)}.membership-section{margin-bottom:var(--token-space-6, 24px);animation:fadeIn var(--token-transition-slow, .3s) ease}.membership-section .explanation{margin-bottom:var(--token-space-4, 16px)}.membership-section .explanation h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);color:var(--ion-text-color);line-height:var(--token-line-height-tight, 1.3);margin:0 0 var(--token-space-2, 8px) 0}.membership-section .explanation p{font-size:var(--token-font-size-2, 14px);color:var(--ion-color-medium);line-height:var(--token-line-height-normal, 1.4);margin:0}.membership-section .options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--token-space-3, 12px)}.membership-section .options-grid ion-card{margin:0;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .05));border:1px solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);transition:all var(--token-transition-normal, .2s) ease;cursor:pointer;box-shadow:var(--token-elevation-1, var(--shadow-sm))}.membership-section .options-grid ion-card:hover{transform:translateY(-2px);background:var(--token-surface-hover, rgba(var(--ion-color-light-rgb), .08));border-color:var(--border-flat, rgba(var(--ion-color-light-rgb), .2));box-shadow:var(--token-elevation-2, var(--shadow-md))}.membership-section .options-grid ion-card:active{transform:translateY(0)}.membership-section .options-grid ion-card.selected{border:2px solid var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.1)}.membership-section .options-grid ion-card ion-card-content{text-align:center;padding:var(--token-space-5, 20px)}.membership-section .options-grid ion-card ion-card-content .option-icon{margin-bottom:var(--token-space-3, 12px)}.membership-section .options-grid ion-card ion-card-content .option-icon ion-icon{font-size:40px;color:var(--ion-color-primary);transition:transform var(--token-transition-fast, .15s) ease}.membership-section .options-grid ion-card ion-card-content h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-2, 6px) 0;color:var(--ion-text-color)}.membership-section .options-grid ion-card ion-card-content p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0 0 var(--token-space-2, 8px) 0;line-height:var(--token-line-height-tight, 1.3)}.membership-section .options-grid ion-card:hover .option-icon ion-icon{transform:scale(1.1) rotate(5deg)}.membership-section .options-list{display:flex;flex-direction:column;gap:var(--token-space-3, 12px)}.membership-section .options-list ion-card{margin:0;background:var(--token-surface-3, rgba(var(--ion-color-light-rgb), .05));border:1px solid var(--border-flat, var(--token-border-subtle, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--token-radius-3, 12px);transition:all var(--token-transition-normal, .2s) ease;cursor:pointer;box-shadow:var(--token-elevation-1, var(--shadow-sm))}.membership-section .options-list ion-card:hover{transform:translate(4px);background:var(--token-surface-hover, rgba(var(--ion-color-light-rgb), .08));border-color:var(--border-flat, rgba(var(--ion-color-light-rgb), .2));box-shadow:var(--token-elevation-2, var(--shadow-md))}.membership-section .options-list ion-card:active{transform:translate(2px)}.membership-section .options-list ion-card.selected{border:2px solid var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.1);box-shadow:0 0 0 4px rgba(var(--ion-color-primary-rgb),.1)}.membership-section .options-list ion-card ion-card-content{padding:var(--token-space-4, 16px)}.membership-section .options-list ion-card ion-card-content .protocol-header{display:flex;align-items:center;gap:var(--token-space-3, 12px);margin-bottom:var(--token-space-3, 12px)}.membership-section .options-list ion-card ion-card-content .protocol-header .option-icon ion-icon{font-size:36px;color:var(--ion-color-primary);transition:transform var(--token-transition-fast, .15s) ease}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info{flex:1;min-width:0}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-1, 4px) 0;color:var(--ion-text-color)}.membership-section .options-list ion-card ion-card-content .protocol-header .protocol-info p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0;line-height:var(--token-line-height-tight, 1.3)}.membership-section .options-list ion-card ion-card-content .feature-list{list-style:none;padding:0;margin:0}.membership-section .options-list ion-card ion-card-content .feature-list li{display:flex;align-items:center;gap:var(--token-space-2, 8px);padding:var(--token-space-1, 4px) 0;font-size:var(--token-font-size-1, 13px);color:var(--ion-text-color);line-height:var(--token-line-height-normal, 1.4)}.membership-section .options-list ion-card ion-card-content .feature-list li ion-icon{font-size:var(--token-space-4, 16px);flex-shrink:0;color:var(--ion-color-success)}.membership-section .options-list ion-card:hover .protocol-header .option-icon ion-icon{transform:scale(1.1) rotate(5deg)}.membership-section.connection-progress{display:flex;justify-content:center;align-items:center;min-height:200px}.membership-section.connection-progress .status-info{text-align:center;padding:var(--token-space-6, 24px)}.membership-section.connection-progress .status-info ion-spinner{font-size:48px;margin-bottom:var(--token-space-4, 16px);color:var(--ion-color-primary)}.membership-section.connection-progress .status-info h3{font-size:var(--token-font-size-4, 18px);font-weight:var(--token-font-weight-medium, 500);margin:0 0 var(--token-space-2, 8px) 0;color:var(--ion-text-color)}.membership-section.connection-progress .status-info p{font-size:var(--token-font-size-2, 14px);color:var(--ion-color-medium);margin:0;max-width:300px;line-height:var(--token-line-height-normal, 1.4)}.membership-section .error-section{padding:var(--token-space-3, 12px);background:rgba(var(--ion-color-danger-rgb),.1);border:1px solid rgba(var(--ion-color-danger-rgb),.2);border-radius:var(--token-radius-2, 8px)}.membership-section .error-section ion-item{--background: transparent;--padding-start: 0;--inner-padding-end: 0}.membership-section .error-section ion-item ion-icon{font-size:var(--token-space-6, 24px)}.membership-section .error-section ion-item ion-label h3{font-size:var(--token-font-size-3, 16px);font-weight:var(--token-font-weight-medium, 500);color:var(--ion-color-danger);margin:0 0 var(--token-space-1, 4px) 0}.membership-section .error-section ion-item ion-label p{font-size:var(--token-font-size-1, 13px);color:var(--ion-color-medium);margin:0;line-height:var(--token-line-height-tight, 1.3)}.step-content{animation:stepFadeIn var(--token-transition-normal, .25s) var(--token-ease-out, cubic-bezier(0, 0, .2, 1))}.direct-select ion-card{position:relative;overflow:hidden}.direct-select ion-card:after{content:\"\";position:absolute;right:12px;top:50%;transform:translateY(-50%) translate(0);width:0;height:0;border-left:6px solid var(--ion-color-primary);border-top:5px solid transparent;border-bottom:5px solid transparent;opacity:0;transition:all var(--token-transition-fast, .15s) ease}.direct-select ion-card:hover:after{opacity:.6;transform:translateY(-50%) translate(4px)}.direct-select ion-card:hover{border-color:rgba(var(--ion-color-primary-rgb),.4)}.direct-select ion-card:hover .option-icon ion-icon{color:var(--ion-color-primary)}.direct-select ion-card:active{transform:scale(.98);background:rgba(var(--ion-color-primary-rgb),.15)!important}.direct-select.options-grid ion-card:after{right:8px;top:16px;transform:translateY(0) translate(0)}.direct-select.options-grid ion-card:hover:after{transform:translateY(0) translate(4px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes stepFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes stepPulse{0%{box-shadow:0 0 rgba(var(--ion-color-primary-rgb),.4)}70%{box-shadow:0 0 0 8px rgba(var(--ion-color-primary-rgb),0)}to{box-shadow:0 0 rgba(var(--ion-color-primary-rgb),0)}}.step-progress .step-indicator .step-circle.active{animation:stepPulse 1.5s ease-out infinite}@media(max-width:768px){.membership-section .options-grid{grid-template-columns:1fr}.dao-header .step-progress .step-indicator .step-circle{width:28px;height:28px;font-size:12px}.dao-header .step-progress .step-indicator .step-line{width:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}@keyframes fadeIn{0%,to{opacity:1;transform:translateY(0)}}@keyframes stepFadeIn{0%,to{opacity:1;transform:translateY(0)}}@keyframes stepPulse{0%,to{box-shadow:none}}}\n"] }]
9877
9931
  }], ctorParameters: () => [{ type: i1$1.ModalController }, { type: UnifiedWalletService }], propDecorators: { projectId: [{
9878
9932
  type: Input
9933
+ }], network: [{
9934
+ type: Input
9879
9935
  }], appName: [{
9880
9936
  type: Input
9881
9937
  }], appDescription: [{
@@ -9932,6 +9988,12 @@ class WalletConnectButtonComponent {
9932
9988
  * Wallet URL for targeting the wallet window
9933
9989
  */
9934
9990
  walletUrl = DEFAULT_WALLET_URL;
9991
+ /**
9992
+ * Pins the connection network and hides the network-selection step in the
9993
+ * modal. When set to `'mainnet'` or `'testnet'`, the dApp decides the network
9994
+ * and the user never sees the picker. When omitted, the user chooses.
9995
+ */
9996
+ network;
9935
9997
  /**
9936
9998
  * Whether to show session information when connected
9937
9999
  * @default true
@@ -10012,6 +10074,7 @@ class WalletConnectButtonComponent {
10012
10074
  appName: this.appName,
10013
10075
  appDescription: this.appDescription,
10014
10076
  walletUrl: this.walletUrl,
10077
+ network: this.network,
10015
10078
  },
10016
10079
  });
10017
10080
  await modal.present();
@@ -10083,7 +10146,7 @@ class WalletConnectButtonComponent {
10083
10146
  return this.wallet.allAccounts();
10084
10147
  }
10085
10148
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WalletConnectButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10086
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: WalletConnectButtonComponent, isStandalone: true, selector: "wallet-connect-button", inputs: { walletConnectProjectId: "walletConnectProjectId", appName: "appName", appDescription: "appDescription", walletUrl: "walletUrl", showSessionInfo: "showSessionInfo", buttonColor: "buttonColor", size: "size", connectText: "connectText", connectedText: "connectedText", multiSessionMode: "multiSessionMode" }, outputs: { connected: "connected", disconnected: "disconnected", error: "error" }, providers: [ModalController], ngImport: i0, template: "<div class=\"wallet-connect-container\" [class]=\"'size-' + size\">\n <!-- Connect Button (Multi-Session Support) -->\n <ion-button\n [color]=\"buttonColor\"\n [size]=\"size\"\n [disabled]=\"isConnecting\"\n (click)=\"connect()\"\n class=\"wallet-button\">\n <ion-spinner *ngIf=\"isConnecting\" slot=\"start\" name=\"crescent\"></ion-spinner>\n <ion-icon *ngIf=\"!isConnecting\" [name]=\"getIconName()\" slot=\"start\"></ion-icon>\n {{ getButtonText() }}\n </ion-button>\n</div>\n\n", styles: [".wallet-connect-container{display:inline-block;width:100%}.wallet-button{--border-radius: var(--wallet-button-radius, var(--border-radius-lg, 12px));--padding-top: var(--wallet-button-padding-vertical, var(--space-md, 14px));--padding-bottom: var(--wallet-button-padding-vertical, var(--space-md, 14px));--padding-start: var(--wallet-button-padding-horizontal, var(--space-lg, 24px));--padding-end: var(--wallet-button-padding-horizontal, var(--space-lg, 24px));width:100%;font-weight:var(--wallet-button-font-weight, var(--font-weight-semibold, 600));font-size:var(--wallet-button-font-size, var(--font-size-md, 16px));text-transform:none;letter-spacing:var(--letter-spacing-wide, .5px);transition:var(--wallet-transition-normal, var(--transition-all, .2s ease));box-shadow:var(--wallet-button-shadow, var(--shadow-md))}.wallet-button:hover:not([disabled]){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.wallet-button:active:not([disabled]){transform:translateY(0)}.wallet-button ion-icon{font-size:1.25em;transition:transform var(--wallet-transition-fast, var(--transition-fade, .15s)) ease}.wallet-button:hover:not([disabled]) ion-icon{transform:scale(var(--button-hover-scale, 1.1))}.session-display{background:var(--wallet-session-bg, var(--surface-flat, rgba(var(--ion-color-light-rgb), .05)));border:var(--border-width-thin, 1px) solid var(--wallet-session-border, var(--border-flat, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--wallet-session-radius, var(--border-radius-lg, 12px));padding:var(--wallet-session-padding, var(--space-lg, 16px));display:flex;flex-direction:column;gap:var(--wallet-session-gap, var(--space-md, 12px));box-shadow:var(--wallet-session-shadow, var(--shadow-md));animation:slideIn var(--wallet-transition-slow, var(--duration-slow, .3s)) ease-out}.session-header{display:flex;align-items:center;justify-content:space-between;gap:var(--wallet-spacing-lg, var(--space-lg, 16px))}.session-info{display:flex;align-items:center;gap:var(--wallet-spacing-md, var(--space-md, 8px));flex:1;min-width:0}.session-icon{font-size:var(--wallet-session-icon-size, var(--font-size-2xl, 28px));color:var(--ion-color-primary);flex-shrink:0;transition:transform var(--wallet-transition-fast, var(--duration-fast, .15s)) ease}.session-display:hover .session-icon{transform:scale(1.05)}.session-details{display:flex;flex-direction:column;gap:var(--wallet-spacing-xs, var(--space-xs, 4px));min-width:0;flex:1}.session-details strong{font-size:var(--wallet-font-size-base, var(--font-size-sm, 14px));font-weight:var(--wallet-font-weight-semibold, var(--font-weight-semibold, 600));color:var(--wallet-session-text-primary, var(--ion-text-color));line-height:var(--wallet-line-height-normal, var(--line-height-normal, 1.4));display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-badges{display:flex;gap:var(--wallet-spacing-xs, var(--space-xs, 4px));flex-wrap:wrap}.network-badge{font-size:var(--wallet-badge-font-size, var(--font-size-xs, 10px));font-weight:var(--wallet-badge-font-weight, var(--font-weight-semibold, 600));padding:var(--wallet-badge-padding, var(--space-xs, 3px) var(--space-sm, 8px));border-radius:var(--wallet-badge-radius, var(--border-radius-sm, 6px));line-height:var(--line-height-tight, 1.2);transition:transform var(--wallet-transition-fast, var(--duration-fast, .15s)) ease}.session-display:hover .network-badge{transform:scale(1.05)}.disconnect-button{--border-radius: var(--wallet-spacing-sm, var(--border-radius-md, 8px));--padding-start: var(--wallet-spacing-sm, var(--space-sm, 8px));--padding-end: var(--wallet-spacing-sm, var(--space-sm, 8px));flex-shrink:0;transition:all var(--wallet-transition-fast, var(--transition-all, .15s ease))}.disconnect-button:hover:not([disabled]){transform:scale(1.05)}.disconnect-button:active:not([disabled]){transform:scale(var(--button-press-scale, .95))}.account-list{display:flex;flex-direction:column;gap:var(--wallet-spacing-sm, var(--space-sm, 4px));padding-top:var(--wallet-spacing-md, var(--space-md, 8px));border-top:var(--border-width-thin, 1px) solid var(--wallet-session-border, var(--border-flat, rgba(var(--ion-color-light-rgb), .1)))}.account-item{display:flex;align-items:center;justify-content:space-between;padding:var(--wallet-account-padding, var(--space-sm, 8px) var(--space-md, 12px));background:var(--wallet-account-bg, var(--surface-flat, rgba(var(--ion-color-primary-rgb), .05)));border-radius:var(--wallet-account-radius, var(--border-radius-md, 8px));transition:all var(--wallet-transition-normal, var(--transition-all, .2s ease))}.account-item:hover{background:var(--wallet-account-bg-hover, var(--surface-flat-hover, rgba(var(--ion-color-primary-rgb), .1)));transform:translate(2px)}.account-item .account-address{font-family:var(--wallet-account-font-family, var(--font-family-mono, monospace));font-size:var(--wallet-account-font-size, var(--font-size-sm, 14px));color:var(--wallet-session-text-primary, var(--ion-text-color));line-height:var(--wallet-line-height-normal, var(--line-height-normal, 1.4));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.size-small{--wallet-session-padding: var(--wallet-spacing-md, var(--space-md, 12px))}.size-small .wallet-button{--padding-top: var(--wallet-spacing-sm, var(--space-sm, 8px));--padding-bottom: var(--wallet-spacing-sm, var(--space-sm, 8px));--padding-start: var(--wallet-spacing-lg, var(--space-lg, 16px));--padding-end: var(--wallet-spacing-lg, var(--space-lg, 16px));font-size:var(--wallet-font-size-sm, var(--font-size-sm, 13px))}.size-small .session-icon{font-size:var(--font-size-xl, 24px)}.size-small .session-details strong{font-size:var(--wallet-font-size-sm, var(--font-size-sm, 13px))}.size-large{--wallet-session-padding: var(--wallet-spacing-xl, var(--space-xl, 20px))}.size-large .wallet-button{--padding-top: var(--wallet-spacing-lg, var(--space-lg, 18px));--padding-bottom: var(--wallet-spacing-lg, var(--space-lg, 18px));--padding-start: var(--wallet-spacing-2xl, var(--space-2xl, 32px));--padding-end: var(--wallet-spacing-2xl, var(--space-2xl, 32px));font-size:var(--wallet-font-size-lg, var(--font-size-lg, 18px))}.size-large .session-icon{font-size:var(--font-size-3xl, 32px)}.size-large .session-details strong{font-size:var(--wallet-font-size-lg, var(--font-size-lg, 18px))}@media(max-width:576px){.session-header{flex-wrap:wrap}.disconnect-button{width:100%}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.wallet-button[disabled]{animation:pulse 1.5s ease-in-out infinite}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}@keyframes slideIn{0%,to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] });
10149
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: WalletConnectButtonComponent, isStandalone: true, selector: "wallet-connect-button", inputs: { walletConnectProjectId: "walletConnectProjectId", appName: "appName", appDescription: "appDescription", walletUrl: "walletUrl", network: "network", showSessionInfo: "showSessionInfo", buttonColor: "buttonColor", size: "size", connectText: "connectText", connectedText: "connectedText", multiSessionMode: "multiSessionMode" }, outputs: { connected: "connected", disconnected: "disconnected", error: "error" }, providers: [ModalController], ngImport: i0, template: "<div class=\"wallet-connect-container\" [class]=\"'size-' + size\">\n <!-- Connect Button (Multi-Session Support) -->\n <ion-button\n [color]=\"buttonColor\"\n [size]=\"size\"\n [disabled]=\"isConnecting\"\n (click)=\"connect()\"\n class=\"wallet-button\">\n <ion-spinner *ngIf=\"isConnecting\" slot=\"start\" name=\"crescent\"></ion-spinner>\n <ion-icon *ngIf=\"!isConnecting\" [name]=\"getIconName()\" slot=\"start\"></ion-icon>\n {{ getButtonText() }}\n </ion-button>\n</div>\n\n", styles: [".wallet-connect-container{display:inline-block;width:100%}.wallet-button{--border-radius: var(--wallet-button-radius, var(--border-radius-lg, 12px));--padding-top: var(--wallet-button-padding-vertical, var(--space-md, 14px));--padding-bottom: var(--wallet-button-padding-vertical, var(--space-md, 14px));--padding-start: var(--wallet-button-padding-horizontal, var(--space-lg, 24px));--padding-end: var(--wallet-button-padding-horizontal, var(--space-lg, 24px));width:100%;font-weight:var(--wallet-button-font-weight, var(--font-weight-semibold, 600));font-size:var(--wallet-button-font-size, var(--font-size-md, 16px));text-transform:none;letter-spacing:var(--letter-spacing-wide, .5px);transition:var(--wallet-transition-normal, var(--transition-all, .2s ease));box-shadow:var(--wallet-button-shadow, var(--shadow-md))}.wallet-button:hover:not([disabled]){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.wallet-button:active:not([disabled]){transform:translateY(0)}.wallet-button ion-icon{font-size:1.25em;transition:transform var(--wallet-transition-fast, var(--transition-fade, .15s)) ease}.wallet-button:hover:not([disabled]) ion-icon{transform:scale(var(--button-hover-scale, 1.1))}.session-display{background:var(--wallet-session-bg, var(--surface-flat, rgba(var(--ion-color-light-rgb), .05)));border:var(--border-width-thin, 1px) solid var(--wallet-session-border, var(--border-flat, rgba(var(--ion-color-light-rgb), .1)));border-radius:var(--wallet-session-radius, var(--border-radius-lg, 12px));padding:var(--wallet-session-padding, var(--space-lg, 16px));display:flex;flex-direction:column;gap:var(--wallet-session-gap, var(--space-md, 12px));box-shadow:var(--wallet-session-shadow, var(--shadow-md));animation:slideIn var(--wallet-transition-slow, var(--duration-slow, .3s)) ease-out}.session-header{display:flex;align-items:center;justify-content:space-between;gap:var(--wallet-spacing-lg, var(--space-lg, 16px))}.session-info{display:flex;align-items:center;gap:var(--wallet-spacing-md, var(--space-md, 8px));flex:1;min-width:0}.session-icon{font-size:var(--wallet-session-icon-size, var(--font-size-2xl, 28px));color:var(--ion-color-primary);flex-shrink:0;transition:transform var(--wallet-transition-fast, var(--duration-fast, .15s)) ease}.session-display:hover .session-icon{transform:scale(1.05)}.session-details{display:flex;flex-direction:column;gap:var(--wallet-spacing-xs, var(--space-xs, 4px));min-width:0;flex:1}.session-details strong{font-size:var(--wallet-font-size-base, var(--font-size-sm, 14px));font-weight:var(--wallet-font-weight-semibold, var(--font-weight-semibold, 600));color:var(--wallet-session-text-primary, var(--ion-text-color));line-height:var(--wallet-line-height-normal, var(--line-height-normal, 1.4));display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-badges{display:flex;gap:var(--wallet-spacing-xs, var(--space-xs, 4px));flex-wrap:wrap}.network-badge{font-size:var(--wallet-badge-font-size, var(--font-size-xs, 10px));font-weight:var(--wallet-badge-font-weight, var(--font-weight-semibold, 600));padding:var(--wallet-badge-padding, var(--space-xs, 3px) var(--space-sm, 8px));border-radius:var(--wallet-badge-radius, var(--border-radius-sm, 6px));line-height:var(--line-height-tight, 1.2);transition:transform var(--wallet-transition-fast, var(--duration-fast, .15s)) ease}.session-display:hover .network-badge{transform:scale(1.05)}.disconnect-button{--border-radius: var(--wallet-spacing-sm, var(--border-radius-md, 8px));--padding-start: var(--wallet-spacing-sm, var(--space-sm, 8px));--padding-end: var(--wallet-spacing-sm, var(--space-sm, 8px));flex-shrink:0;transition:all var(--wallet-transition-fast, var(--transition-all, .15s ease))}.disconnect-button:hover:not([disabled]){transform:scale(1.05)}.disconnect-button:active:not([disabled]){transform:scale(var(--button-press-scale, .95))}.account-list{display:flex;flex-direction:column;gap:var(--wallet-spacing-sm, var(--space-sm, 4px));padding-top:var(--wallet-spacing-md, var(--space-md, 8px));border-top:var(--border-width-thin, 1px) solid var(--wallet-session-border, var(--border-flat, rgba(var(--ion-color-light-rgb), .1)))}.account-item{display:flex;align-items:center;justify-content:space-between;padding:var(--wallet-account-padding, var(--space-sm, 8px) var(--space-md, 12px));background:var(--wallet-account-bg, var(--surface-flat, rgba(var(--ion-color-primary-rgb), .05)));border-radius:var(--wallet-account-radius, var(--border-radius-md, 8px));transition:all var(--wallet-transition-normal, var(--transition-all, .2s ease))}.account-item:hover{background:var(--wallet-account-bg-hover, var(--surface-flat-hover, rgba(var(--ion-color-primary-rgb), .1)));transform:translate(2px)}.account-item .account-address{font-family:var(--wallet-account-font-family, var(--font-family-mono, monospace));font-size:var(--wallet-account-font-size, var(--font-size-sm, 14px));color:var(--wallet-session-text-primary, var(--ion-text-color));line-height:var(--wallet-line-height-normal, var(--line-height-normal, 1.4));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.size-small{--wallet-session-padding: var(--wallet-spacing-md, var(--space-md, 12px))}.size-small .wallet-button{--padding-top: var(--wallet-spacing-sm, var(--space-sm, 8px));--padding-bottom: var(--wallet-spacing-sm, var(--space-sm, 8px));--padding-start: var(--wallet-spacing-lg, var(--space-lg, 16px));--padding-end: var(--wallet-spacing-lg, var(--space-lg, 16px));font-size:var(--wallet-font-size-sm, var(--font-size-sm, 13px))}.size-small .session-icon{font-size:var(--font-size-xl, 24px)}.size-small .session-details strong{font-size:var(--wallet-font-size-sm, var(--font-size-sm, 13px))}.size-large{--wallet-session-padding: var(--wallet-spacing-xl, var(--space-xl, 20px))}.size-large .wallet-button{--padding-top: var(--wallet-spacing-lg, var(--space-lg, 18px));--padding-bottom: var(--wallet-spacing-lg, var(--space-lg, 18px));--padding-start: var(--wallet-spacing-2xl, var(--space-2xl, 32px));--padding-end: var(--wallet-spacing-2xl, var(--space-2xl, 32px));font-size:var(--wallet-font-size-lg, var(--font-size-lg, 18px))}.size-large .session-icon{font-size:var(--font-size-3xl, 32px)}.size-large .session-details strong{font-size:var(--wallet-font-size-lg, var(--font-size-lg, 18px))}@media(max-width:576px){.session-header{flex-wrap:wrap}.disconnect-button{width:100%}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.wallet-button[disabled]{animation:pulse 1.5s ease-in-out infinite}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}@keyframes slideIn{0%,to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] });
10087
10150
  }
10088
10151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WalletConnectButtonComponent, decorators: [{
10089
10152
  type: Component,
@@ -10096,6 +10159,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
10096
10159
  type: Input
10097
10160
  }], walletUrl: [{
10098
10161
  type: Input
10162
+ }], network: [{
10163
+ type: Input
10099
10164
  }], showSessionInfo: [{
10100
10165
  type: Input
10101
10166
  }], buttonColor: [{
@@ -10183,7 +10248,7 @@ class WalletConnectPromptComponent {
10183
10248
  addIcons({ walletOutline });
10184
10249
  }
10185
10250
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WalletConnectPromptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10186
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: WalletConnectPromptComponent, isStandalone: true, selector: "wallet-connect-prompt", inputs: { title: "title", subtitle: "subtitle", message: "message", showIcon: "showIcon", buttonText: "buttonText", buttonSize: "buttonSize", buttonColor: "buttonColor", cardColor: "cardColor", walletConnectProjectId: "walletConnectProjectId" }, ngImport: i0, template: "<ion-card class=\"wallet-connect-prompt\" [color]=\"cardColor\">\n <ion-card-header>\n <div class=\"prompt-header\">\n <ion-icon *ngIf=\"showIcon\" name=\"wallet-outline\" class=\"prompt-icon\"></ion-icon>\n <div>\n <ion-card-title>{{ title }}</ion-card-title>\n <ion-card-subtitle *ngIf=\"subtitle\">{{ subtitle }}</ion-card-subtitle>\n </div>\n </div>\n </ion-card-header>\n \n <ion-card-content>\n <p class=\"prompt-message\">{{ message }}</p>\n \n <wallet-connect-button\n [walletConnectProjectId]=\"walletConnectProjectId\"\n [connectText]=\"buttonText\"\n [size]=\"buttonSize\"\n [buttonColor]=\"buttonColor\"\n class=\"prompt-button\"\n />\n </ion-card-content>\n</ion-card>\n\n", styles: [".wallet-connect-prompt{max-width:600px;margin:var(--space-lg, 24px) auto;text-align:center}.prompt-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm, 12px)}.prompt-icon{font-size:48px;color:var(--ion-color-primary)}.prompt-message{margin:var(--space-md, 16px) 0;color:var(--ion-color-medium);font-size:14px;line-height:1.6}.prompt-button{margin-top:var(--space-md, 16px)}.prompt-button ::ng-deep ion-button{margin:0 auto;display:block}@media(max-width:576px){.wallet-connect-prompt{margin:var(--space-md, 16px)}.prompt-icon{font-size:36px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: WalletConnectButtonComponent, selector: "wallet-connect-button", inputs: ["walletConnectProjectId", "appName", "appDescription", "walletUrl", "showSessionInfo", "buttonColor", "size", "connectText", "connectedText", "multiSessionMode"], outputs: ["connected", "disconnected", "error"] }] });
10251
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: WalletConnectPromptComponent, isStandalone: true, selector: "wallet-connect-prompt", inputs: { title: "title", subtitle: "subtitle", message: "message", showIcon: "showIcon", buttonText: "buttonText", buttonSize: "buttonSize", buttonColor: "buttonColor", cardColor: "cardColor", walletConnectProjectId: "walletConnectProjectId" }, ngImport: i0, template: "<ion-card class=\"wallet-connect-prompt\" [color]=\"cardColor\">\n <ion-card-header>\n <div class=\"prompt-header\">\n <ion-icon *ngIf=\"showIcon\" name=\"wallet-outline\" class=\"prompt-icon\"></ion-icon>\n <div>\n <ion-card-title>{{ title }}</ion-card-title>\n <ion-card-subtitle *ngIf=\"subtitle\">{{ subtitle }}</ion-card-subtitle>\n </div>\n </div>\n </ion-card-header>\n \n <ion-card-content>\n <p class=\"prompt-message\">{{ message }}</p>\n \n <wallet-connect-button\n [walletConnectProjectId]=\"walletConnectProjectId\"\n [connectText]=\"buttonText\"\n [size]=\"buttonSize\"\n [buttonColor]=\"buttonColor\"\n class=\"prompt-button\"\n />\n </ion-card-content>\n</ion-card>\n\n", styles: [".wallet-connect-prompt{max-width:600px;margin:var(--space-lg, 24px) auto;text-align:center}.prompt-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm, 12px)}.prompt-icon{font-size:48px;color:var(--ion-color-primary)}.prompt-message{margin:var(--space-md, 16px) 0;color:var(--ion-color-medium);font-size:14px;line-height:1.6}.prompt-button{margin-top:var(--space-md, 16px)}.prompt-button ::ng-deep ion-button{margin:0 auto;display:block}@media(max-width:576px){.wallet-connect-prompt{margin:var(--space-md, 16px)}.prompt-icon{font-size:36px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: WalletConnectButtonComponent, selector: "wallet-connect-button", inputs: ["walletConnectProjectId", "appName", "appDescription", "walletUrl", "network", "showSessionInfo", "buttonColor", "size", "connectText", "connectedText", "multiSessionMode"], outputs: ["connected", "disconnected", "error"] }] });
10187
10252
  }
10188
10253
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WalletConnectPromptComponent, decorators: [{
10189
10254
  type: Component,