@mezo-org/passport 0.16.0-dev.0 → 0.16.0-dev.2

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 (196) hide show
  1. package/dist/src/api/auth.d.ts +9 -0
  2. package/dist/src/api/auth.d.ts.map +1 -1
  3. package/dist/src/api/auth.js +7 -0
  4. package/dist/src/api/auth.js.map +1 -1
  5. package/dist/src/config.d.ts +3 -4
  6. package/dist/src/config.d.ts.map +1 -1
  7. package/dist/src/config.js +9 -13
  8. package/dist/src/config.js.map +1 -1
  9. package/dist/src/hooks/index.d.ts +2 -0
  10. package/dist/src/hooks/index.d.ts.map +1 -1
  11. package/dist/src/hooks/index.js +2 -0
  12. package/dist/src/hooks/index.js.map +1 -1
  13. package/dist/src/hooks/useAcceptDocuments.d.ts +18 -0
  14. package/dist/src/hooks/useAcceptDocuments.d.ts.map +1 -1
  15. package/dist/src/hooks/useAuthenticateWithWallet.d.ts +11 -11
  16. package/dist/src/hooks/useAuthenticateWithWallet.js +1 -1
  17. package/dist/src/hooks/useAuthenticateWithWallet.js.map +1 -1
  18. package/dist/src/hooks/useBorrowData.js +1 -1
  19. package/dist/src/hooks/useBorrowData.js.map +1 -1
  20. package/dist/src/hooks/useCollateralPrice.js +1 -1
  21. package/dist/src/hooks/useCollateralPrice.js.map +1 -1
  22. package/dist/src/hooks/useCreateAccount.d.ts +18 -0
  23. package/dist/src/hooks/useCreateAccount.d.ts.map +1 -1
  24. package/dist/src/hooks/useCreateAccount.js +1 -1
  25. package/dist/src/hooks/useCreateAccount.js.map +1 -1
  26. package/dist/src/hooks/useLinkAccount.js +1 -1
  27. package/dist/src/hooks/useLinkAccount.js.map +1 -1
  28. package/dist/src/hooks/useSignInWithWallet.d.ts +11 -11
  29. package/dist/src/hooks/useSignUpWithWallet.d.ts +11 -11
  30. package/dist/src/hooks/useTokensBalances.d.ts.map +1 -1
  31. package/dist/src/hooks/useTokensBalances.js +2 -10
  32. package/dist/src/hooks/useTokensBalances.js.map +1 -1
  33. package/dist/src/hooks/useUpdateMezoId.d.ts +18 -0
  34. package/dist/src/hooks/useUpdateMezoId.d.ts.map +1 -1
  35. package/dist/src/hooks/useUpdateUserProfile.d.ts +171 -0
  36. package/dist/src/hooks/useUpdateUserProfile.d.ts.map +1 -0
  37. package/dist/src/hooks/useUpdateUserProfile.js +19 -0
  38. package/dist/src/hooks/useUpdateUserProfile.js.map +1 -0
  39. package/dist/src/hooks/useWalletAccount.d.ts +3 -6
  40. package/dist/src/hooks/useWalletAccount.d.ts.map +1 -1
  41. package/dist/src/hooks/useWalletAccount.js +6 -4
  42. package/dist/src/hooks/useWalletAccount.js.map +1 -1
  43. package/dist/src/hooks/useWatchTransferEvents.d.ts.map +1 -1
  44. package/dist/src/hooks/useWatchTransferEvents.js +0 -1
  45. package/dist/src/hooks/useWatchTransferEvents.js.map +1 -1
  46. package/dist/src/index.d.ts +1 -2
  47. package/dist/src/index.d.ts.map +1 -1
  48. package/dist/src/index.js +1 -2
  49. package/dist/src/index.js.map +1 -1
  50. package/dist/src/lib/contracts/index.d.ts +1 -1
  51. package/dist/src/lib/contracts/index.d.ts.map +1 -1
  52. package/dist/src/lib/contracts/index.js +0 -3
  53. package/dist/src/lib/contracts/index.js.map +1 -1
  54. package/dist/src/stores/dropdownStore.d.ts +2 -1
  55. package/dist/src/stores/dropdownStore.d.ts.map +1 -1
  56. package/dist/src/stores/dropdownStore.js +1 -0
  57. package/dist/src/stores/dropdownStore.js.map +1 -1
  58. package/dist/src/utils/assets.d.ts +0 -15
  59. package/dist/src/utils/assets.d.ts.map +1 -1
  60. package/dist/src/utils/assets.js +0 -13
  61. package/dist/src/utils/assets.js.map +1 -1
  62. package/dist/src/utils/validation.d.ts +13 -0
  63. package/dist/src/utils/validation.d.ts.map +1 -0
  64. package/dist/src/utils/validation.js +34 -0
  65. package/dist/src/utils/validation.js.map +1 -0
  66. package/dist/src/utils/validation.test.d.ts +2 -0
  67. package/dist/src/utils/validation.test.d.ts.map +1 -0
  68. package/dist/src/utils/validation.test.js +63 -0
  69. package/dist/src/utils/validation.test.js.map +1 -0
  70. package/package.json +10 -9
  71. package/src/api/auth.ts +22 -0
  72. package/src/config.ts +16 -26
  73. package/src/hooks/index.ts +2 -0
  74. package/src/hooks/useAuthenticateWithWallet.ts +1 -1
  75. package/src/hooks/useBorrowData.ts +1 -1
  76. package/src/hooks/useCollateralPrice.ts +1 -1
  77. package/src/hooks/useCreateAccount.ts +1 -1
  78. package/src/hooks/useLinkAccount.ts +1 -1
  79. package/src/hooks/useTokensBalances.ts +1 -10
  80. package/src/hooks/useUpdateUserProfile.ts +34 -0
  81. package/src/hooks/useWalletAccount.ts +15 -10
  82. package/src/hooks/useWatchTransferEvents.ts +0 -1
  83. package/src/index.ts +0 -2
  84. package/src/lib/contracts/index.ts +0 -4
  85. package/src/stores/dropdownStore.ts +1 -0
  86. package/src/utils/assets.ts +0 -14
  87. package/src/utils/validation.test.ts +97 -0
  88. package/src/utils/validation.ts +35 -0
  89. package/dist/src/assets/DefaultAvatar.d.ts +0 -5
  90. package/dist/src/assets/DefaultAvatar.d.ts.map +0 -1
  91. package/dist/src/assets/DefaultAvatar.js +0 -21
  92. package/dist/src/assets/DefaultAvatar.js.map +0 -1
  93. package/dist/src/components/Dropdown/ConnectedTrigger.d.ts +0 -8
  94. package/dist/src/components/Dropdown/ConnectedTrigger.d.ts.map +0 -1
  95. package/dist/src/components/Dropdown/ConnectedTrigger.js +0 -39
  96. package/dist/src/components/Dropdown/ConnectedTrigger.js.map +0 -1
  97. package/dist/src/components/Dropdown/Content.d.ts +0 -8
  98. package/dist/src/components/Dropdown/Content.d.ts.map +0 -1
  99. package/dist/src/components/Dropdown/Content.js +0 -27
  100. package/dist/src/components/Dropdown/Content.js.map +0 -1
  101. package/dist/src/components/Dropdown/DisconnectedTrigger.d.ts +0 -7
  102. package/dist/src/components/Dropdown/DisconnectedTrigger.d.ts.map +0 -1
  103. package/dist/src/components/Dropdown/DisconnectedTrigger.js +0 -13
  104. package/dist/src/components/Dropdown/DisconnectedTrigger.js.map +0 -1
  105. package/dist/src/components/Dropdown/Dropdown.d.ts +0 -23
  106. package/dist/src/components/Dropdown/Dropdown.d.ts.map +0 -1
  107. package/dist/src/components/Dropdown/Dropdown.js +0 -45
  108. package/dist/src/components/Dropdown/Dropdown.js.map +0 -1
  109. package/dist/src/components/Dropdown/ListingItem.d.ts +0 -14
  110. package/dist/src/components/Dropdown/ListingItem.d.ts.map +0 -1
  111. package/dist/src/components/Dropdown/ListingItem.js +0 -42
  112. package/dist/src/components/Dropdown/ListingItem.js.map +0 -1
  113. package/dist/src/components/Dropdown/NestedViewLayout.d.ts +0 -8
  114. package/dist/src/components/Dropdown/NestedViewLayout.d.ts.map +0 -1
  115. package/dist/src/components/Dropdown/NestedViewLayout.js +0 -32
  116. package/dist/src/components/Dropdown/NestedViewLayout.js.map +0 -1
  117. package/dist/src/components/Dropdown/Receive/Receive.d.ts +0 -4
  118. package/dist/src/components/Dropdown/Receive/Receive.d.ts.map +0 -1
  119. package/dist/src/components/Dropdown/Receive/Receive.js +0 -64
  120. package/dist/src/components/Dropdown/Receive/Receive.js.map +0 -1
  121. package/dist/src/components/Dropdown/Root/AccountAddressActions.d.ts +0 -4
  122. package/dist/src/components/Dropdown/Root/AccountAddressActions.d.ts.map +0 -1
  123. package/dist/src/components/Dropdown/Root/AccountAddressActions.js +0 -49
  124. package/dist/src/components/Dropdown/Root/AccountAddressActions.js.map +0 -1
  125. package/dist/src/components/Dropdown/Root/AccountBalance.d.ts +0 -6
  126. package/dist/src/components/Dropdown/Root/AccountBalance.d.ts.map +0 -1
  127. package/dist/src/components/Dropdown/Root/AccountBalance.js +0 -32
  128. package/dist/src/components/Dropdown/Root/AccountBalance.js.map +0 -1
  129. package/dist/src/components/Dropdown/Root/AccountBtcListing.d.ts +0 -6
  130. package/dist/src/components/Dropdown/Root/AccountBtcListing.d.ts.map +0 -1
  131. package/dist/src/components/Dropdown/Root/AccountBtcListing.js +0 -28
  132. package/dist/src/components/Dropdown/Root/AccountBtcListing.js.map +0 -1
  133. package/dist/src/components/Dropdown/Root/AccountError.d.ts +0 -8
  134. package/dist/src/components/Dropdown/Root/AccountError.d.ts.map +0 -1
  135. package/dist/src/components/Dropdown/Root/AccountError.js +0 -17
  136. package/dist/src/components/Dropdown/Root/AccountError.js.map +0 -1
  137. package/dist/src/components/Dropdown/Root/AccountMusdListing.d.ts +0 -4
  138. package/dist/src/components/Dropdown/Root/AccountMusdListing.d.ts.map +0 -1
  139. package/dist/src/components/Dropdown/Root/AccountMusdListing.js +0 -21
  140. package/dist/src/components/Dropdown/Root/AccountMusdListing.js.map +0 -1
  141. package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts +0 -8
  142. package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts.map +0 -1
  143. package/dist/src/components/Dropdown/Root/AccountOtherAssets.js +0 -43
  144. package/dist/src/components/Dropdown/Root/AccountOtherAssets.js.map +0 -1
  145. package/dist/src/components/Dropdown/Root/Root.d.ts +0 -8
  146. package/dist/src/components/Dropdown/Root/Root.d.ts.map +0 -1
  147. package/dist/src/components/Dropdown/Root/Root.js +0 -45
  148. package/dist/src/components/Dropdown/Root/Root.js.map +0 -1
  149. package/dist/src/components/Dropdown/Root/WalletAddress.d.ts +0 -4
  150. package/dist/src/components/Dropdown/Root/WalletAddress.d.ts.map +0 -1
  151. package/dist/src/components/Dropdown/Root/WalletAddress.js +0 -66
  152. package/dist/src/components/Dropdown/Root/WalletAddress.js.map +0 -1
  153. package/dist/src/components/Dropdown/Root/WelcomeBlock.d.ts +0 -6
  154. package/dist/src/components/Dropdown/Root/WelcomeBlock.d.ts.map +0 -1
  155. package/dist/src/components/Dropdown/Root/WelcomeBlock.js +0 -88
  156. package/dist/src/components/Dropdown/Root/WelcomeBlock.js.map +0 -1
  157. package/dist/src/components/Dropdown/SlotNumber.d.ts +0 -19
  158. package/dist/src/components/Dropdown/SlotNumber.d.ts.map +0 -1
  159. package/dist/src/components/Dropdown/SlotNumber.js +0 -67
  160. package/dist/src/components/Dropdown/SlotNumber.js.map +0 -1
  161. package/dist/src/components/Dropdown/TestnetTopBanner.d.ts +0 -3
  162. package/dist/src/components/Dropdown/TestnetTopBanner.d.ts.map +0 -1
  163. package/dist/src/components/Dropdown/TestnetTopBanner.js +0 -14
  164. package/dist/src/components/Dropdown/TestnetTopBanner.js.map +0 -1
  165. package/dist/src/components/Dropdown/index.d.ts +0 -3
  166. package/dist/src/components/Dropdown/index.d.ts.map +0 -1
  167. package/dist/src/components/Dropdown/index.js +0 -2
  168. package/dist/src/components/Dropdown/index.js.map +0 -1
  169. package/dist/src/components/index.d.ts +0 -2
  170. package/dist/src/components/index.d.ts.map +0 -1
  171. package/dist/src/components/index.js +0 -2
  172. package/dist/src/components/index.js.map +0 -1
  173. package/dist/src/lib/contracts/artifacts/MEZO.json +0 -428
  174. package/src/assets/DefaultAvatar.tsx +0 -74
  175. package/src/components/Dropdown/ConnectedTrigger.tsx +0 -76
  176. package/src/components/Dropdown/Content.tsx +0 -53
  177. package/src/components/Dropdown/DisconnectedTrigger.tsx +0 -36
  178. package/src/components/Dropdown/Dropdown.tsx +0 -100
  179. package/src/components/Dropdown/ListingItem.tsx +0 -176
  180. package/src/components/Dropdown/NestedViewLayout.tsx +0 -87
  181. package/src/components/Dropdown/README.md +0 -41
  182. package/src/components/Dropdown/Receive/Receive.tsx +0 -144
  183. package/src/components/Dropdown/Root/AccountAddressActions.tsx +0 -99
  184. package/src/components/Dropdown/Root/AccountBalance.tsx +0 -69
  185. package/src/components/Dropdown/Root/AccountBtcListing.tsx +0 -53
  186. package/src/components/Dropdown/Root/AccountError.tsx +0 -34
  187. package/src/components/Dropdown/Root/AccountMusdListing.tsx +0 -45
  188. package/src/components/Dropdown/Root/AccountOtherAssets.tsx +0 -85
  189. package/src/components/Dropdown/Root/Root.tsx +0 -77
  190. package/src/components/Dropdown/Root/WalletAddress.tsx +0 -123
  191. package/src/components/Dropdown/Root/WelcomeBlock.tsx +0 -173
  192. package/src/components/Dropdown/SlotNumber.tsx +0 -131
  193. package/src/components/Dropdown/TestnetTopBanner.tsx +0 -32
  194. package/src/components/Dropdown/index.ts +0 -2
  195. package/src/components/index.ts +0 -1
  196. package/src/lib/contracts/artifacts/MEZO.json +0 -428
