@n1xyz/wallet-widget 0.0.28 → 0.0.30

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 (169) hide show
  1. package/README.md +89 -11
  2. package/dist/Logic/sessionManager.js +8 -8
  3. package/dist/Logic/sessionManager.js.map +1 -1
  4. package/dist/Logic/transactionManager.d.ts +0 -22
  5. package/dist/Logic/transactionManager.js +0 -189
  6. package/dist/Logic/transactionManager.js.map +1 -1
  7. package/dist/Logic/utils.d.ts +3 -7
  8. package/dist/Logic/utils.js +3 -186
  9. package/dist/Logic/utils.js.map +1 -1
  10. package/dist/Modal/LoadingFallback.js +1 -1
  11. package/dist/Modal/LoadingFallback.js.map +1 -1
  12. package/dist/Modal/N1WalletModal.d.ts +1 -1
  13. package/dist/Modal/N1WalletModal.js +50 -205
  14. package/dist/Modal/N1WalletModal.js.map +1 -1
  15. package/dist/Modal/NTSFlow/views/CreateSessionView.d.ts +1 -1
  16. package/dist/Modal/NordFlow/NordFlow.js +44 -17
  17. package/dist/Modal/NordFlow/NordFlow.js.map +1 -1
  18. package/dist/Modal/NordFlow/components/ChainButton.d.ts +5 -2
  19. package/dist/Modal/NordFlow/components/ChainButton.js +16 -13
  20. package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -1
  21. package/dist/Modal/NordFlow/components/EVMChainsButton.d.ts +2 -1
  22. package/dist/Modal/NordFlow/components/EVMChainsButton.js +11 -9
  23. package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -1
  24. package/dist/Modal/NordFlow/components/Header.d.ts +3 -1
  25. package/dist/Modal/NordFlow/components/Header.js +38 -4
  26. package/dist/Modal/NordFlow/components/Header.js.map +1 -1
  27. package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -1
  28. package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -1
  29. package/dist/Modal/NordFlow/components/MoreButton.d.ts +1 -1
  30. package/dist/Modal/NordFlow/components/MoreButton.js +4 -4
  31. package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -1
  32. package/dist/Modal/NordFlow/components/TransactionTable.d.ts +1 -1
  33. package/dist/Modal/NordFlow/components/TransactionTable.js +11 -11
  34. package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -1
  35. package/dist/Modal/NordFlow/components/WaitingMessage.d.ts +3 -1
  36. package/dist/Modal/NordFlow/components/WaitingMessage.js +14 -3
  37. package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -1
  38. package/dist/Modal/NordFlow/components/index.d.ts +0 -1
  39. package/dist/Modal/NordFlow/components/index.js +0 -1
  40. package/dist/Modal/NordFlow/components/index.js.map +1 -1
  41. package/dist/Modal/NordFlow/constants.js +12 -48
  42. package/dist/Modal/NordFlow/constants.js.map +1 -1
  43. package/dist/Modal/NordFlow/context/DepositContext.js +112 -41
  44. package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -1
  45. package/dist/Modal/NordFlow/context/FlowContext.d.ts +1 -0
  46. package/dist/Modal/NordFlow/context/FlowContext.js +99 -6
  47. package/dist/Modal/NordFlow/context/FlowContext.js.map +1 -1
  48. package/dist/Modal/NordFlow/context/WalletConnectContext.js +76 -20
  49. package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -1
  50. package/dist/Modal/NordFlow/hoc/withImageFallback.js.map +1 -1
  51. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.d.ts +18 -0
  52. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.js +181 -0
  53. package/dist/Modal/NordFlow/hooks/useTestnetFaucet.js.map +1 -0
  54. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +1 -1
  55. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +10 -15
  56. package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -1
  57. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.d.ts +1 -0
  58. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.js +115 -0
  59. package/dist/Modal/NordFlow/screens/02-ChainSelectionScreen.js.map +1 -0
  60. package/dist/Modal/NordFlow/screens/03-AmountInputScreen.d.ts +4 -0
  61. package/dist/Modal/NordFlow/screens/03-AmountInputScreen.js +298 -0
  62. package/dist/Modal/NordFlow/screens/03-AmountInputScreen.js.map +1 -0
  63. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.d.ts +1 -0
  64. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.js +29 -0
  65. package/dist/Modal/NordFlow/screens/04-DepositProgressScreen.js.map +1 -0
  66. package/dist/Modal/NordFlow/screens/05-DepositSuccessScreen.d.ts +1 -0
  67. package/dist/Modal/NordFlow/screens/05-DepositSuccessScreen.js +131 -0
  68. package/dist/Modal/NordFlow/screens/05-DepositSuccessScreen.js.map +1 -0
  69. package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.d.ts +1 -0
  70. package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.js +37 -0
  71. package/dist/Modal/NordFlow/screens/06-AuthLoadingScreen.js.map +1 -0
  72. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.d.ts +5 -0
  73. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.js +39 -0
  74. package/dist/Modal/NordFlow/screens/07-FinalSuccessScreen.js.map +1 -0
  75. package/dist/Modal/NordFlow/screens/08-ErrorScreen.d.ts +1 -0
  76. package/dist/Modal/NordFlow/screens/08-ErrorScreen.js +68 -0
  77. package/dist/Modal/NordFlow/screens/08-ErrorScreen.js.map +1 -0
  78. package/dist/Modal/NordFlow/screens/index.d.ts +5 -9
  79. package/dist/Modal/NordFlow/screens/index.js +5 -9
  80. package/dist/Modal/NordFlow/screens/index.js.map +1 -1
  81. package/dist/Modal/NordFlow/types.d.ts +13 -3
  82. package/dist/Modal/NordFlow/types.js +4 -3
  83. package/dist/Modal/NordFlow/types.js.map +1 -1
  84. package/dist/Modal/NordFlow/utils/depositStorage.d.ts +4 -0
  85. package/dist/Modal/NordFlow/utils/depositStorage.js +48 -0
  86. package/dist/Modal/NordFlow/utils/depositStorage.js.map +1 -0
  87. package/dist/Modal/NordFlow/utils/nordUtils.d.ts +1 -1
  88. package/dist/Modal/NordFlow/utils/nordUtils.js +1 -1
  89. package/dist/Modal/NordFlow/utils/nordUtils.js.map +1 -1
  90. package/dist/Provider/LazyWalletProvider.d.ts +1 -1
  91. package/dist/Provider/LazyWalletProvider.js +38 -38
  92. package/dist/Provider/LazyWalletProvider.js.map +1 -1
  93. package/dist/Provider/N1WalletProvider.d.ts +2 -1
  94. package/dist/Provider/N1WalletProvider.js +85 -82
  95. package/dist/Provider/N1WalletProvider.js.map +1 -1
  96. package/dist/Provider/ShadowRootWrapper.d.ts +1 -1
  97. package/dist/Provider/WalletErrorBoundary.d.ts +9 -2
  98. package/dist/Provider/WalletErrorBoundary.js +19 -1
  99. package/dist/Provider/WalletErrorBoundary.js.map +1 -1
  100. package/dist/Provider/hooks/useNordUserInitialization.js +87 -35
  101. package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -1
  102. package/dist/Provider/icons/CoinbaseWalletIcon.d.ts +1 -1
  103. package/dist/Provider/icons/ConnectionDotsSVG.d.ts +1 -1
  104. package/dist/Provider/icons/MetamaskIcon.d.ts +1 -1
  105. package/dist/Provider/icons/PhantomIcon.d.ts +1 -1
  106. package/dist/Provider/icons/UserIcon.d.ts +1 -1
  107. package/dist/Provider/icons/WalletConnectIcon.d.ts +1 -1
  108. package/dist/Provider/types.d.ts +18 -16
  109. package/dist/Provider/types.js +8 -2
  110. package/dist/Provider/types.js.map +1 -1
  111. package/dist/WidgetButton/N1ConnectButton.d.ts +1 -1
  112. package/dist/WidgetButton/N1ConnectButton.js +29 -10
  113. package/dist/WidgetButton/N1ConnectButton.js.map +1 -1
  114. package/dist/animations/N1Loader.d.ts +11 -0
  115. package/dist/animations/N1Loader.js +42 -0
  116. package/dist/animations/N1Loader.js.map +1 -0
  117. package/dist/animations/N1Loader.json +1 -0
  118. package/dist/animations/Processing.d.ts +11 -0
  119. package/dist/animations/Processing.js +42 -0
  120. package/dist/animations/Processing.js.map +1 -0
  121. package/dist/animations/Processing.json +1 -0
  122. package/dist/components/Logo.d.ts +2 -1
  123. package/dist/components/Logo.js +5 -2
  124. package/dist/components/Logo.js.map +1 -1
  125. package/dist/components/QRCodeLoader.d.ts +1 -1
  126. package/dist/components/QRCodeLoader.js +1 -1
  127. package/dist/components/QRCodeLoader.js.map +1 -1
  128. package/dist/components/logos/EVMChainsGroup.js +1 -1
  129. package/dist/components/logos/EVMChainsGroup.js.map +1 -1
  130. package/dist/components/logos/MoreChainsGroup.js +1 -1
  131. package/dist/components/logos/MoreChainsGroup.js.map +1 -1
  132. package/dist/components/logos/index.d.ts +0 -2
  133. package/dist/components/logos/index.js +0 -2
  134. package/dist/components/logos/index.js.map +1 -1
  135. package/dist/config/solana.d.ts +3 -15
  136. package/dist/config/solana.js +6 -29
  137. package/dist/config/solana.js.map +1 -1
  138. package/dist/embedded-main-css.d.ts +1 -1
  139. package/dist/embedded-main-css.js +1 -1
  140. package/dist/embedded-main-css.js.map +1 -1
  141. package/dist/fonts/apk-galeria/APK-Galeria-Bold-Italic-Trial.otf +0 -0
  142. package/dist/fonts/apk-galeria/APK-Galeria-Bold-Trial.otf +0 -0
  143. package/dist/fonts/apk-galeria/APK-Galeria-Extra-Bold-Italic-Trial.otf +0 -0
  144. package/dist/fonts/apk-galeria/APK-Galeria-Extra-Bold-Trial.otf +0 -0
  145. package/dist/fonts/apk-galeria/APK-Galeria-Light-Italic-Trial.otf +0 -0
  146. package/dist/fonts/apk-galeria/APK-Galeria-Light-Trial.otf +0 -0
  147. package/dist/fonts/apk-galeria/APK-Galeria-Medium-Italic-Trial.otf +0 -0
  148. package/dist/fonts/apk-galeria/APK-Galeria-Medium-Trial.otf +0 -0
  149. package/dist/fonts/apk-galeria/APK-Galeria-Regular-Italic-Trial.otf +0 -0
  150. package/dist/fonts/apk-galeria/APK-Galeria-Regular-Trial.otf +0 -0
  151. package/dist/fonts/apk-galeria/APK-Galeria-Semi-Bold-Italic-Trial.otf +0 -0
  152. package/dist/fonts/apk-galeria/APK-Galeria-Semi-Bold-Trial.otf +0 -0
  153. package/dist/fonts/apk-galeria/APK-Galeria-Thin-Italic-Trial.otf +0 -0
  154. package/dist/fonts/apk-galeria/APK-Galeria-Thin-Trial.otf +0 -0
  155. package/dist/index.d.ts +2 -0
  156. package/dist/index.js +2 -0
  157. package/dist/index.js.map +1 -1
  158. package/dist/main.css +2 -2
  159. package/dist/polyfills/windowEthereumGuard.d.ts +6 -0
  160. package/dist/polyfills/windowEthereumGuard.js +28 -0
  161. package/dist/polyfills/windowEthereumGuard.js.map +1 -0
  162. package/dist/utils/dynamicNord.d.ts +2 -0
  163. package/dist/utils/dynamicNord.js +59 -0
  164. package/dist/utils/dynamicNord.js.map +1 -0
  165. package/dist/utils/ed25519.d.ts +8 -0
  166. package/dist/utils/ed25519.js +87 -0
  167. package/dist/utils/ed25519.js.map +1 -0
  168. package/package.json +26 -11
  169. package/dist/utils/dynamicImports.d.ts +0 -25
