@aurora-is-near/intents-swap-widget 3.14.0-redesign.3 → 3.14.0-redesign.7

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 (132) hide show
  1. package/dist/components/BlockingError.js +15 -9
  2. package/dist/components/BlockingError.js.map +1 -1
  3. package/dist/components/CloseButton.js +1 -1
  4. package/dist/components/CloseButton.js.map +1 -1
  5. package/dist/config-Behl5hcc.js +2836 -0
  6. package/dist/config-Behl5hcc.js.map +1 -0
  7. package/dist/config.d.ts +1 -0
  8. package/dist/config.js +4 -6
  9. package/dist/config.js.map +1 -1
  10. package/dist/errors.js +1 -1
  11. package/dist/ext/alchemy/index.js +1 -1
  12. package/dist/ext/index.js +1 -1
  13. package/dist/features/BalanceRpcLoader/TokenBalanceLoader.js +1 -1
  14. package/dist/features/BalanceRpcLoader/index.js +1 -1
  15. package/dist/features/BalanceRpcLoader/useTokenBalanceRpc.js +1 -1
  16. package/dist/features/ChainsDropdown/index.js +1 -1
  17. package/dist/features/DepositMethodSwitcher.js +26 -29
  18. package/dist/features/DepositMethodSwitcher.js.map +1 -1
  19. package/dist/features/ErrorBoundary.js +1 -1
  20. package/dist/features/ExternalDeposit.js +13 -14
  21. package/dist/features/ExternalDeposit.js.map +1 -1
  22. package/dist/features/SendAddress/index.js +1 -1
  23. package/dist/features/SendAddress/useNotification.js +1 -1
  24. package/dist/features/SubmitButton/index.js +1 -1
  25. package/dist/features/SuccessScreen/SummaryItem.js +2 -2
  26. package/dist/features/SuccessScreen/SummaryItem.js.map +1 -1
  27. package/dist/features/SuccessScreen/index.js +20 -20
  28. package/dist/features/SuccessScreen/index.js.map +1 -1
  29. package/dist/features/SwapDirectionSwitcher.js +1 -1
  30. package/dist/features/SwapQuote/SwapQuote.js +1 -1
  31. package/dist/features/SwapQuote/index.js +1 -1
  32. package/dist/features/TokenInput/TokenInput.js +1 -1
  33. package/dist/features/TokenInput/TokenInputEmpty.js +1 -1
  34. package/dist/features/TokenInput/TokenInputSource.js +1 -1
  35. package/dist/features/TokenInput/TokenInputTarget.js +1 -1
  36. package/dist/features/TokenInput/WalletBalance.js +1 -1
  37. package/dist/features/TokenInput/hooks/index.js +1 -1
  38. package/dist/features/TokenInput/hooks/useTokenInputBalance.js +1 -1
  39. package/dist/features/TokenInput/index.js +1 -1
  40. package/dist/features/TokensList/TokenItem.js +1 -1
  41. package/dist/features/TokensList/TokensList.js +1 -1
  42. package/dist/features/TokensList/index.js +1 -1
  43. package/dist/features/TokensModal.js +1 -1
  44. package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js +13 -191
  45. package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js.map +1 -1
  46. package/dist/features/WalletCompatibilityCheck/index.js +21 -26
  47. package/dist/features/WalletCompatibilityCheck/index.js.map +1 -1
  48. package/dist/features/index.js +1 -1
  49. package/dist/hooks/index.js +1 -1
  50. package/dist/hooks/useAllTokens.js +1 -1
  51. package/dist/hooks/useChains.js +1 -1
  52. package/dist/hooks/useCompatibilityCheck.js +1 -1
  53. package/dist/hooks/useDefaultToken.js +1 -1
  54. package/dist/hooks/useExternalDepositStatus/index.js +1 -1
  55. package/dist/hooks/useExternalDepositStatus/usePoaExternalDepositStatus.js +1 -1
  56. package/dist/hooks/useIntentsBalance.js +1 -1
  57. package/dist/hooks/useIsCompatibilityCheckRequired.d.ts +1 -1
  58. package/dist/hooks/useIsCompatibilityCheckRequired.js +2 -2
  59. package/dist/hooks/useIsCompatibilityCheckRequired.js.map +1 -1
  60. package/dist/hooks/useMakeDepositAddress.js +1 -1
  61. package/dist/hooks/useMakeIntentsTransfer.js +1 -1
  62. package/dist/hooks/useMakeNEARFtTransferCall.js +1 -1
  63. package/dist/hooks/useMakeQuote.js +1 -1
  64. package/dist/hooks/useMakeQuoteTransfer.js +1 -1
  65. package/dist/hooks/useMakeTransfer.js +1 -1
  66. package/dist/hooks/useMergedBalance.js +1 -1
  67. package/dist/hooks/useSwitchChain.js +1 -1
  68. package/dist/hooks/useTheme.js +1 -1
  69. package/dist/hooks/useToggleTheme.js +20 -17
  70. package/dist/hooks/useToggleTheme.js.map +1 -1
  71. package/dist/hooks/useTokenInputPair.js +1 -1
  72. package/dist/hooks/useTokens.js +1 -1
  73. package/dist/hooks/useTokensFiltered.js +1 -1
  74. package/dist/hooks/useTokensIntentsUnique.js +1 -1
  75. package/dist/index.js +1 -1
  76. package/dist/machine/effects/index.js +1 -1
  77. package/dist/machine/effects/useAlchemyBalanceEffect.js +1 -1
  78. package/dist/machine/effects/useBalancesUpdateEffect.js +1 -1
  79. package/dist/machine/effects/useMakeQuoteEffect.js +1 -1
  80. package/dist/machine/effects/useSelectedTokensEffect.js +1 -1
  81. package/dist/machine/effects/useSetTokenBalanceEffect.js +1 -1
  82. package/dist/machine/effects/useSetTokenIntentsTargetEffect.js +1 -1
  83. package/dist/machine/effects/useWalletConnEffect.js +1 -1
  84. package/dist/machine/events/index.js +1 -1
  85. package/dist/machine/events/tokenSelect.js +1 -1
  86. package/dist/machine/events/validateInputAndMoveTo.js +1 -1
  87. package/dist/machine/events/validateInputs.js +1 -1
  88. package/dist/machine/index.js +1 -1
  89. package/dist/machine/snap.js +1 -1
  90. package/dist/machine/subscriptions/checkers/isSendAddressAsConnected.js +1 -1
  91. package/dist/machine/subscriptions/index.js +1 -1
  92. package/dist/styles.css +1 -1
  93. package/dist/theme/ThemeProvider.js +7 -24
  94. package/dist/theme/ThemeProvider.js.map +1 -1
  95. package/dist/types/config.d.ts +1 -0
  96. package/dist/types/localisation.d.ts +1 -1
  97. package/dist/utils/intents/signers/near.js +1 -1
  98. package/dist/utils/intents/signers/privy.js +1 -1
  99. package/dist/utils/near/getNearNep141StorageBalance.js +1 -1
  100. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js +11 -12
  101. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js.map +1 -1
  102. package/dist/widgets/WidgetDeposit/WidgetDepositSkeleton.js +1 -1
  103. package/dist/widgets/WidgetSwap/WidgetSwapContent.js +27 -26
  104. package/dist/widgets/WidgetSwap/WidgetSwapContent.js.map +1 -1
  105. package/dist/widgets/WidgetSwap/WidgetSwapSkeleton.js +1 -1
  106. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js +5 -6
  107. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js.map +1 -1
  108. package/dist/widgets/WidgetWithdraw/WidgetWithdrawSkeleton.js +1 -1
  109. package/package.json +2 -1
  110. package/src/components/BlockingError.tsx +7 -4
  111. package/src/components/CloseButton.tsx +1 -1
  112. package/src/features/DepositMethodSwitcher.tsx +5 -17
  113. package/src/features/ExternalDeposit.tsx +6 -6
  114. package/src/features/SuccessScreen/SummaryItem.tsx +2 -2
  115. package/src/features/SuccessScreen/index.tsx +5 -3
  116. package/src/features/SwapQuote/SwapQuote.tsx +1 -1
  117. package/src/features/WalletCompatibilityCheck/WalletCompatibilityModal.tsx +3 -0
  118. package/src/features/WalletCompatibilityCheck/index.tsx +4 -8
  119. package/src/hooks/useIsCompatibilityCheckRequired.ts +1 -1
  120. package/src/hooks/useToggleTheme.ts +11 -4
  121. package/src/theme/ThemeProvider.tsx +33 -14
  122. package/src/types/config.ts +1 -0
  123. package/src/types/localisation.ts +1 -0
  124. package/src/widgets/WidgetDeposit/WidgetDepositContent.tsx +3 -3
  125. package/src/widgets/WidgetSwap/WidgetSwapContent.tsx +5 -3
  126. package/src/widgets/WidgetWithdraw/WidgetWithdrawContent.tsx +3 -3
  127. package/dist/config-1EcDCy24.js +0 -2628
  128. package/dist/config-1EcDCy24.js.map +0 -1
  129. package/dist/features/SuccessScreen/CloseButton.d.ts +0 -5
  130. package/dist/features/SuccessScreen/CloseButton.js +0 -15
  131. package/dist/features/SuccessScreen/CloseButton.js.map +0 -1
  132. package/src/features/SuccessScreen/CloseButton.tsx +0 -14