@@ -1,123 +0,0 @@
1
- import {
2
- BitcoinCircle,
3
- Block,
4
- BlockProps,
5
- EthCircle,
6
- LabelMedium,
7
- LabelXSmall,
8
- mergeOverrides,
9
- MonoLabelXSmall,
10
- useStyletron,
11
- } from "@mezo-org/mezo-clay"
12
- import React, { useState } from "react"
13
- import { useCopyToClipboard } from "usehooks-ts"
14
- import { usePassportContext } from "../../../hooks/usePassportContext"
15
- import { getAddressExplorerUrl, trimAddress } from "../../../utils/address"
16
- import useWalletAccount from "../../../hooks/useWalletAccount"
17
-
18
- export default function WalletAddress(props: BlockProps) {
19
- const { overrides, ...restProps } = props
20
- const { walletAddress, networkFamily } = useWalletAccount()
21
- const { environment = "mainnet" } = usePassportContext()
22
- const [, theme] = useStyletron()
23
- const [, copy] = useCopyToClipboard()
24
- const [isCopiedMessageVisible, setIsCopiedMessageVisible] = useState(false)
25
-
26
- const handleCopyAddress = () => {
27
- copy(walletAddress!)
28
- setIsCopiedMessageVisible(true)
29
-
30
- setTimeout(() => {
31
- setIsCopiedMessageVisible(false)
32
- }, 2000)
33
- }
34
-
35
- const blockExplorerUrl = getAddressExplorerUrl(
36
- walletAddress!,
37
- networkFamily,
38
- environment === "testnet",
39
- )
40
- const trimmedAddress = trimAddress(walletAddress!)
41
- const AccountIcon = networkFamily === "bitcoin" ? BitcoinCircle : EthCircle
42
-
43
- return (
44
- <Block
45
- as="button"
46
- onClick={handleCopyAddress}
47
- display="flex"
48
- alignItems="center"
49
- backgroundColor="transparent"
50
- padding={`${theme.sizing.scale800} ${theme.sizing.scale700}`}
51
- overrides={mergeOverrides(
52
- {
53
- Block: {
54
- style: {
55
- gap: theme.sizing.scale700,
56
- borderWidth: 0,
57
- cursor: "pointer",
58
- ":hover": {
59
- backgroundColor: theme.colors.backgroundTertiary,
60
- },
61
- },
62
- },
63
- },
64
- overrides,
65
- )}
66
- {...restProps}
67
- >
68
- <AccountIcon
69
- color={theme.colors.black}
70
- size={theme.sizing.scale800}
71
- overrides={{
72
- Svg: {
73
- style: {
74
- backgroundColor: theme.colors.black,
75
- overflow: "hidden",
76
- borderRadius: theme.borders.radius200,
77
- },
78
- },
79
- }}
80
- />
81
- <Block
82
- display="flex"
83
- flexDirection="column"
84
- alignItems="flex-start"
85
- overrides={{
86
- Block: {
87
- style: {
88
- gap: theme.sizing.scale100,
89
- },
90
- },
91
- }}
92
- >
93
- <LabelMedium>Connected Wallet</LabelMedium>
94
-
95
- {isCopiedMessageVisible ? (
96
- <LabelXSmall color={theme.colors.contentSecondary}>
97
- Copied address to clipboard
98
- </LabelXSmall>
99
- ) : (
100
- <Block
101
- as="a"
102
- color={theme.colors.contentSecondary}
103
- href={blockExplorerUrl}
104
- target="_blank"
105
- overrides={{
106
- Block: {
107
- style: {
108
- color: "inherit",
109
- textDecoration: "none",
110
- ":hover": {
111
- textDecoration: "underline",
112
- },
113
- },
114
- },
115
- }}
116
- >
117
- <MonoLabelXSmall>{trimmedAddress}</MonoLabelXSmall>
118
- </Block>
119
- )}
120
- </Block>
121
- </Block>
122
- )
123
- }
@@ -1,173 +0,0 @@
1
- import {
2
- Block,
3
- BlockProps,
4
- HeadingMedium,
5
- LabelLarge,
6
- Mats,
7
- mergeOverrides,
8
- Skeleton,
9
- useStyletron,
10
- } from "@mezo-org/mezo-clay"
11
- import React from "react"
12
- import DefaultAvatar from "../../../assets/DefaultAvatar"
13
- import { useGetCurrentAccount } from "../../../hooks"
14
- import { formatNumberToCompactString } from "../../../utils/numbers"
15
- import AccountError from "./AccountError"
16
- import { usePassportContext } from "../../../hooks/usePassportContext"
17
- import SlotNumber from "../SlotNumber"
18
-
19
- const DOT_DELIMITER_REGEX = /(?=\.)/
20
-
21
- function WelcomeBlockSkeleton() {
22
- const [, theme] = useStyletron()
23
-
24
- return (
25
- <Block
26
- display="flex"
27
- alignItems="center"
28
- padding={theme.sizing.scale600}
29
- paddingTop={theme.sizing.scale900}
30
- paddingBottom={theme.sizing.scale800}
31
- overrides={{
32
- Block: {
33
- style: {
34
- gap: theme.sizing.scale600,
35
- },
36
- },
37
- }}
38
- >
39
- <Skeleton
40
- animation
41
- width={theme.sizing.scale1200}
42
- height={theme.sizing.scale1200}
43
- overrides={{
44
- Root: {
45
- style: {
46
- borderRadius: "100%",
47
- },
48
- },
49
- }}
50
- />
51
-
52
- <Block
53
- display="flex"
54
- flexDirection="column"
55
- flex={1}
56
- overrides={{
57
- Block: {
58
- style: {
59
- gap: theme.sizing.scale100,
60
- },
61
- },
62
- }}
63
- >
64
- <Skeleton animation width="60%" height={theme.sizing.scale900} />
65
- <Skeleton animation width="40%" height={theme.sizing.scale800} />
66
- </Block>
67
- </Block>
68
- )
69
- }
70
-
71
- type WelcomeBlockProps = BlockProps
72
-
73
- export default function WelcomeBlock(props: WelcomeBlockProps) {
74
- const { overrides, ...restProps } = props
75
- const { accountDataRefetchInterval } = usePassportContext()
76
-
77
- const { data, isError, isPending } = useGetCurrentAccount({
78
- staleTime: accountDataRefetchInterval,
79
- refetchInterval: accountDataRefetchInterval,
80
- })
81
- const [, theme] = useStyletron()
82
-
83
- if (isError) {
84
- return (
85
- <AccountError
86
- padding={theme.sizing.scale600}
87
- paddingTop={theme.sizing.scale900}
88
- paddingBottom={theme.sizing.scale800}
89
- marginBottom={theme.sizing.scale300}
90
- topic="account information"
91
- />
92
- )
93
- }
94
-
95
- if (isPending) {
96
- return <WelcomeBlockSkeleton />
97
- }
98
-
99
- const [mezoId, mezoIdSuffix] = (data.mezoId ?? "").split(DOT_DELIMITER_REGEX)
100
-
101
- return (
102
- <Block
103
- display="flex"
104
- alignItems="center"
105
- paddingLeft={theme.sizing.scale600}
106
- paddingRight={theme.sizing.scale600}
107
- paddingTop={theme.sizing.scale900}
108
- paddingBottom={theme.sizing.scale800}
109
- overrides={mergeOverrides(overrides, {
110
- Block: {
111
- style: {
112
- gap: theme.sizing.scale600,
113
- },
114
- },
115
- })}
116
- {...restProps}
117
- >
118
- <Block
119
- as={DefaultAvatar}
120
- width={theme.sizing.scale1200}
121
- height={theme.sizing.scale1200}
122
- overrides={{
123
- Block: {
124
- style: {
125
- borderRadius: "100%",
126
- },
127
- },
128
- }}
129
- />
130
-
131
- <Block display="flex" flexDirection="column">
132
- {mezoId && mezoIdSuffix && (
133
- <HeadingMedium as="span">
134
- <Block as="span">{mezoId}</Block>
135
- <Block as="span" color={theme.colors.contentSecondary}>
136
- {mezoIdSuffix}
137
- </Block>
138
- </HeadingMedium>
139
- )}
140
-
141
- <Block
142
- display="flex"
143
- alignItems="center"
144
- overrides={{
145
- Block: {
146
- style: {
147
- gap: theme.sizing.scale100,
148
- },
149
- },
150
- }}
151
- >
152
- <Mats
153
- size={theme.sizing.scale600}
154
- overrides={{
155
- Svg: {
156
- style: {
157
- margin: theme.sizing.scale100, // To reduce gap
158
- },
159
- },
160
- }}
161
- />
162
-
163
- <LabelLarge color={theme.colors.contentPrimary}>
164
- <SlotNumber formatFunction={formatNumberToCompactString}>
165
- {data.totalMats}
166
- </SlotNumber>{" "}
167
- mats
168
- </LabelLarge>
169
- </Block>
170
- </Block>
171
- </Block>
172
- )
173
- }
@@ -1,131 +0,0 @@
1
- /* eslint-disable react/no-array-index-key */
2
- import React, { useMemo } from "react"
3
- import { AnimatePresence, motion } from "motion/react"
4
- import { Block, useStyletron } from "@mezo-org/mezo-clay"
5
-
6
- type SlotNumberProps = {
7
- className?: string
8
- children: number
9
- formatFunction?: (value: number) => string
10
- }
11
-
12
- type SlotNumberDigitProps = {
13
- className?: string
14
- children: number
15
- }
16
-
17
- function SlotNumberDigit(props: SlotNumberDigitProps) {
18
- const { children: value, ...restProps } = props
19
-
20
- const [css] = useStyletron()
21
-
22
- const digits = [...Array(10).keys()]
23
-
24
- return (
25
- <AnimatePresence initial={false}>
26
- <motion.div
27
- initial={{
28
- y: "100%",
29
- }}
30
- animate={{
31
- y: "0%",
32
- }}
33
- layout="position"
34
- className={css({
35
- position: "relative",
36
- })}
37
- {...restProps}
38
- >
39
- <Block
40
- overrides={{
41
- Block: {
42
- style: {
43
- visibility: "hidden",
44
- },
45
- },
46
- }}
47
- >
48
- {value}
49
- </Block>
50
-
51
- <motion.div
52
- className={css({
53
- display: "flex",
54
- flexDirection: "column",
55
- position: "absolute",
56
- inset: 0,
57
- height: "fit-content",
58
- })}
59
- initial={false}
60
- animate={{ y: `${(value / 10) * -100}%` }}
61
- transition={{
62
- type: "spring",
63
- damping: 16,
64
- stiffness: 220,
65
- }}
66
- >
67
- {digits.map((digit) => (
68
- <Block as="span" key={digit}>
69
- {digit}
70
- </Block>
71
- ))}
72
- </motion.div>
73
- </motion.div>
74
- </AnimatePresence>
75
- )
76
- }
77
-
78
- /**
79
- * SlotNumber component displays a number with animated digits.
80
- *
81
- * @typedef {object} SlotNumberProps
82
- * @property {number} children - The number to display.
83
- * @property {function} [formatFunction] - Optional function to format the number.
84
- * @property {BlockProps} [restProps] - Additional properties for the Block component.
85
- * @see https://pyszkowski.dev/writings/slot-number
86
- * @returns {JSX.Element} The rendered SlotNumber component.
87
- */
88
- function SlotNumber(props: SlotNumberProps) {
89
- const { children: value, formatFunction, ...restProps } = props
90
-
91
- const [css] = useStyletron()
92
-
93
- const characters = useMemo(() => {
94
- const formattedValue = formatFunction
95
- ? formatFunction(value)
96
- : value.toString()
97
-
98
- return formattedValue
99
- .split("")
100
- .map((character) => (/^[0-9]$/.test(character) ? +character : character))
101
- .reverse()
102
- }, [formatFunction, value])
103
-
104
- return (
105
- <motion.div
106
- layout
107
- className={css({
108
- display: "inline-flex",
109
- flexDirection: "row-reverse",
110
- justifyContent: "flex-end",
111
- overflow: "hidden",
112
- userSelect: "none",
113
- })}
114
- {...restProps}
115
- >
116
- {characters.map((character, index) =>
117
- typeof character === "number" ? (
118
- <SlotNumberDigit key={`slot-number-character-${index}`}>
119
- {character}
120
- </SlotNumberDigit>
121
- ) : (
122
- <motion.span layout key={`slot-number-character-${index}`}>
123
- {character}
124
- </motion.span>
125
- ),
126
- )}
127
- </motion.div>
128
- )
129
- }
130
-
131
- export default SlotNumber
@@ -1,32 +0,0 @@
1
- import React from "react"
2
- import {
3
- Block,
4
- InfoCircle,
5
- LabelSmall,
6
- useStyletron,
7
- } from "@mezo-org/mezo-clay"
8
- import { usePassportContext } from "../../hooks/usePassportContext"
9
-
10
- export default function TestnetTopBanner() {
11
- const [, theme] = useStyletron()
12
-
13
- const { environment } = usePassportContext()
14
-
15
- if (environment !== "testnet") {
16
- return null
17
- }
18
-
19
- return (
20
- <Block
21
- display="flex"
22
- alignItems="center"
23
- padding={`${theme.sizing.scale700} ${theme.sizing.scale600}`}
24
- backgroundColor={theme.colors.warning}
25
- >
26
- <InfoCircle size={theme.sizing.scale550} />
27
- <LabelSmall marginLeft={theme.sizing.scale500}>
28
- You are using testnet funds.
29
- </LabelSmall>
30
- </Block>
31
- )
32
- }
@@ -1,2 +0,0 @@
1
- export { Dropdown } from "./Dropdown"
2
- export type { DropdownProps } from "./Dropdown"
@@ -1 +0,0 @@
1
- export { Dropdown, DropdownProps } from "./Dropdown"