@@ -1,32 +1,65 @@
1
+ var _a;
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect } from 'react';
2
4
  import { Header } from './components';
3
5
  import { useFlowStateContext } from './context';
4
6
  import { withImageFallback } from './hoc';
5
- import { AmountInputScreen, AuthLoadingScreen, ChainSelectionScreen, ConnectWalletScreen, DepositProgressScreen, DepositSuccessScreen, ErrorScreen, EvmWalletAuthScreen, FinalSuccessScreen, IdleScreen, } from './screens';
7
+ import { AmountInputScreen, AuthLoadingScreen, ChainSelectionScreen, ConnectWalletScreen, DepositProgressScreen, DepositSuccessScreen, } from './screens';
6
8
  import { FlowState } from './types';
7
9
  // Apply the withImageFallback HOC to all screen components
8
10
  var EnhancedConnectWalletScreen = withImageFallback(ConnectWalletScreen);
9
- var EnhancedEvmWalletAuthScreen = withImageFallback(EvmWalletAuthScreen);
10
11
  var EnhancedChainSelectionScreen = withImageFallback(ChainSelectionScreen);
11
12
  var EnhancedAmountInputScreen = withImageFallback(AmountInputScreen);
12
13
  var EnhancedDepositProgressScreen = withImageFallback(DepositProgressScreen);
13
14
  var EnhancedDepositSuccessScreen = withImageFallback(DepositSuccessScreen);
14
15
  var EnhancedAuthLoadingScreen = withImageFallback(AuthLoadingScreen);
15
- var EnhancedFinalSuccessScreen = withImageFallback(FinalSuccessScreen);
16
- var EnhancedErrorScreen = withImageFallback(ErrorScreen);
17
- var EnhancedIdleScreen = withImageFallback(IdleScreen);
16
+ var DEFAULT_HEADER_CONFIG = { title: 'Bridge' };
17
+ var HEADER_CONFIG = (_a = {},
18
+ _a[FlowState.CONNECTING_WALLET] = { title: 'Connect Wallet' },
19
+ _a[FlowState.CHAIN_SELECTION] = { title: 'Select Network' },
20
+ _a[FlowState.AMOUNT_INPUT] = {
21
+ title: 'Enter Amount',
22
+ backTarget: {
23
+ state: FlowState.CHAIN_SELECTION,
24
+ contextUpdates: { selectedChain: null, amount: '' },
25
+ },
26
+ },
27
+ _a[FlowState.DEPOSIT_PROGRESS] = { title: 'Processing Deposit' },
28
+ _a[FlowState.DEPOSIT_SUCCESS] = { title: 'Deposit Complete' },
29
+ _a[FlowState.AUTH_LOADING] = { title: 'Authenticating' },
30
+ _a[FlowState.FINAL_SUCCESS] = { title: 'All Set' },
31
+ _a[FlowState.ERROR] = { title: 'Something Went Wrong' },
32
+ _a);
18
33
  /**
19
34
  * Main component for the wallet connection flow
20
35
  */
21
36
  export var NordFlow = function (_a) {
22
37
  var onClose = _a.onClose;
23
- return (_jsx("div", { className: "z-50 flex items-center justify-center overflow-auto font-era", children: _jsxs("div", { className: "bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 relative border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity min-w-96", children: [_jsx(Header, { onClose: onClose }), _jsx("div", { className: "wallet-connection-flow-content p-6 overflow-hidden", children: _jsx(NordFlowScreenRenderer, { onClose: onClose }) })] }) }));
38
+ var _b = useFlowStateContext(), state = _b.state, transition = _b.transition, isClosing = _b.isClosing;
39
+ var shouldAutoClose = state === FlowState.FINAL_SUCCESS || state === FlowState.ERROR;
40
+ useEffect(function () {
41
+ if (!shouldAutoClose) {
42
+ return;
43
+ }
44
+ if (onClose) {
45
+ onClose();
46
+ }
47
+ }, [shouldAutoClose, onClose]);
48
+ if (shouldAutoClose) {
49
+ return null;
50
+ }
51
+ var headerConfig = HEADER_CONFIG[state] || DEFAULT_HEADER_CONFIG;
52
+ var backTarget = headerConfig.backTarget;
53
+ var handleBack = backTarget
54
+ ? function () {
55
+ return transition(backTarget.state, backTarget.contextUpdates);
56
+ }
57
+ : undefined;
58
+ return (_jsx("div", { className: "z-50 flex items-center justify-center overflow-auto font-era", children: _jsxs("div", { className: "bg-n1-ww-gray-700 relative border border-n1-ww-border rounded-[6px] transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] m-4 origin-center will-change-[max-width,transform,opacity]", style: { width: 400 }, children: [_jsx(Header, { onClose: onClose, title: headerConfig.title, onBack: handleBack }), _jsx("div", { className: "wallet-connection-flow-content p-4 overflow-visible", children: _jsx(NordFlowScreenRenderer, { state: state, isClosing: isClosing }) })] }) }));
24
59
  };