@@ -1,11 +1,13 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import { isBrowser } from 'browser-or-node';
3
3
 
4
+ import { useConfig } from '@/config';
5
+
4
6
  type ThemeMode = 'light' | 'dark' | 'auto';
5
7
 
6
- const applyThemeDataAttr = (theme: ThemeMode) => {
8
+ const applyThemeDataAttr = (theme: ThemeMode, parentEl: Element | null) => {
7
9
  if (isBrowser) {
8
- document.body?.setAttribute('data-sw-theme', theme);
10
+ (parentEl ?? document.body).setAttribute('data-sw-theme', theme);
9
11
  }
10
12
  };
11
13
 
@@ -13,6 +15,7 @@ export const useToggleTheme = (
13
15
  defaultTheme?: ThemeMode,
14
16
  onChange?: (colorPalette: 'light' | 'dark') => void,
15
17
  ) => {
18
+ const { themeParentElementSelector } = useConfig();
16
19
  const [colorPalette, setColorPalette] = useState<'light' | 'dark'>();
17
20
  const [theme, setTheme] = useState<ThemeMode | undefined>(() => {
18
21
  if (isBrowser && defaultTheme === undefined) {
@@ -24,6 +27,10 @@ export const useToggleTheme = (
24
27
 
25
28
  useEffect(() => {
26
29
  if (isBrowser) {
30
+ const themeParentElement = themeParentElementSelector
31
+ ? document.querySelector(themeParentElementSelector)
32
+ : null;
33
+
27
34
  if (theme === undefined) {
28
35
  setTheme((localStorage.getItem('theme') as ThemeMode) || 'dark');
29
36
  } else if (theme === 'auto') {
@@ -31,7 +38,7 @@ export const useToggleTheme = (
31
38
  const updateTheme = () => {
32
39
  const palette = mediaQuery.matches ? 'dark' : 'light';
33
40
 
34
- applyThemeDataAttr(palette);
41
+ applyThemeDataAttr(palette, themeParentElement);
35
42
  setColorPalette(palette);
36
43
  onChange?.(palette);
37
44
  };
@@ -43,7 +50,7 @@ export const useToggleTheme = (
43
50
  return () => mediaQuery.removeEventListener('change', updateTheme);
44
51
  } else {
45
52
  localStorage.setItem('theme', theme);
46
- applyThemeDataAttr(theme);
53
+ applyThemeDataAttr(theme, themeParentElement);
47
54
  setColorPalette(theme);
48
55
  onChange?.(theme);
49
56
  }
@@ -1,15 +1,31 @@
1
+ import { isBrowser } from 'browser-or-node';
1
2
  import { createContext, type ReactNode, useEffect, useMemo } from 'react';
3
+
2
4
  import { ColorPalette, ColorScheme, HexColor, Theme } from '../types/theme';
3
5
  import { createColorPalette } from './createColorPalette';
6
+ import { useConfig } from '@/config';
4
7
 
5
- const setColorVariables = (palette: ColorPalette, colorKey: string) => {
6
- Object.entries(palette).forEach(([key, value]) => {
7
- document.body.style.setProperty(`--c-sw-${colorKey}-${key}`, value);
8
- });
8
+ const setColorVariables = (
9
+ palette: ColorPalette,
10
+ colorKey: string,
11
+ parentEl: Element | null,
12
+ ) => {
13
+ if (isBrowser) {
14
+ let parentElement = document.body;
15
+
16
+ if (parentEl instanceof HTMLElement) {
17
+ parentElement = parentEl;
18
+ }
19
+
20
+ Object.entries(palette).forEach(([key, value]) => {
21
+ parentElement.style.setProperty(`--c-sw-${colorKey}-${key}`, value);
22
+ });
23
+ }
9
24
  };
10
25
 
11
26
  const setColorPalette = (
12
27
  colorKey: string,
28
+ parentEl: Element | null,
13
29
  baseColor?: HexColor,
14
30
  colorScheme?: ColorScheme,
15
31
  ) => {
@@ -21,16 +37,14 @@ const setColorPalette = (
21
37
  return;
22
38
  }
23
39
 
24
- setColorVariables(palette, colorKey);
40
+ setColorVariables(palette, colorKey, parentEl);
25
41
  };
26
42
 
27
- const loadTheme = ({
28
- primaryColor = '#D5B7FF',
29
- surfaceColor = '#7E8396',
30
- colorScheme = 'dark',
31
- }: Theme) => {
32
- setColorPalette('accent', primaryColor, colorScheme);
33
- setColorPalette('gray', surfaceColor, colorScheme);
43
+ const loadTheme = (parentEl: Element | null, theme: Theme) => {
44
+ const { primaryColor, surfaceColor, colorScheme } = theme;
45
+
46
+ setColorPalette('accent', parentEl, primaryColor, colorScheme);
47
+ setColorPalette('gray', parentEl, surfaceColor, colorScheme);
34
48
  };
35
49
 
36
50
  export const ThemeContext = createContext<Theme | undefined>(undefined);
@@ -41,11 +55,16 @@ type ThemeProviderProps = {
41
55
  };
42
56
 
43
57
  export const ThemeProvider = ({ children, theme }: ThemeProviderProps) => {
58
+ const { themeParentElementSelector } = useConfig();
44
59
  const value = useMemo((): Theme | undefined => theme, [theme]);
45
60
 
46
61
  useEffect(() => {
47
- if (theme) {
48
- loadTheme(theme);
62
+ if (theme && isBrowser) {
63
+ const themeParentElement = themeParentElementSelector
64
+ ? document.querySelector(themeParentElementSelector)
65
+ : null;
66
+
67
+ loadTheme(themeParentElement, theme);
49
68
  }
50
69
  }, [theme]);
51
70
 
@@ -65,4 +65,5 @@ export type WidgetConfig = {
65
65
  // UI
66
66
  hideSendAddress?: boolean;
67
67
  hideTokenInputHeadings?: boolean;
68
+ themeParentElementSelector?: string;
68
69
  };
@@ -14,6 +14,7 @@ export type LocalisationKeys =
14
14
  | 'wallet.recipient.message.receiveFunds'
15
15
  | 'wallet.connected.error.notSupportedChain'
16
16
  // transfer
17
+ | 'transfer.success.title'
17
18
  | 'transfer.success.hash.label'
18
19
  | 'transfer.success.intent.label'
19
20
  // quote
@@ -62,11 +62,11 @@ export const WidgetDepositContent = ({
62
62
  const { tokenModalOpen, updateTokenModalState } = useTokenModal({ onMsg });
63
63
 
64
64
  const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();
65
- const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(true);
65
+ const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(false);
66
66
 
67
67
  useEffect(() => {
68
- if (!isCompatibilityCheckRequired) {
69
- setIsCompatibilityOpen(false);
68
+ if (isCompatibilityCheckRequired) {
69
+ setIsCompatibilityOpen(true);
70
70
  }
71
71
  }, [isCompatibilityCheckRequired]);
72
72
 
@@ -65,11 +65,13 @@ export const WidgetSwapContent = ({
65
65
  useTokenInputPair();
66
66
 
67
67
  const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();
68
- const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(true);
68
+ const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(
69
+ isCompatibilityCheckRequired,
70
+ );
69
71
 
70
72
  useEffect(() => {
71
- if (!isCompatibilityCheckRequired) {
72
- setIsCompatibilityOpen(false);
73
+ if (isCompatibilityCheckRequired) {
74
+ setIsCompatibilityOpen(isCompatibilityCheckRequired);
73
75
  }
74
76
  }, [isCompatibilityCheckRequired]);
75
77
 
@@ -61,11 +61,11 @@ export const WidgetWithdrawContent = ({
61
61
  useTokenInputPair();
62
62
 
63
63
  const isCompatibilityCheckRequired = useIsCompatibilityCheckRequired();
64
- const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(true);
64
+ const [isCompatibilityOpen, setIsCompatibilityOpen] = useState(false);
65
65
 
66
66
  useEffect(() => {
67
- if (!isCompatibilityCheckRequired) {
68
- setIsCompatibilityOpen(false);
67
+ if (isCompatibilityCheckRequired) {
68
+ setIsCompatibilityOpen(true);
69
69
  }
70
70
  }, [isCompatibilityCheckRequired]);
71
71