25
- // Screen renderer component that uses the flow state context
60
+ // Screen renderer component that renders the active flow screen
26
61
  var NordFlowScreenRenderer = function (_a) {
27
- var onClose = _a.onClose;
28
- // Use the flow state context
29
- var _b = useFlowStateContext(), state = _b.state, isClosing = _b.isClosing;
62
+ var state = _a.state, isClosing = _a.isClosing;
30
63
  // Render the appropriate screen based on the current state
31
64
  var renderScreen = function () {
32
65
  switch (state) {
@@ -34,8 +67,6 @@ var NordFlowScreenRenderer = function (_a) {
34
67
  return _jsx(EnhancedConnectWalletScreen, {});
35
68
  case FlowState.CHAIN_SELECTION:
36
69
  return _jsx(EnhancedChainSelectionScreen, {});
37
- case FlowState.ETH_TO_SOL_AUTH:
38
- return _jsx(EnhancedEvmWalletAuthScreen, {});
39
70
  case FlowState.AMOUNT_INPUT:
40
71
  return _jsx(EnhancedAmountInputScreen, {});
41
72
  case FlowState.DEPOSIT_PROGRESS:
@@ -44,12 +75,8 @@ var NordFlowScreenRenderer = function (_a) {
44
75
  return _jsx(EnhancedDepositSuccessScreen, {});
45
76
  case FlowState.AUTH_LOADING:
46
77
  return _jsx(EnhancedAuthLoadingScreen, {});
47
- case FlowState.FINAL_SUCCESS:
48
- return _jsx(EnhancedFinalSuccessScreen, { onDone: onClose || (function () { }) });
49
- case FlowState.ERROR:
50
- return _jsx(EnhancedErrorScreen, {});
51
78
  default:
52
- return _jsx(EnhancedIdleScreen, {});
79
+ return _jsx(EnhancedConnectWalletScreen, {});
53
80
  }
54
81
  };
55
82
  return (_jsx("div", { className: isClosing ? 'n1-ww-animate-fade-out' : 'n1-ww-animate-fade-in', children: renderScreen() }));
@@ -1 +1 @@
1
- {"version":3,"file":"NordFlow.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/NordFlow.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Header } from './components';\nimport { useFlowStateContext } from './context';\nimport { withImageFallback } from './hoc';\nimport {\n AmountInputScreen,\n AuthLoadingScreen,\n ChainSelectionScreen,\n ConnectWalletScreen,\n DepositProgressScreen,\n DepositSuccessScreen,\n ErrorScreen,\n EvmWalletAuthScreen,\n FinalSuccessScreen,\n IdleScreen,\n} from './screens';\nimport { FlowState } from './types';\n\ninterface NordFlowProps {\n onClose?: () => void;\n}\n\n// Apply the withImageFallback HOC to all screen components\nconst EnhancedConnectWalletScreen = withImageFallback(ConnectWalletScreen);\nconst EnhancedEvmWalletAuthScreen = withImageFallback(EvmWalletAuthScreen);\nconst EnhancedChainSelectionScreen = withImageFallback(ChainSelectionScreen);\nconst EnhancedAmountInputScreen = withImageFallback(AmountInputScreen);\nconst EnhancedDepositProgressScreen = withImageFallback(DepositProgressScreen);\nconst EnhancedDepositSuccessScreen = withImageFallback(DepositSuccessScreen);\nconst EnhancedAuthLoadingScreen = withImageFallback(AuthLoadingScreen);\nconst EnhancedFinalSuccessScreen = withImageFallback(FinalSuccessScreen);\nconst EnhancedErrorScreen = withImageFallback(ErrorScreen);\nconst EnhancedIdleScreen = withImageFallback(IdleScreen);\n\n/**\n * Main component for the wallet connection flow\n */\nexport const NordFlow: React.FC<NordFlowProps> = ({ onClose }) => {\n return (\n <div\n className={`z-50 flex items-center justify-center overflow-auto font-era`}\n >\n <div className=\"bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 relative border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity min-w-96\">\n {/* Header */}\n <Header onClose={onClose} />\n\n {/* Content */}\n <div className=\"wallet-connection-flow-content p-6 overflow-hidden\">\n <NordFlowScreenRenderer onClose={onClose} />\n </div>\n </div>\n </div>\n );\n};\n\n// Screen renderer component that uses the flow state context\nconst NordFlowScreenRenderer: React.FC<{ onClose?: () => void }> = ({ onClose }) => {\n // Use the flow state context\n const {\n state,\n isClosing,\n } = useFlowStateContext();\n\n // Render the appropriate screen based on the current state\n const renderScreen = () => {\n switch (state) {\n case FlowState.CONNECTING_WALLET:\n return <EnhancedConnectWalletScreen />;\n case FlowState.CHAIN_SELECTION:\n return <EnhancedChainSelectionScreen />;\n case FlowState.ETH_TO_SOL_AUTH:\n return <EnhancedEvmWalletAuthScreen />;\n case FlowState.AMOUNT_INPUT:\n return <EnhancedAmountInputScreen />;\n case FlowState.DEPOSIT_PROGRESS:\n return <EnhancedDepositProgressScreen />;\n case FlowState.DEPOSIT_SUCCESS:\n return <EnhancedDepositSuccessScreen />;\n case FlowState.AUTH_LOADING:\n return <EnhancedAuthLoadingScreen />;\n case FlowState.FINAL_SUCCESS:\n return <EnhancedFinalSuccessScreen onDone={onClose || (() => { })} />;\n case FlowState.ERROR:\n return <EnhancedErrorScreen />;\n default:\n return <EnhancedIdleScreen />;\n }\n };\n\n return (\n <div className={isClosing ? 'n1-ww-animate-fade-out' : 'n1-ww-animate-fade-in'}>\n {renderScreen()}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"NordFlow.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/NordFlow.tsx"],"names":[],"mappings":";;AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAe,SAAS,EAAE,MAAM,SAAS,CAAC;AAMjD,2DAA2D;AAC3D,IAAM,2BAA2B,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAC3E,IAAM,4BAA4B,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AAC7E,IAAM,yBAAyB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AACvE,IAAM,6BAA6B,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;AAC/E,IAAM,4BAA4B,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AAC7E,IAAM,yBAAyB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AAUvE,IAAM,qBAAqB,GAAwB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAEvE,IAAM,aAAa;IACjB,GAAC,SAAS,CAAC,iBAAiB,IAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC1D,GAAC,SAAS,CAAC,eAAe,IAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACxD,GAAC,SAAS,CAAC,YAAY,IAAG;QACxB,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE;YACV,KAAK,EAAE,SAAS,CAAC,eAAe;YAChC,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;SACpD;KACF;IACD,GAAC,SAAS,CAAC,gBAAgB,IAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE;IAC7D,GAAC,SAAS,CAAC,eAAe,IAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE;IAC1D,GAAC,SAAS,CAAC,YAAY,IAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACrD,GAAC,SAAS,CAAC,aAAa,IAAG,EAAE,KAAK,EAAE,SAAS,EAAE;IAC/C,GAAC,SAAS,CAAC,KAAK,IAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE;OACrD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,IAAM,QAAQ,GAA4B,UAAC,EAAU;QAAR,OAAO,aAAA;IACnD,IAAA,KAAmC,mBAAmB,EAAE,EAAtD,KAAK,WAAA,EAAE,UAAU,gBAAA,EAAE,SAAS,eAA0B,CAAC;IAC/D,IAAM,eAAe,GACnB,KAAK,KAAK,SAAS,CAAC,aAAa,IAAI,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC;IAEjE,SAAS,CAAC;QACR,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/B,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC;IACnE,IAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;IAC3C,IAAM,UAAU,GAAG,UAAU;QAC3B,CAAC,CAAC;YACE,OAAA,UAAU,CACR,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,cAAc,CAC1B;QAHD,CAGC;QACL,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACL,cACE,SAAS,EAAE,8DAA8D,YAEzE,eACE,SAAS,EAAC,8NAA8N,EACxO,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,aAGrB,KAAC,MAAM,IACL,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,CAAC,KAAK,EACzB,MAAM,EAAE,UAAU,GAClB,EAGF,cAAK,SAAS,EAAC,qDAAqD,YAClE,KAAC,sBAAsB,IACrB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,GACpB,GACE,IACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,gEAAgE;AAChE,IAAM,sBAAsB,GAGvB,UAAC,EAAoB;QAAlB,KAAK,WAAA,EAAE,SAAS,eAAA;IACtB,2DAA2D;IAC3D,IAAM,YAAY,GAAG;QACnB,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,SAAS,CAAC,iBAAiB;gBAC9B,OAAO,KAAC,2BAA2B,KAAG,CAAC;YACzC,KAAK,SAAS,CAAC,eAAe;gBAC5B,OAAO,KAAC,4BAA4B,KAAG,CAAC;YAC1C,KAAK,SAAS,CAAC,YAAY;gBACzB,OAAO,KAAC,yBAAyB,KAAG,CAAC;YACvC,KAAK,SAAS,CAAC,gBAAgB;gBAC7B,OAAO,KAAC,6BAA6B,KAAG,CAAC;YAC3C,KAAK,SAAS,CAAC,eAAe;gBAC5B,OAAO,KAAC,4BAA4B,KAAG,CAAC;YAC1C,KAAK,SAAS,CAAC,YAAY;gBACzB,OAAO,KAAC,yBAAyB,KAAG,CAAC;YACvC;gBACE,OAAO,KAAC,2BAA2B,KAAG,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,YAC3E,YAAY,EAAE,GACX,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useEffect } from 'react';\nimport { Header } from './components';\nimport { useFlowStateContext } from './context';\nimport { withImageFallback } from './hoc';\nimport {\n AmountInputScreen,\n AuthLoadingScreen,\n ChainSelectionScreen,\n ConnectWalletScreen,\n DepositProgressScreen,\n DepositSuccessScreen,\n} from './screens';\nimport { FlowContext, FlowState } from './types';\n\ninterface NordFlowProps {\n onClose?: () => void;\n}\n\n// Apply the withImageFallback HOC to all screen components\nconst EnhancedConnectWalletScreen = withImageFallback(ConnectWalletScreen);\nconst EnhancedChainSelectionScreen = withImageFallback(ChainSelectionScreen);\nconst EnhancedAmountInputScreen = withImageFallback(AmountInputScreen);\nconst EnhancedDepositProgressScreen = withImageFallback(DepositProgressScreen);\nconst EnhancedDepositSuccessScreen = withImageFallback(DepositSuccessScreen);\nconst EnhancedAuthLoadingScreen = withImageFallback(AuthLoadingScreen);\n\ninterface HeaderDisplayConfig {\n title: string;\n backTarget?: {\n state: FlowState;\n contextUpdates?: Partial<FlowContext>;\n };\n}\n\nconst DEFAULT_HEADER_CONFIG: HeaderDisplayConfig = { title: 'Bridge' };\n\nconst HEADER_CONFIG: Record<FlowState, HeaderDisplayConfig> = {\n [FlowState.CONNECTING_WALLET]: { title: 'Connect Wallet' },\n [FlowState.CHAIN_SELECTION]: { title: 'Select Network' },\n [FlowState.AMOUNT_INPUT]: {\n title: 'Enter Amount',\n backTarget: {\n state: FlowState.CHAIN_SELECTION,\n contextUpdates: { selectedChain: null, amount: '' },\n },\n },\n [FlowState.DEPOSIT_PROGRESS]: { title: 'Processing Deposit' },\n [FlowState.DEPOSIT_SUCCESS]: { title: 'Deposit Complete' },\n [FlowState.AUTH_LOADING]: { title: 'Authenticating' },\n [FlowState.FINAL_SUCCESS]: { title: 'All Set' },\n [FlowState.ERROR]: { title: 'Something Went Wrong' },\n};\n\n/**\n * Main component for the wallet connection flow\n */\nexport const NordFlow: React.FC<NordFlowProps> = ({ onClose}) => {\n const { state, transition, isClosing } = useFlowStateContext();\n const shouldAutoClose =\n state === FlowState.FINAL_SUCCESS || state === FlowState.ERROR;\n\n useEffect(() => {\n if (!shouldAutoClose) {\n return;\n }\n\n if (onClose) {\n onClose();\n }\n }, [shouldAutoClose, onClose]);\n\n if (shouldAutoClose) {\n return null;\n }\n\n const headerConfig = HEADER_CONFIG[state] || DEFAULT_HEADER_CONFIG;\n const backTarget = headerConfig.backTarget;\n const handleBack = backTarget\n ? () =>\n transition(\n backTarget.state,\n backTarget.contextUpdates\n )\n : undefined;\n\n return (\n <div\n className={`z-50 flex items-center justify-center overflow-auto font-era`}\n >\n <div\n className=\"bg-n1-ww-gray-700 relative border border-n1-ww-border rounded-[6px] transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] m-4 origin-center will-change-[max-width,transform,opacity]\"\n style={{ width: 400 }}\n >\n {/* Header */}\n <Header\n onClose={onClose}\n title={headerConfig.title}\n onBack={handleBack}\n />\n\n {/* Content */}\n <div className=\"wallet-connection-flow-content p-4 overflow-visible\">\n <NordFlowScreenRenderer\n state={state}\n isClosing={isClosing}\n />\n </div>\n </div>\n </div>\n );\n};\n\n// Screen renderer component that renders the active flow screen\nconst NordFlowScreenRenderer: React.FC<{\n state: FlowState;\n isClosing: boolean;\n}> = ({ state, isClosing }) => {\n // Render the appropriate screen based on the current state\n const renderScreen = () => {\n switch (state) {\n case FlowState.CONNECTING_WALLET:\n return <EnhancedConnectWalletScreen />;\n case FlowState.CHAIN_SELECTION:\n return <EnhancedChainSelectionScreen />;\n case FlowState.AMOUNT_INPUT:\n return <EnhancedAmountInputScreen />;\n case FlowState.DEPOSIT_PROGRESS:\n return <EnhancedDepositProgressScreen />;\n case FlowState.DEPOSIT_SUCCESS:\n return <EnhancedDepositSuccessScreen />;\n case FlowState.AUTH_LOADING:\n return <EnhancedAuthLoadingScreen />;\n default:\n return <EnhancedConnectWalletScreen />;\n }\n };\n\n return (\n <div className={isClosing ? 'n1-ww-animate-fade-out' : 'n1-ww-animate-fade-in'}>\n {renderScreen()}\n </div>\n );\n};\n"]}
@@ -1,8 +1,11 @@
1
- import { Chain } from '../types';
1
+ import { Chain } from "../types";
2
2
  interface ChainButtonProps {
3
3
  chain: Chain;
4
4
  onClick: (chainId: string) => void;
5
5
  disabled?: boolean;
6
+ selected?: boolean;
7
+ soon?: boolean;
8
+ subtitle?: string;
6
9
  }
7
- export declare function ChainButton({ chain, onClick, disabled, }: ChainButtonProps): JSX.Element;
10
+ export declare function ChainButton({ chain, onClick, disabled, selected, soon, subtitle, }: ChainButtonProps): import("react/jsx-runtime").JSX.Element;
8
11
  export {};
@@ -1,22 +1,25 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ImageWithFallback } from './ImageWithFallback';
2
+ import { ImageWithFallback } from "./ImageWithFallback";
3
3
  export function ChainButton(_a) {
4
- var chain = _a.chain, onClick = _a.onClick, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
4
+ var chain = _a.chain, onClick = _a.onClick, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.selected, selected = _c === void 0 ? false : _c, _d = _a.soon, soon = _d === void 0 ? false : _d, subtitle = _a.subtitle;
5
5
  var handleClick = function () {
6
- if (!disabled) {
6
+ if (!disabled && !soon) {
7
7
  onClick(chain.id);
8
8
  }
9
9
  };
10
- var baseClasses = 'flex flex-col items-center justify-center p-6 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 border-2 border-n1-ww-gray-100 dark:border-n1-ww-gray-800 transition-all duration-200 group rounded-lg';
11
- var enabledClasses = 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-ww-gray-900';
12
- var disabledClasses = 'opacity-50 cursor-not-allowed';
13
- var buttonClasses = "".concat(baseClasses, " ").concat(disabled ? disabledClasses : enabledClasses);
14
10
  var imageClasses = disabled
15
- ? 'opacity-50 grayscale'
16
- : 'opacity-90 grayscale group-hover:grayscale-0 group-hover:scale-105 transition-all duration-200';
17
- var textClasses = disabled
18
- ? 'mt-4 font-medium text-n1-ww-gray-400 dark:text-n1-ww-gray-500'
19
- : 'mt-4 font-medium text-n1-ww-gray-600 dark:text-n1-ww-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-ww-gray-50 transition-colors duration-200';
20
- return (_jsxs("button", { onClick: handleClick, className: buttonClasses, disabled: disabled, children: [typeof chain.logo === 'string' ? (_jsx(ImageWithFallback, { src: chain.logo, width: 48, height: 48, alt: chain.name, className: imageClasses, fallbackClassName: "w-12 h-12 rounded-full text-lg font-bold opacity-90 group-hover:scale-105 transition-all duration-200", fallbackBgColor: "bg-n1-ww-main/10 dark:bg-n1-ww-main/20", fallbackTextColor: "text-n1-ww-main dark:text-n1-ww-main" })) : (_jsx("div", { className: imageClasses, children: chain.logo })), _jsx("span", { className: textClasses, children: chain.name })] }));
11
+ ? "opacity-50 grayscale brightness-150"
12
+ : "opacity-90 grayscale brightness-150 transition-all duration-200";
13
+ // Base button classes
14
+ var baseButtonClasses = "group rounded-lg flex items-center justify-between border p-4 bg-n1-ww-gray-900 transition-all duration-200";
15
+ // Conditional classes based on selection, disabled, and soon state
16
+ var buttonClasses = disabled
17
+ ? "".concat(baseButtonClasses, " border-n1-ww-border opacity-50 cursor-not-allowed")
18
+ : soon
19
+ ? "".concat(baseButtonClasses, " border-n1-ww-border cursor-not-allowed")
20
+ : selected
21
+ ? "".concat(baseButtonClasses, " border-n1-ww-border hover:border-n1-ww-main-400/50 hover:bg-n1-ww-gray-800 cursor-pointer")
22
+ : "".concat(baseButtonClasses, " border-n1-ww-border hover:border-n1-ww-main-400/50 hover:bg-n1-ww-gray-800 cursor-pointer");
23
+ return (_jsxs("button", { onClick: handleClick, className: buttonClasses, disabled: disabled, children: [_jsxs("div", { className: "flex items-center justify-start", children: [_jsx("div", { className: "flex items-center justify-center rounded-full bg-n1-ww-gray-650 mr-2 h-8 w-8", children: typeof chain.logo === "string" ? (_jsx(ImageWithFallback, { src: chain.logo, width: 48, height: 48, alt: chain.name, className: imageClasses, fallbackClassName: "w-12 h-12 rounded-full text-lg font-bold opacity-90 group-hover:scale-105 transition-all duration-200 brightness-150", fallbackBgColor: "bg-n1-ww-main/20", fallbackTextColor: "text-n1-ww-main" })) : (_jsx("div", { className: disabled ? "grayscale brightness-150 opacity-50" : "grayscale brightness-150", children: chain.logo })) }), _jsxs("div", { className: "flex flex-col items-start justify-center text-left", children: [_jsx("span", { className: "text-white font-medium text-sm", children: chain.name }), subtitle ? (_jsx("span", { className: "text-n1-ww-gray-100 font-light text-xs", children: subtitle })) : (_jsx("span", { className: "text-white font-light text-xs", children: chain.name }))] })] }), _jsx("div", { className: "flex items-center justify-center", children: soon ? (_jsx("span", { className: "px-2 py-1 rounded text-xs font-medium bg-n1-ww-main-950 text-n1-ww-main-700", children: "SOON" })) : selected ? (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("rect", { x: "0.5", y: "0.5", width: "15", height: "15", rx: "7.5", stroke: "#FF441A" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12.3333 5.52227L7.48168 11.4007L7.1762 11.7708L6.83012 11.4354L4 8.69212L4.61955 8.10046L7.10358 10.5083L11.6497 5L12.3333 5.52227Z", fill: "#FF441A", stroke: "#FF441A", strokeWidth: "0.5" })] })) : (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "transition-opacity duration-200 group-hover:opacity-80", children: [_jsx("circle", { cx: "8", cy: "8", r: "8", fill: "black" }), _jsx("circle", { cx: "8", cy: "8", r: "7.5", stroke: "white", strokeOpacity: "0.2" })] })) })] }));
21
24
  }
22
25
  //# sourceMappingURL=ChainButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChainButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/ChainButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAQxD,MAAM,UAAU,WAAW,CAAC,EAIT;QAHjB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GACf,8LAA8L,CAAC;IACjM,IAAM,cAAc,GAClB,gGAAgG,CAAC;IACnG,IAAM,eAAe,GAAG,+BAA+B,CAAC;IAExD,IAAM,aAAa,GAAG,UAAG,WAAW,cAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAE,CAAC;IAEtF,IAAM,YAAY,GAAG,QAAQ;QAC3B,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,gGAAgG,CAAC;IAErG,IAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,+DAA+D;QACjE,CAAC,CAAC,2JAA2J,CAAC;IAEhK,OAAO,CACL,kBAAQ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,aACvE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAChC,KAAC,iBAAiB,IAChB,GAAG,EAAE,KAAK,CAAC,IAAI,EACf,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,GAAG,EAAE,KAAK,CAAC,IAAI,EACf,SAAS,EAAE,YAAY,EACvB,iBAAiB,EAAC,uGAAuG,EACzH,eAAe,EAAC,wCAAwC,EACxD,iBAAiB,EAAC,sCAAsC,GACxD,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAE,YAAY,YAAG,KAAK,CAAC,IAAI,GAAO,CACjD,EACD,eAAM,SAAS,EAAE,WAAW,YAAG,KAAK,CAAC,IAAI,GAAQ,IAC1C,CACV,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport { Chain } from '../types';\nimport { ImageWithFallback } from './ImageWithFallback';\n\ninterface ChainButtonProps {\n chain: Chain;\n onClick: (chainId: string) => void;\n disabled?: boolean;\n}\n\nexport function ChainButton({\n chain,\n onClick,\n disabled = false,\n}: ChainButtonProps) {\n const handleClick = () => {\n if (!disabled) {\n onClick(chain.id);\n }\n };\n\n const baseClasses =\n 'flex flex-col items-center justify-center p-6 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 border-2 border-n1-ww-gray-100 dark:border-n1-ww-gray-800 transition-all duration-200 group rounded-lg';\n const enabledClasses =\n 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-ww-gray-900';\n const disabledClasses = 'opacity-50 cursor-not-allowed';\n\n const buttonClasses = `${baseClasses} ${disabled ? disabledClasses : enabledClasses}`;\n\n const imageClasses = disabled\n ? 'opacity-50 grayscale'\n : 'opacity-90 grayscale group-hover:grayscale-0 group-hover:scale-105 transition-all duration-200';\n\n const textClasses = disabled\n ? 'mt-4 font-medium text-n1-ww-gray-400 dark:text-n1-ww-gray-500'\n : 'mt-4 font-medium text-n1-ww-gray-600 dark:text-n1-ww-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-ww-gray-50 transition-colors duration-200';\n\n return (\n <button onClick={handleClick} className={buttonClasses} disabled={disabled}>\n {typeof chain.logo === 'string' ? (\n <ImageWithFallback\n src={chain.logo}\n width={48}\n height={48}\n alt={chain.name}\n className={imageClasses}\n fallbackClassName=\"w-12 h-12 rounded-full text-lg font-bold opacity-90 group-hover:scale-105 transition-all duration-200\"\n fallbackBgColor=\"bg-n1-ww-main/10 dark:bg-n1-ww-main/20\"\n fallbackTextColor=\"text-n1-ww-main dark:text-n1-ww-main\"\n />\n ) : (\n <div className={imageClasses}>{chain.logo}</div>\n )}\n <span className={textClasses}>{chain.name}</span>\n </button>\n );\n}\n"]}
1
+ {"version":3,"file":"ChainButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/ChainButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Chain } from \"../types\";\nimport { ImageWithFallback } from \"./ImageWithFallback\";\n\ninterface ChainButtonProps {\n chain: Chain;\n onClick: (chainId: string) => void;\n disabled?: boolean;\n selected?: boolean;\n soon?: boolean;\n subtitle?: string;\n}\n\nexport function ChainButton({\n chain,\n onClick,\n disabled = false,\n selected = false,\n soon = false,\n subtitle,\n}: ChainButtonProps) {\n const handleClick = () => {\n if (!disabled && !soon) {\n onClick(chain.id);\n }\n };\n \n const imageClasses = disabled\n ? \"opacity-50 grayscale brightness-150\"\n : \"opacity-90 grayscale brightness-150 transition-all duration-200\";\n\n // Base button classes\n const baseButtonClasses = \"group rounded-lg flex items-center justify-between border p-4 bg-n1-ww-gray-900 transition-all duration-200\";\n \n // Conditional classes based on selection, disabled, and soon state\n const buttonClasses = disabled\n ? `${baseButtonClasses} border-n1-ww-border opacity-50 cursor-not-allowed`\n : soon\n ? `${baseButtonClasses} border-n1-ww-border cursor-not-allowed`\n : selected\n ? `${baseButtonClasses} border-n1-ww-border hover:border-n1-ww-main-400/50 hover:bg-n1-ww-gray-800 cursor-pointer`\n : `${baseButtonClasses} border-n1-ww-border hover:border-n1-ww-main-400/50 hover:bg-n1-ww-gray-800 cursor-pointer`;\n\n return (\n <button\n onClick={handleClick}\n className={buttonClasses}\n disabled={disabled}\n >\n <div className=\"flex items-center justify-start\">\n <div className=\"flex items-center justify-center rounded-full bg-n1-ww-gray-650 mr-2 h-8 w-8\">\n {typeof chain.logo === \"string\" ? (\n <ImageWithFallback\n src={chain.logo}\n width={48}\n height={48}\n alt={chain.name}\n className={imageClasses}\n fallbackClassName=\"w-12 h-12 rounded-full text-lg font-bold opacity-90 group-hover:scale-105 transition-all duration-200 brightness-150\"\n fallbackBgColor=\"bg-n1-ww-main/20\"\n fallbackTextColor=\"text-n1-ww-main\"\n />\n ) : (\n <div className={disabled ? \"grayscale brightness-150 opacity-50\" : \"grayscale brightness-150\"}>{chain.logo}</div>\n )}\n </div>\n <div className=\"flex flex-col items-start justify-center text-left\">\n <span className=\"text-white font-medium text-sm\">{chain.name}</span>\n {subtitle ? (\n <span className=\"text-n1-ww-gray-100 font-light text-xs\">{subtitle}</span>\n ) : (\n <span className=\"text-white font-light text-xs\">{chain.name}</span>\n )}\n </div>\n </div>\n <div className=\"flex items-center justify-center\">\n {soon ? (\n <span className=\"px-2 py-1 rounded text-xs font-medium bg-n1-ww-main-950 text-n1-ww-main-700\">\n SOON\n </span>\n ) : selected ? (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"15\" height=\"15\" rx=\"7.5\" stroke=\"#FF441A\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M12.3333 5.52227L7.48168 11.4007L7.1762 11.7708L6.83012 11.4354L4 8.69212L4.61955 8.10046L7.10358 10.5083L11.6497 5L12.3333 5.52227Z\" fill=\"#FF441A\" stroke=\"#FF441A\" strokeWidth=\"0.5\"/>\n </svg>\n ) : (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className=\"transition-opacity duration-200 group-hover:opacity-80\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"black\"/>\n <circle cx=\"8\" cy=\"8\" r=\"7.5\" stroke=\"white\" strokeOpacity=\"0.2\"/>\n </svg>\n )}\n </div>\n </button>\n );\n}\n"]}
@@ -3,6 +3,7 @@ interface EVMChainsButtonProps {
3
3
  chain: Chain;
4
4
  onClick: (chainId: string) => void;
5
5
  disabled?: boolean;
6
+ selected?: boolean;
6
7
  }
7
- export declare function EVMChainsButton({ chain, onClick, disabled, }: EVMChainsButtonProps): JSX.Element;
8
+ export declare function EVMChainsButton({ chain, onClick, disabled, selected, }: EVMChainsButtonProps): import("react/jsx-runtime").JSX.Element;
8
9
  export {};
@@ -1,19 +1,21 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { EVMChainsGroup } from '../../../components/logos';
3
3
  export function EVMChainsButton(_a) {
4
- var chain = _a.chain, onClick = _a.onClick, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
4
+ var chain = _a.chain, onClick = _a.onClick, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.selected, selected = _c === void 0 ? false : _c;
5
5
  var handleClick = function () {
6
6
  if (!disabled) {
7
7
  onClick(chain.id);
8
8
  }
9
9
  };
10
- var baseClasses = 'flex flex-col items-center justify-center p-6 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 border-2 border-n1-ww-gray-100 dark:border-n1-ww-gray-800 transition-all duration-200 group rounded-lg';
11
- var enabledClasses = 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-ww-gray-900';
12
- var disabledClasses = 'opacity-50 cursor-not-allowed';
13
- var buttonClasses = "".concat(baseClasses, " ").concat(disabled ? disabledClasses : enabledClasses);
14
- var textClasses = disabled
15
- ? 'mt-4 font-medium text-n1-ww-gray-400 dark:text-n1-ww-gray-500'
16
- : 'mt-4 font-medium text-n1-ww-gray-600 dark:text-n1-ww-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-ww-gray-50 transition-colors duration-200';
17
- return (_jsxs("button", { onClick: handleClick, className: buttonClasses, disabled: disabled, children: [_jsx(EVMChainsGroup, { size: 32, className: disabled ? 'opacity-50 grayscale' : 'opacity-90' }), _jsx("span", { className: textClasses, children: chain.name })] }));
10
+ var logoClasses = disabled
11
+ ? "opacity-50 grayscale"
12
+ : "opacity-90 grayscale group-hover:grayscale-0 group-hover:scale-105 transition-all duration-200";
13
+ // Base button classes
14
+ var baseButtonClasses = "group rounded-lg flex items-center justify-between border p-4 bg-n1-ww-gray-900 transition-all duration-200";
15
+ // Conditional classes based on selection and disabled state
16
+ var buttonClasses = disabled
17
+ ? "".concat(baseButtonClasses, " border-n1-ww-border opacity-50 cursor-not-allowed")
18
+ : "".concat(baseButtonClasses, " border-n1-ww-border hover:border-n1-ww-main-400/50 hover:bg-n1-ww-gray-800 cursor-pointer");
19
+ return (_jsxs("button", { onClick: handleClick, className: buttonClasses, disabled: disabled, children: [_jsxs("div", { className: "flex items-center justify-start", children: [_jsx("div", { className: "flex items-center justify-center rounded-full bg-n1-ww-gray-650 mr-2 h-8 w-8", children: _jsx("div", { className: logoClasses, children: _jsx(EVMChainsGroup, { size: 32 }) }) }), _jsxs("div", { className: "flex flex-col items-start justify-center text-left", children: [_jsx("span", { className: "text-white font-medium text-sm", children: chain.name }), _jsx("span", { className: "text-white font-light text-xs", children: chain.name })] })] }), _jsx("div", { className: "flex items-center justify-center", children: selected ? (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("rect", { x: "0.5", y: "0.5", width: "15", height: "15", rx: "7.5", stroke: "#FF441A" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12.3333 5.52227L7.48168 11.4007L7.1762 11.7708L6.83012 11.4354L4 8.69212L4.61955 8.10046L7.10358 10.5083L11.6497 5L12.3333 5.52227Z", fill: "#FF441A", stroke: "#FF441A", strokeWidth: "0.5" })] })) : (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "transition-opacity duration-200 group-hover:opacity-80", children: [_jsx("circle", { cx: "8", cy: "8", r: "8", fill: "black" }), _jsx("circle", { cx: "8", cy: "8", r: "7.5", stroke: "white", strokeOpacity: "0.2" })] })) })] }));
18
20
  }
19
21
  //# sourceMappingURL=EVMChainsButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EVMChainsButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/EVMChainsButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D,MAAM,UAAU,eAAe,CAAC,EAIT;QAHrB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GACf,8LAA8L,CAAC;IACjM,IAAM,cAAc,GAClB,gGAAgG,CAAC;IACnG,IAAM,eAAe,GAAG,+BAA+B,CAAC;IAExD,IAAM,aAAa,GAAG,UAAG,WAAW,cAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAE,CAAC;IAEtF,IAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,+DAA+D;QACjE,CAAC,CAAC,2JAA2J,CAAC;IAEhK,OAAO,CACL,kBAAQ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,aACxE,KAAC,cAAc,IACb,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAY,GAC3D,EACF,eAAM,SAAS,EAAE,WAAW,YAAG,KAAK,CAAC,IAAI,GAAQ,IAC1C,CACV,CAAC;AACJ,CAAC","sourcesContent":["import { Chain } from '../types';\nimport { EVMChainsGroup } from '../../../components/logos';\n\ninterface EVMChainsButtonProps {\n chain: Chain;\n onClick: (chainId: string) => void;\n disabled?: boolean;\n}\n\nexport function EVMChainsButton({\n chain,\n onClick,\n disabled = false,\n}: EVMChainsButtonProps) {\n const handleClick = () => {\n if (!disabled) {\n onClick(chain.id);\n }\n };\n\n const baseClasses =\n 'flex flex-col items-center justify-center p-6 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 border-2 border-n1-ww-gray-100 dark:border-n1-ww-gray-800 transition-all duration-200 group rounded-lg';\n const enabledClasses =\n 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-ww-gray-900';\n const disabledClasses = 'opacity-50 cursor-not-allowed';\n\n const buttonClasses = `${baseClasses} ${disabled ? disabledClasses : enabledClasses}`;\n\n const textClasses = disabled\n ? 'mt-4 font-medium text-n1-ww-gray-400 dark:text-n1-ww-gray-500'\n : 'mt-4 font-medium text-n1-ww-gray-600 dark:text-n1-ww-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-ww-gray-50 transition-colors duration-200';\n\n return (\n <button onClick={handleClick} className={buttonClasses} disabled={disabled}>\n <EVMChainsGroup\n size={32}\n className={disabled ? 'opacity-50 grayscale' : 'opacity-90'}\n />\n <span className={textClasses}>{chain.name}</span>\n </button>\n );\n}\n"]}
1
+ {"version":3,"file":"EVMChainsButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/EVMChainsButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAS3D,MAAM,UAAU,eAAe,CAAC,EAKT;QAJrB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,gGAAgG,CAAC;IAErG,sBAAsB;IACtB,IAAM,iBAAiB,GAAG,6GAA6G,CAAC;IAExI,4DAA4D;IAC5D,IAAM,aAAa,GAAG,QAAQ;QAC5B,CAAC,CAAC,UAAG,iBAAiB,uDAAoD;QAC1E,CAAC,CAAC,UAAG,iBAAiB,+FAA4F,CAAC;IAErH,OAAO,CACL,kBACE,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,QAAQ,aAElB,eAAK,SAAS,EAAC,iCAAiC,aAC9C,cAAK,SAAS,EAAC,8EAA8E,YAC3F,cAAK,SAAS,EAAE,WAAW,YACzB,KAAC,cAAc,IAAC,IAAI,EAAE,EAAE,GAAI,GACxB,GACF,EACN,eAAK,SAAS,EAAC,oDAAoD,aACjE,eAAM,SAAS,EAAE,gCAAgC,YAAG,KAAK,CAAC,IAAI,GAAQ,EACtE,eAAM,SAAS,EAAE,+BAA+B,YAAG,KAAK,CAAC,IAAI,GAAQ,IACjE,IACF,EACN,cAAK,SAAS,EAAC,kCAAkC,YAC9C,QAAQ,CAAC,CAAC,CAAC,CACV,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,aAC5F,eAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,KAAK,EAAC,MAAM,EAAC,SAAS,GAAE,EACxE,eAAM,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,EAAC,sIAAsI,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAC,KAAK,GAAE,IACpO,CACP,CAAC,CAAC,CAAC,CACF,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAC,SAAS,EAAC,wDAAwD,aAC/J,iBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,OAAO,GAAE,EAC1C,iBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,KAAK,GAAE,IAC9D,CACP,GACG,IACC,CACV,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport { Chain } from '../types';\nimport { EVMChainsGroup } from '../../../components/logos';\n\ninterface EVMChainsButtonProps {\n chain: Chain;\n onClick: (chainId: string) => void;\n disabled?: boolean;\n selected?: boolean;\n}\n\nexport function EVMChainsButton({\n chain,\n onClick,\n disabled = false,\n selected = false,\n}: EVMChainsButtonProps) {\n const handleClick = () => {\n if (!disabled) {\n onClick(chain.id);\n }\n };\n\n const logoClasses = disabled\n ? \"opacity-50 grayscale\"\n : \"opacity-90 grayscale group-hover:grayscale-0 group-hover:scale-105 transition-all duration-200\";\n\n // Base button classes\n const baseButtonClasses = \"group rounded-lg flex items-center justify-between border p-4 bg-n1-ww-gray-900 transition-all duration-200\";\n \n // Conditional classes based on selection and disabled state\n const buttonClasses = disabled\n ? `${baseButtonClasses} border-n1-ww-border opacity-50 cursor-not-allowed`\n : `${baseButtonClasses} border-n1-ww-border hover:border-n1-ww-main-400/50 hover:bg-n1-ww-gray-800 cursor-pointer`;\n\n return (\n <button\n onClick={handleClick}\n className={buttonClasses}\n disabled={disabled}\n >\n <div className=\"flex items-center justify-start\">\n <div className=\"flex items-center justify-center rounded-full bg-n1-ww-gray-650 mr-2 h-8 w-8\">\n <div className={logoClasses}>\n <EVMChainsGroup size={32} />\n </div>\n </div>\n <div className=\"flex flex-col items-start justify-center text-left\">\n <span className={\"text-white font-medium text-sm\"}>{chain.name}</span>\n <span className={\"text-white font-light text-xs\"}>{chain.name}</span>\n </div>\n </div>\n <div className=\"flex items-center justify-center\">\n {selected ? (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"15\" height=\"15\" rx=\"7.5\" stroke=\"#FF441A\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M12.3333 5.52227L7.48168 11.4007L7.1762 11.7708L6.83012 11.4354L4 8.69212L4.61955 8.10046L7.10358 10.5083L11.6497 5L12.3333 5.52227Z\" fill=\"#FF441A\" stroke=\"#FF441A\" strokeWidth=\"0.5\"/>\n </svg>\n ) : (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className=\"transition-opacity duration-200 group-hover:opacity-80\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" fill=\"black\"/>\n <circle cx=\"8\" cy=\"8\" r=\"7.5\" stroke=\"white\" strokeOpacity=\"0.2\"/>\n </svg>\n )}\n </div>\n </button>\n );\n}\n"]}
@@ -1,10 +1,12 @@
1
1
  import React from 'react';
2
2
  interface HeaderProps {
3
+ title?: string;
3
4
  onClose?: () => void;
5
+ onBack?: () => void;
4
6
  }
5
7
  /**
6
8
  * Header component for the Nord Flow modal
7
- * Contains the logo and close button
9
+ * Contains the "Bridge" text and close button
8
10
  */
9
11
  export declare const Header: React.FC<HeaderProps>;
10
12
  export {};
@@ -1,11 +1,45 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import Logo from '../../../components/Logo';
2
+ import { useCallback } from 'react';
3
+ import { useN1WalletContext, useN1WalletInternalContext } from '../../../Provider/hooks';
4
+ import { shortenAddress } from '../../../utils/shortenString';
5
+ var WalletConnectionBadge = function () {
6
+ var address = useN1WalletContext().address;
7
+ var dynamicWallet = useN1WalletInternalContext().dynamicWallet;
8
+ var connectionAddress = (dynamicWallet === null || dynamicWallet === void 0 ? void 0 : dynamicWallet.address) || address;
9
+ var handleShareClick = useCallback(function () {
10
+ var _a;
11
+ if (!connectionAddress || typeof navigator === 'undefined')
12
+ return;
13
+ var nav = navigator;
14
+ if (typeof nav.share === 'function') {
15
+ nav.share({ title: 'Wallet address', text: connectionAddress }).catch(function () { });
16
+ return;
17
+ }
18
+ if ((_a = nav.clipboard) === null || _a === void 0 ? void 0 : _a.writeText) {
19
+ nav.clipboard.writeText(connectionAddress).catch(function () { });
20
+ }
21
+ }, [connectionAddress]);
22
+ if (!connectionAddress) {
23
+ return null;
24
+ }
25
+ return (_jsxs("div", { className: "inline-flex items-center gap-2 text-[12px] leading-none text-n1-ww-icon", children: [_jsx("span", { className: "flex h-2 w-2 flex-shrink-0 rounded-full bg-n1-ww-accent-neon", "aria-label": "Wallet connected" }), _jsx("span", { className: "underline underline-offset-2 decoration-white/40 tracking-[-0.2px]", children: shortenAddress(connectionAddress) }), _jsx("button", { type: "button", onClick: handleShareClick, className: "flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors", "aria-label": "Share wallet address", children: _jsxs("svg", { className: "h-full w-full", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { d: "M5.93066 8.06944L12.3473 1.65277", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" }), _jsx("path", { d: "M8.06958 1.65277H12.3474V5.93055", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" }), _jsx("path", { d: "M10.7431 7.80207V12.3472H1.65283V3.25693H6.19797", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" })] }) })] }));
26
+ };
3
27
  /**
4
28
  * Header component for the Nord Flow modal
5
- * Contains the logo and close button
29
+ * Contains the "Bridge" text and close button
6
30
  */
7
31
  export var Header = function (_a) {
8
- var onClose = _a.onClose;
9
- return (_jsx("div", { className: "p-6 border-b border-n1-ww-gray-200 dark:border-n1-ww-gray-800 w-full max-w-2xl mx-auto", children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "flex items-center gap-3", children: _jsx("div", { className: "w-6 h-6 text-n1-ww-gray-50", children: _jsx(Logo, { size: 24 }) }) }), _jsx("button", { onClick: function () { return onClose && onClose(); }, className: "\n text-neutral-400 hover:text-n1-ww-gray-900 dark:hover:text-white \n transition-colors duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]\n h-10 w-10 rounded-full hover:bg-n1-ww-gray-100 dark:hover:bg-n1-ww-gray-800\n flex items-center justify-center\n ", children: _jsx("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M6 18L18 6M6 6l12 12" }) }) })] }) }));
32
+ var onClose = _a.onClose, onBack = _a.onBack, _b = _a.title, title = _b === void 0 ? 'Bridge' : _b;
33
+ return (_jsxs("div", { className: "w-full px-4 pt-4", children: [_jsxs("div", { className: "flex items-center h-4 gap-2", children: [_jsxs("div", { className: "flex flex-1 items-center min-w-0", children: [onBack && (_jsx("button", { type: "button", onClick: onBack, className: "flex h-full items-center justify-center cursor-pointer text-n1-ww-icon hover:text-white pr-4", "aria-label": "Go back", children: _jsx("svg", { className: "h-[10px] w-[6px]", width: "6", height: "10", viewBox: "0 0 6 10", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M5.26316 10L0 5L5.26316 0L6 0.7125L1.48684 5L6 9.2875L5.26316 10Z" }) }) })), _jsx("div", { className: " text-[12px] text-n1-ww-icon opacity-90 tracking-[-0.24px] leading-none", children: title })] }), _jsx("div", { className: "flex flex-1 items-center justify-center px-2", children: _jsx(WalletConnectionBadge, {}) }), _jsx("div", { className: "flex flex-1 justify-end", children: _jsx("button", { type: "button", onClick: function (event) {
34
+ var _a;
35
+ event.preventDefault();
36
+ event.stopPropagation();
37
+ if ((_a = event.nativeEvent) === null || _a === void 0 ? void 0 : _a.stopImmediatePropagation) {
38
+ event.nativeEvent.stopImmediatePropagation();
39
+ }
40
+ if (onClose) {
41
+ onClose();
42
+ }
43
+ }, className: "flex h-10 w-10 items-center justify-center cursor-pointer text-n1-ww-icon hover:text-white", children: _jsx("svg", { className: "h-[10px] w-[10px]", viewBox: "0 0 10 10", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M5.88381 5L10 0.883812L9.11619 0L5 4.11619L0.883937 0L0 0.883812L4.11619 5L0 9.11619L0.883937 10L5 5.88381L9.11619 10L10 9.11619L5.88381 5Z" }) }) }) })] }), _jsx("div", { className: "h-4 relative mt-0 w-full", children: _jsx("div", { className: "absolute bottom-0 left-0 right-0 top-[-1px] border-b border-n1-ww-border" }) })] }));
10
44
  };
11
45
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/Header.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAM5C;;;GAGG;AACH,MAAM,CAAC,IAAM,MAAM,GAA0B,UAAC,EAAW;QAAT,OAAO,aAAA;IACrD,OAAO,CACL,cAAK,SAAS,EAAC,wFAAwF,YACrG,eAAK,SAAS,EAAC,mCAAmC,aAChD,cAAK,SAAS,EAAC,yBAAyB,YACtC,cAAK,SAAS,EAAC,4BAA4B,YAEzC,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACd,GACF,EACN,iBACE,OAAO,EAAE,cAAM,OAAA,OAAO,IAAI,OAAO,EAAE,EAApB,CAAoB,EACnC,SAAS,EAAE,kTAKV,YAED,cACE,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B,YAElC,eACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAC,GAAG,EACf,CAAC,EAAC,sBAAsB,GACxB,GACE,GACC,IACL,GACF,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport Logo from '../../../components/Logo';\n\ninterface HeaderProps {\n onClose?: () => void;\n}\n\n/**\n * Header component for the Nord Flow modal\n * Contains the logo and close button\n */\nexport const Header: React.FC<HeaderProps> = ({ onClose }) => {\n return (\n <div className=\"p-6 border-b border-n1-ww-gray-200 dark:border-n1-ww-gray-800 w-full max-w-2xl mx-auto\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-6 h-6 text-n1-ww-gray-50\">\n {/* Use Logo component with fallback */}\n <Logo size={24} />\n </div>\n </div>\n <button\n onClick={() => onClose && onClose()}\n className={`\n text-neutral-400 hover:text-n1-ww-gray-900 dark:hover:text-white \n transition-colors duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]\n h-10 w-10 rounded-full hover:bg-n1-ww-gray-100 dark:hover:bg-n1-ww-gray-800\n flex items-center justify-center\n `}\n >\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n </div>\n );\n}; "]}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/Header.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useCallback } from 'react';\nimport { useN1WalletContext, useN1WalletInternalContext } from '../../../Provider/hooks';\nimport { shortenAddress } from '../../../utils/shortenString';\n\nconst WalletConnectionBadge: React.FC = () => {\n const { address } = useN1WalletContext();\n const { dynamicWallet } = useN1WalletInternalContext();\n const connectionAddress = dynamicWallet?.address || address;\n\n const handleShareClick = useCallback(() => {\n if (!connectionAddress || typeof navigator === 'undefined') return;\n\n const nav = navigator as Navigator & {\n share?: (data: ShareData) => Promise<void>;\n };\n\n if (typeof nav.share === 'function') {\n nav.share({ title: 'Wallet address', text: connectionAddress }).catch(() => {});\n return;\n }\n\n if (nav.clipboard?.writeText) {\n nav.clipboard.writeText(connectionAddress).catch(() => {});\n }\n }, [connectionAddress]);\n\n if (!connectionAddress) {\n return null;\n }\n\n return (\n <div className=\"inline-flex items-center gap-2 text-[12px] leading-none text-n1-ww-icon\">\n <span\n className=\"flex h-2 w-2 flex-shrink-0 rounded-full bg-n1-ww-accent-neon\"\n aria-label=\"Wallet connected\"\n />\n <span className=\"underline underline-offset-2 decoration-white/40 tracking-[-0.2px]\">\n {shortenAddress(connectionAddress)}\n </span>\n <button\n type=\"button\"\n onClick={handleShareClick}\n className=\"flex h-4 w-4 flex-shrink-0 items-center justify-center text-n1-ww-main hover:text-white transition-colors\"\n aria-label=\"Share wallet address\"\n >\n <svg\n className=\"h-full w-full\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.93066 8.06944L12.3473 1.65277\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M8.06958 1.65277H12.3474V5.93055\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M10.7431 7.80207V12.3472H1.65283V3.25693H6.19797\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n </div>\n );\n};\n\ninterface HeaderProps {\n title?: string;\n onClose?: () => void;\n onBack?: () => void;\n}\n\n/**\n * Header component for the Nord Flow modal\n * Contains the \"Bridge\" text and close button\n */\nexport const Header: React.FC<HeaderProps> = ({\n onClose,\n onBack,\n title = 'Bridge',\n}) => {\n return (\n <div className=\"w-full px-4 pt-4\">\n <div className=\"flex items-center h-4 gap-2\">\n <div className=\"flex flex-1 items-center min-w-0\">\n {onBack && (\n <button\n type=\"button\"\n onClick={onBack}\n className=\"flex h-full items-center justify-center cursor-pointer text-n1-ww-icon hover:text-white pr-4\" \n aria-label=\"Go back\"\n >\n <svg\n className=\"h-[10px] w-[6px]\"\n width=\"6\"\n height=\"10\"\n viewBox=\"0 0 6 10\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M5.26316 10L0 5L5.26316 0L6 0.7125L1.48684 5L6 9.2875L5.26316 10Z\" />\n </svg>\n </button>\n )}\n <div className={\" text-[12px] text-n1-ww-icon opacity-90 tracking-[-0.24px] leading-none\"}>\n {title}\n </div>\n </div>\n <div className=\"flex flex-1 items-center justify-center px-2\">\n <WalletConnectionBadge />\n </div>\n <div className=\"flex flex-1 justify-end\">\n <button\n type=\"button\"\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n if (event.nativeEvent?.stopImmediatePropagation) {\n event.nativeEvent.stopImmediatePropagation();\n }\n if (onClose) {\n onClose();\n }\n }}\n className=\"flex h-10 w-10 items-center justify-center cursor-pointer text-n1-ww-icon hover:text-white\"\n >\n <svg\n className=\"h-[10px] w-[10px]\"\n viewBox=\"0 0 10 10\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M5.88381 5L10 0.883812L9.11619 0L5 4.11619L0.883937 0L0 0.883812L4.11619 5L0 9.11619L0.883937 10L5 5.88381L9.11619 10L10 9.11619L5.88381 5Z\" />\n </svg>\n </button>\n </div>\n </div>\n <div className=\"h-4 relative mt-0 w-full\">\n <div className=\"absolute bottom-0 left-0 right-0 top-[-1px] border-b border-n1-ww-border\"></div>\n </div>\n </div>\n );\n}; \n"]}
@@ -4,7 +4,7 @@ import { useState } from 'react';
4
4
  * A component that renders an image with a fallback div when the image is not available
5
5
  */
6
6
  export var ImageWithFallback = function (_a) {
7
- var src = _a.src, alt = _a.alt, _b = _a.width, width = _b === void 0 ? 'auto' : _b, _c = _a.height, height = _c === void 0 ? 'auto' : _c, _d = _a.className, className = _d === void 0 ? '' : _d, _e = _a.fallbackClassName, fallbackClassName = _e === void 0 ? '' : _e, fallbackText = _a.fallbackText, _f = _a.fallbackBgColor, fallbackBgColor = _f === void 0 ? 'bg-n1-ww-gray-200 dark:bg-n1-ww-gray-800' : _f, _g = _a.fallbackTextColor, fallbackTextColor = _g === void 0 ? 'text-n1-ww-gray-500 dark:text-n1-ww-gray-400' : _g;
7
+ var src = _a.src, alt = _a.alt, _b = _a.width, width = _b === void 0 ? 'auto' : _b, _c = _a.height, height = _c === void 0 ? 'auto' : _c, _d = _a.className, className = _d === void 0 ? '' : _d, _e = _a.fallbackClassName, fallbackClassName = _e === void 0 ? '' : _e, fallbackText = _a.fallbackText, _f = _a.fallbackBgColor, fallbackBgColor = _f === void 0 ? 'bg-n1-ww-gray-800' : _f, _g = _a.fallbackTextColor, fallbackTextColor = _g === void 0 ? 'text-n1-ww-gray-400' : _g;
8
8
  var _h = useState(false), imageError = _h[0], setImageError = _h[1];
9
9
  // Get initials from alt text for fallback
10
10
  var getInitials = function (text) {
@@ -1 +1 @@
1
- {"version":3,"file":"ImageWithFallback.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/ImageWithFallback.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAcxC;;GAEG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAqC,UAAC,EAUnE;QATC,GAAG,SAAA,EACH,GAAG,SAAA,EACH,aAAc,EAAd,KAAK,mBAAG,MAAM,KAAA,EACd,cAAe,EAAf,MAAM,mBAAG,MAAM,KAAA,EACf,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,yBAAsB,EAAtB,iBAAiB,mBAAG,EAAE,KAAA,EACtB,YAAY,kBAAA,EACZ,uBAA4D,EAA5D,eAAe,mBAAG,0CAA0C,KAAA,EAC5D,yBAAkE,EAAlE,iBAAiB,mBAAG,8CAA8C,KAAA;IAE5D,IAAA,KAA8B,QAAQ,CAAC,KAAK,CAAC,EAA5C,UAAU,QAAA,EAAE,aAAa,QAAmB,CAAC;IAEpD,0CAA0C;IAC1C,IAAM,WAAW,GAAG,UAAC,IAAY;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI;aACR,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,CAAC,CAAC,EAAP,CAAO,CAAC;aACtB,IAAI,CAAC,EAAE,CAAC;aACR,WAAW,EAAE;aACb,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG;QAClB,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,sBAAsB;QACtB,OAAO,CACL,cACE,SAAS,EAAE,2CAAoC,eAAe,cAAI,iBAAiB,cAAI,iBAAiB,CAAE,EAC1G,KAAK,EAAE;gBACL,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAG,KAAK,OAAI,CAAC,CAAC,CAAC,KAAK;gBACvD,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAG,MAAM,OAAI,CAAC,CAAC,CAAC,MAAM;aAC5D,gBACW,GAAG,YAEd,YAAY,IAAI,WAAW,CAAC,GAAG,CAAC,GAC7B,CACP,CAAC;IACJ,CAAC;IAED,eAAe;IACf,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,GACpB,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useState } from 'react';\n\ninterface ImageWithFallbackProps {\n src: string;\n alt: string;\n width?: number | string;\n height?: number | string;\n className?: string;\n fallbackClassName?: string;\n fallbackText?: string;\n fallbackBgColor?: string;\n fallbackTextColor?: string;\n}\n\n/**\n * A component that renders an image with a fallback div when the image is not available\n */\nexport const ImageWithFallback: React.FC<ImageWithFallbackProps> = ({\n src,\n alt,\n width = 'auto',\n height = 'auto',\n className = '',\n fallbackClassName = '',\n fallbackText,\n fallbackBgColor = 'bg-n1-ww-gray-200 dark:bg-n1-ww-gray-800',\n fallbackTextColor = 'text-n1-ww-gray-500 dark:text-n1-ww-gray-400',\n}) => {\n const [imageError, setImageError] = useState(false);\n\n // Get initials from alt text for fallback\n const getInitials = (text: string) => {\n if (!text) return '';\n return text\n .split(' ')\n .map((word) => word[0])\n .join('')\n .toUpperCase()\n .substring(0, 2);\n };\n\n const handleError = () => {\n setImageError(true);\n };\n\n if (imageError || !src) {\n // Render fallback div\n return (\n <div\n className={`flex items-center justify-center ${fallbackBgColor} ${fallbackTextColor} ${fallbackClassName}`}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n }}\n aria-label={alt}\n >\n {fallbackText || getInitials(alt)}\n </div>\n );\n }\n\n // Render image\n return (\n <img\n src={src}\n alt={alt}\n width={width}\n height={height}\n className={className}\n onError={handleError}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"ImageWithFallback.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/ImageWithFallback.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAcxC;;GAEG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAqC,UAAC,EAUnE;QATC,GAAG,SAAA,EACH,GAAG,SAAA,EACH,aAAc,EAAd,KAAK,mBAAG,MAAM,KAAA,EACd,cAAe,EAAf,MAAM,mBAAG,MAAM,KAAA,EACf,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,yBAAsB,EAAtB,iBAAiB,mBAAG,EAAE,KAAA,EACtB,YAAY,kBAAA,EACZ,uBAAqC,EAArC,eAAe,mBAAG,mBAAmB,KAAA,EACrC,yBAAyC,EAAzC,iBAAiB,mBAAG,qBAAqB,KAAA;IAEnC,IAAA,KAA8B,QAAQ,CAAC,KAAK,CAAC,EAA5C,UAAU,QAAA,EAAE,aAAa,QAAmB,CAAC;IAEpD,0CAA0C;IAC1C,IAAM,WAAW,GAAG,UAAC,IAAY;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI;aACR,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,CAAC,CAAC,EAAP,CAAO,CAAC;aACtB,IAAI,CAAC,EAAE,CAAC;aACR,WAAW,EAAE;aACb,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG;QAClB,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,sBAAsB;QACtB,OAAO,CACL,cACE,SAAS,EAAE,2CAAoC,eAAe,cAAI,iBAAiB,cAAI,iBAAiB,CAAE,EAC1G,KAAK,EAAE;gBACL,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAG,KAAK,OAAI,CAAC,CAAC,CAAC,KAAK;gBACvD,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAG,MAAM,OAAI,CAAC,CAAC,CAAC,MAAM;aAC5D,gBACW,GAAG,YAEd,YAAY,IAAI,WAAW,CAAC,GAAG,CAAC,GAC7B,CACP,CAAC;IACJ,CAAC;IAED,eAAe;IACf,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,GACpB,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useState } from 'react';\n\ninterface ImageWithFallbackProps {\n src: string;\n alt: string;\n width?: number | string;\n height?: number | string;\n className?: string;\n fallbackClassName?: string;\n fallbackText?: string;\n fallbackBgColor?: string;\n fallbackTextColor?: string;\n}\n\n/**\n * A component that renders an image with a fallback div when the image is not available\n */\nexport const ImageWithFallback: React.FC<ImageWithFallbackProps> = ({\n src,\n alt,\n width = 'auto',\n height = 'auto',\n className = '',\n fallbackClassName = '',\n fallbackText,\n fallbackBgColor = 'bg-n1-ww-gray-800',\n fallbackTextColor = 'text-n1-ww-gray-400',\n}) => {\n const [imageError, setImageError] = useState(false);\n\n // Get initials from alt text for fallback\n const getInitials = (text: string) => {\n if (!text) return '';\n return text\n .split(' ')\n .map((word) => word[0])\n .join('')\n .toUpperCase()\n .substring(0, 2);\n };\n\n const handleError = () => {\n setImageError(true);\n };\n\n if (imageError || !src) {\n // Render fallback div\n return (\n <div\n className={`flex items-center justify-center ${fallbackBgColor} ${fallbackTextColor} ${fallbackClassName}`}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n }}\n aria-label={alt}\n >\n {fallbackText || getInitials(alt)}\n </div>\n );\n }\n\n // Render image\n return (\n <img\n src={src}\n alt={alt}\n width={width}\n height={height}\n className={className}\n onError={handleError}\n />\n );\n};\n"]}
@@ -4,5 +4,5 @@ interface MoreButtonProps {
4
4
  onClick: (chainId: string) => void;
5
5
  disabled?: boolean;
6
6
  }
7
- export declare function MoreButton({ chain, onClick, disabled, }: MoreButtonProps): JSX.Element;
7
+ export declare function MoreButton({ chain, onClick, disabled, }: MoreButtonProps): import("react/jsx-runtime").JSX.Element;
8
8
  export {};
@@ -7,13 +7,13 @@ export function MoreButton(_a) {
7
7
  onClick(chain.id);
8
8
  }
9
9
  };
10
- var baseClasses = 'flex flex-col items-center justify-center p-6 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 border-2 border-n1-ww-gray-100 dark:border-n1-ww-gray-800 transition-all duration-200 group rounded-lg';
11
- var enabledClasses = 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-ww-gray-900';
10
+ var baseClasses = 'flex flex-col items-center justify-center p-6 bg-n1-ww-gray-950 border-2 border-n1-ww-border transition-all duration-200 group rounded-lg';
11
+ var enabledClasses = 'hover:border-n1-ww-border hover:bg-n1-ww-gray-900';
12
12
  var disabledClasses = 'opacity-50 cursor-not-allowed';
13
13
  var buttonClasses = "".concat(baseClasses, " ").concat(disabled ? disabledClasses : enabledClasses);
14
14
  var textClasses = disabled
15
- ? 'mt-4 font-medium text-n1-ww-gray-400 dark:text-n1-ww-gray-500'
16
- : 'mt-4 font-medium text-n1-ww-gray-600 dark:text-n1-ww-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-ww-gray-50 transition-colors duration-200';
15
+ ? 'mt-4 font-medium text-n1-ww-gray-500'
16
+ : 'mt-4 font-medium text-n1-ww-gray-400 group-hover:text-n1-ww-gray-50 transition-colors duration-200';
17
17
  return (_jsxs("button", { onClick: handleClick, className: buttonClasses, disabled: disabled, children: [_jsx(MoreChainsGroup, { size: 32, className: disabled ? 'opacity-50 grayscale' : 'opacity-90' }), _jsx("span", { className: textClasses, children: chain.name })] }));
18
18
  }
19
19
  //# sourceMappingURL=MoreButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MoreButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/MoreButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAQ5D,MAAM,UAAU,UAAU,CAAC,EAIT;QAHhB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GACf,8LAA8L,CAAC;IACjM,IAAM,cAAc,GAClB,gGAAgG,CAAC;IACnG,IAAM,eAAe,GAAG,+BAA+B,CAAC;IAExD,IAAM,aAAa,GAAG,UAAG,WAAW,cAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAE,CAAC;IAEtF,IAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,+DAA+D;QACjE,CAAC,CAAC,2JAA2J,CAAC;IAEhK,OAAO,CACL,kBAAQ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,aACxE,KAAC,eAAe,IACd,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAY,GAC3D,EACF,eAAM,SAAS,EAAE,WAAW,YAAG,KAAK,CAAC,IAAI,GAAQ,IAC1C,CACV,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport { Chain } from '../types';\nimport { MoreChainsGroup } from '../../../components/logos';\n\ninterface MoreButtonProps {\n chain: Chain;\n onClick: (chainId: string) => void;\n disabled?: boolean;\n}\n\nexport function MoreButton({\n chain,\n onClick,\n disabled = false,\n}: MoreButtonProps) {\n const handleClick = () => {\n if (!disabled) {\n onClick(chain.id);\n }\n };\n\n const baseClasses =\n 'flex flex-col items-center justify-center p-6 bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950 border-2 border-n1-ww-gray-100 dark:border-n1-ww-gray-800 transition-all duration-200 group rounded-lg';\n const enabledClasses =\n 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-ww-gray-900';\n const disabledClasses = 'opacity-50 cursor-not-allowed';\n\n const buttonClasses = `${baseClasses} ${disabled ? disabledClasses : enabledClasses}`;\n\n const textClasses = disabled\n ? 'mt-4 font-medium text-n1-ww-gray-400 dark:text-n1-ww-gray-500'\n : 'mt-4 font-medium text-n1-ww-gray-600 dark:text-n1-ww-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-ww-gray-50 transition-colors duration-200';\n\n return (\n <button onClick={handleClick} className={buttonClasses} disabled={disabled}>\n <MoreChainsGroup\n size={32}\n className={disabled ? 'opacity-50 grayscale' : 'opacity-90'}\n />\n <span className={textClasses}>{chain.name}</span>\n </button>\n );\n}\n"]}
1
+ {"version":3,"file":"MoreButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/MoreButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAQ5D,MAAM,UAAU,UAAU,CAAC,EAIT;QAHhB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GACf,2IAA2I,CAAC;IAC9I,IAAM,cAAc,GAClB,mDAAmD,CAAC;IACtD,IAAM,eAAe,GAAG,+BAA+B,CAAC;IAExD,IAAM,aAAa,GAAG,UAAG,WAAW,cAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAE,CAAC;IAEtF,IAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,sCAAsC;QACxC,CAAC,CAAC,oGAAoG,CAAC;IAEzG,OAAO,CACL,kBAAQ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,aACxE,KAAC,eAAe,IACd,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAY,GAC3D,EACF,eAAM,SAAS,EAAE,WAAW,YAAG,KAAK,CAAC,IAAI,GAAQ,IAC1C,CACV,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport { Chain } from '../types';\nimport { MoreChainsGroup } from '../../../components/logos';\n\ninterface MoreButtonProps {\n chain: Chain;\n onClick: (chainId: string) => void;\n disabled?: boolean;\n}\n\nexport function MoreButton({\n chain,\n onClick,\n disabled = false,\n}: MoreButtonProps) {\n const handleClick = () => {\n if (!disabled) {\n onClick(chain.id);\n }\n };\n\n const baseClasses =\n 'flex flex-col items-center justify-center p-6 bg-n1-ww-gray-950 border-2 border-n1-ww-border transition-all duration-200 group rounded-lg';\n const enabledClasses =\n 'hover:border-n1-ww-border hover:bg-n1-ww-gray-900';\n const disabledClasses = 'opacity-50 cursor-not-allowed';\n\n const buttonClasses = `${baseClasses} ${disabled ? disabledClasses : enabledClasses}`;\n\n const textClasses = disabled\n ? 'mt-4 font-medium text-n1-ww-gray-500'\n : 'mt-4 font-medium text-n1-ww-gray-400 group-hover:text-n1-ww-gray-50 transition-colors duration-200';\n\n return (\n <button onClick={handleClick} className={buttonClasses} disabled={disabled}>\n <MoreChainsGroup\n size={32}\n className={disabled ? 'opacity-50 grayscale' : 'opacity-90'}\n />\n <span className={textClasses}>{chain.name}</span>\n </button>\n );\n}\n"]}
@@ -9,5 +9,5 @@ interface TransactionTableProps {
9
9
  };
10
10
  onClose?: () => void;
11
11
  }
12
- export declare function TransactionTable({ tableValues, onClose, }: TransactionTableProps): JSX.Element;
12
+ export declare function TransactionTable({ tableValues, onClose, }: TransactionTableProps): import("react/jsx-runtime").JSX.Element;
13
13
  export {};
@@ -20,29 +20,29 @@ export function TransactionTable(_a) {
20
20
  if (key === 'status') {
21
21
  if (value.toLowerCase().includes('success') ||
22
22
  value.toLowerCase().includes('confirmed')) {
23
- return 'text-green-500 dark:text-emerald-500 font-medium';
23
+ return 'text-emerald-500 font-medium';
24
24
  }
25
25
  if (value.toLowerCase().includes('pending')) {
26
- return 'text-amber-500 dark:text-amber-400 font-medium';
26
+ return 'text-amber-400 font-medium';
27
27
  }
28
28
  if (value.toLowerCase().includes('fail') ||
29
29
  value.toLowerCase().includes('error')) {
30
- return 'text-red-500 dark:text-red-400 font-medium';
30
+ return 'text-red-400 font-medium';
31
31
  }
32
32
  }
33
33
  if (key === 'tx') {
34
- return 'text-n1-ww-gray-800 dark:text-n1-ww-gray-200 text-xs font-medium hover:text-n1-ww-main-600 dark:hover:text-n1-ww-main-400 transition-colors duration-200';
34
+ return 'text-n1-ww-gray-200 text-xs font-medium hover:text-n1-ww-main-400 transition-colors duration-200';
35
35
  }
36
36
  if (key === 'network') {
37
- return 'text-purple-600 dark:text-purple-400 font-medium';
37
+ return 'text-purple-400 font-medium';
38
38
  }
39
39
  if (key === 'from' || key === 'to') {
40
- return 'text-n1-ww-gray-800 dark:text-n1-ww-gray-200 text-xs font-medium hover:text-n1-ww-main-600 dark:hover:text-n1-ww-main-400 transition-colors duration-200';
40
+ return 'text-n1-ww-gray-200 text-xs font-medium hover:text-n1-ww-main-400 transition-colors duration-200';
41
41
  }
42
42
  if (key === 'amount') {
43
- return 'text-green-600 dark:text-emerald-500 font-semibold';
43
+ return 'text-emerald-500 font-semibold';
44
44
  }
45
- return 'text-n1-ww-gray-900 dark:text-n1-ww-gray-50 font-medium';
45
+ return 'text-n1-ww-gray-50 font-medium';
46
46
  };
47
47
  // Format display value with ellipsis for long text
48
48
  var getDisplayValue = function (key, value) {
@@ -74,10 +74,10 @@ export function TransactionTable(_a) {
74
74
  var indexB = fieldOrder.indexOf(keyB);
75
75
  return (indexA === -1 ? 999 : indexA) - (indexB === -1 ? 999 : indexB);
76
76
  });
77
- return (_jsxs("div", { className: "relative w-full h-full bg-n1-ww-gray-100 dark:bg-n1-ww-gray-950 border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 p-5 rounded-sm flex flex-col justify-center", children: [onClose && (_jsx("button", { onClick: onClose, className: "absolute top-3 right-2 text-n1-ww-gray-500 dark:text-n1-ww-gray-600 hover:text-n1-ww-gray-500 dark:hover:text-n1-ww-gray-300 transition-colors duration-200 focus:outline-none", "aria-label": "Close details", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-5 w-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })), _jsx("div", { className: "space-y-3 text-sm pt-5", children: sortedEntries.map(function (_a) {
77
+ return (_jsxs("div", { className: "relative w-full h-full bg-n1-ww-gray-950 border border-n1-ww-border p-5 rounded-sm flex flex-col justify-center", children: [onClose && (_jsx("button", { onClick: onClose, className: "absolute top-3 right-2 text-n1-ww-gray-600 hover:text-n1-ww-gray-300 transition-colors duration-200 focus:outline-none", "aria-label": "Close details", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-5 w-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })), _jsx("div", { className: "space-y-3 text-sm pt-5", children: sortedEntries.map(function (_a) {
78
78
  var key = _a[0], value = _a[1];
79
- return (_jsxs("div", { className: "flex items-center justify-between py-2 ", children: [_jsx("span", { className: "text-n1-ww-gray-500 dark:text-n1-ww-gray-400 font-medium min-w-[120px]", children: getLabel(key) }), _jsxs("div", { className: "relative transition-all duration-300 ".concat(value.visible ? 'opacity-100' : 'opacity-0', " max-w-[65%] text-right flex-1"), children: [(key === 'tx' || key === 'from') &&
80
- getExplorerLink(key, value.text) ? (_jsxs("a", { href: getExplorerLink(key, value.text), target: "_blank", rel: "noopener noreferrer", className: "".concat(getValueStyles(key, value.text), " break-all inline-block group"), title: value.text, children: [_jsx("span", { className: "underline hover:font-bold", children: getDisplayValue(key, value.text) }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-3 w-3 ml-1 inline-block opacity-50 group-hover:opacity-100 transition-opacity duration-200", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) })] })) : (_jsx("span", { className: "".concat(getValueStyles(key, value.text), " break-all inline-block"), title: value.text, children: value.text })), value.typing && (_jsx("span", { className: "inline-block ml-1 w-[2px] h-[14px] bg-n1-ww-main-500 dark:bg-n1-ww-main-400 n1-ww-animate-pulse" }))] })] }, key));
79
+ return (_jsxs("div", { className: "flex items-center justify-between py-2 ", children: [_jsx("span", { className: "text-n1-ww-gray-400 font-medium min-w-[120px]", children: getLabel(key) }), _jsxs("div", { className: "relative transition-all duration-300 ".concat(value.visible ? 'opacity-100' : 'opacity-0', " max-w-[65%] text-right flex-1"), children: [(key === 'tx' || key === 'from') &&
80
+ getExplorerLink(key, value.text) ? (_jsxs("a", { href: getExplorerLink(key, value.text), target: "_blank", rel: "noopener noreferrer", className: "".concat(getValueStyles(key, value.text), " break-all inline-block group"), title: value.text, children: [_jsx("span", { className: "underline hover:font-bold", children: getDisplayValue(key, value.text) }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-3 w-3 ml-1 inline-block opacity-50 group-hover:opacity-100 transition-opacity duration-200", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) })] })) : (_jsx("span", { className: "".concat(getValueStyles(key, value.text), " break-all inline-block"), title: value.text, children: value.text })), value.typing && (_jsx("span", { className: "inline-block ml-1 w-[2px] h-[14px] bg-n1-ww-main-400 n1-ww-animate-pulse" }))] })] }, key));
81
81
  }) })] }));
82
82
  }
83
83
  //# sourceMappingURL=TransactionTable.js.map