@mysten/dapp-kit 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/cjs/components/AccountDropdownMenu.css +86 -21
- package/dist/cjs/components/AccountDropdownMenu.css.css +19 -21
- package/dist/cjs/components/AccountDropdownMenu.css.css.map +3 -3
- package/dist/cjs/components/AccountDropdownMenu.css.d.ts +3 -3
- package/dist/cjs/components/AccountDropdownMenu.css.js +6 -6
- package/dist/cjs/components/AccountDropdownMenu.css.js.map +2 -2
- package/dist/cjs/components/AccountDropdownMenu.css.map +3 -3
- package/dist/cjs/components/AccountDropdownMenu.js +89 -27
- package/dist/cjs/components/AccountDropdownMenu.js.map +4 -4
- package/dist/cjs/components/ConnectButton.css +174 -80
- package/dist/cjs/components/ConnectButton.css.map +3 -3
- package/dist/cjs/components/ConnectButton.js +250 -148
- package/dist/cjs/components/ConnectButton.js.map +4 -4
- package/dist/cjs/components/WalletProvider.d.ts +4 -1
- package/dist/cjs/components/WalletProvider.js +173 -8
- package/dist/cjs/components/WalletProvider.js.map +4 -4
- package/dist/cjs/components/connect-modal/ConnectModal.css +155 -59
- package/dist/cjs/components/connect-modal/ConnectModal.css.css +22 -33
- package/dist/cjs/components/connect-modal/ConnectModal.css.css.map +3 -3
- package/dist/cjs/components/connect-modal/ConnectModal.css.d.ts +2 -3
- package/dist/cjs/components/connect-modal/ConnectModal.css.js +7 -9
- package/dist/cjs/components/connect-modal/ConnectModal.css.js.map +2 -2
- package/dist/cjs/components/connect-modal/ConnectModal.css.map +3 -3
- package/dist/cjs/components/connect-modal/ConnectModal.js +216 -114
- package/dist/cjs/components/connect-modal/ConnectModal.js.map +4 -4
- package/dist/cjs/components/connect-modal/InfoSection.css +56 -0
- package/dist/cjs/components/connect-modal/InfoSection.css.d.ts +0 -2
- package/dist/cjs/components/connect-modal/InfoSection.css.js +1 -5
- package/dist/cjs/components/connect-modal/InfoSection.css.js.map +2 -2
- package/dist/cjs/components/connect-modal/InfoSection.css.map +3 -3
- package/dist/cjs/components/connect-modal/InfoSection.js +85 -6
- package/dist/cjs/components/connect-modal/InfoSection.js.map +4 -4
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css +99 -6
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css +7 -6
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.css.map +3 -3
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.d.ts +2 -2
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js +5 -5
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.js.map +2 -2
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.css.map +3 -3
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.js +105 -17
- package/dist/cjs/components/connect-modal/views/ConnectionStatus.js.map +4 -4
- package/dist/cjs/components/connect-modal/views/GettingStarted.css +99 -2
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.css +7 -2
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.css.map +3 -3
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.d.ts +1 -2
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.js +3 -5
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.js.map +2 -2
- package/dist/cjs/components/connect-modal/views/GettingStarted.css.map +3 -3
- package/dist/cjs/components/connect-modal/views/GettingStarted.js +123 -20
- package/dist/cjs/components/connect-modal/views/GettingStarted.js.map +4 -4
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css +58 -2
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css +2 -2
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.css.map +2 -2
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.d.ts +0 -1
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js +2 -4
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.js.map +2 -2
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.css.map +3 -3
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js +93 -15
- package/dist/cjs/components/connect-modal/views/WhatIsAWallet.js.map +4 -4
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css +39 -16
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.css.map +3 -3
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.js +66 -14
- package/dist/cjs/components/connect-modal/wallet-list/WalletList.js.map +4 -4
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css +39 -16
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css +14 -16
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.css.map +3 -3
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.d.ts +2 -3
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js +5 -7
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.js.map +2 -2
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.css.map +3 -3
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js +62 -10
- package/dist/cjs/components/connect-modal/wallet-list/WalletListItem.js.map +4 -4
- package/dist/cjs/components/icons/BackIcon.js +1 -1
- package/dist/cjs/components/icons/BackIcon.js.map +2 -2
- package/dist/cjs/components/icons/CheckIcon.js +1 -1
- package/dist/cjs/components/icons/CheckIcon.js.map +1 -1
- package/dist/cjs/components/styling/InjectedThemeStyles.d.ts +6 -0
- package/dist/cjs/components/styling/InjectedThemeStyles.js +123 -0
- package/dist/cjs/components/styling/InjectedThemeStyles.js.map +7 -0
- package/dist/cjs/components/styling/StyleMarker.css.css +8 -2
- package/dist/cjs/components/styling/StyleMarker.css.css.map +3 -3
- package/dist/cjs/components/ui/Button.css +36 -0
- package/dist/cjs/components/ui/Button.css.css +36 -0
- package/dist/cjs/components/ui/Button.css.css.map +7 -0
- package/dist/cjs/components/ui/Button.css.d.ts +33 -0
- package/dist/cjs/components/ui/Button.css.js +28 -0
- package/dist/cjs/components/ui/Button.css.js.map +7 -0
- package/dist/cjs/components/ui/Button.css.map +7 -0
- package/dist/cjs/components/ui/Button.d.ts +8 -0
- package/dist/cjs/components/ui/Button.js +60 -0
- package/dist/cjs/components/ui/Button.js.map +7 -0
- package/dist/cjs/components/ui/Heading.css +25 -0
- package/dist/cjs/components/ui/Heading.css.css +25 -0
- package/dist/cjs/components/ui/Heading.css.css.map +7 -0
- package/dist/cjs/components/ui/Heading.css.d.ts +33 -0
- package/dist/cjs/components/ui/Heading.css.js +28 -0
- package/dist/cjs/components/ui/Heading.css.js.map +7 -0
- package/dist/cjs/components/ui/Heading.css.map +7 -0
- package/dist/cjs/components/ui/Heading.d.ts +13 -0
- package/dist/cjs/components/ui/Heading.js +69 -0
- package/dist/cjs/components/ui/Heading.js.map +7 -0
- package/dist/cjs/components/ui/IconButton.css +11 -0
- package/dist/cjs/components/ui/IconButton.css.css +11 -0
- package/dist/cjs/components/ui/IconButton.css.css.map +7 -0
- package/dist/cjs/components/ui/IconButton.css.d.ts +1 -0
- package/dist/cjs/components/ui/IconButton.css.js +27 -0
- package/dist/cjs/components/ui/IconButton.css.js.map +7 -0
- package/dist/cjs/components/ui/IconButton.css.map +7 -0
- package/dist/cjs/components/ui/IconButton.d.ts +6 -0
- package/dist/cjs/components/ui/IconButton.js +52 -0
- package/dist/cjs/components/ui/IconButton.js.map +7 -0
- package/dist/cjs/components/ui/Text.css +31 -0
- package/dist/cjs/components/ui/Text.css.css +31 -0
- package/dist/cjs/components/ui/Text.css.css.map +7 -0
- package/dist/cjs/components/ui/Text.css.d.ts +33 -0
- package/dist/cjs/components/ui/Text.css.js +28 -0
- package/dist/cjs/components/ui/Text.css.js.map +7 -0
- package/dist/cjs/components/ui/Text.css.map +7 -0
- package/dist/cjs/components/ui/Text.d.ts +13 -0
- package/dist/cjs/components/ui/Text.js +70 -0
- package/dist/cjs/components/ui/Text.js.map +7 -0
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js +6 -3
- package/dist/cjs/hooks/wallet/useAutoConnectWallet.js.map +2 -2
- package/dist/cjs/hooks/wallet/useConnectWallet.d.ts +4 -2
- package/dist/cjs/hooks/wallet/useConnectWallet.js +6 -3
- package/dist/cjs/hooks/wallet/useConnectWallet.js.map +2 -2
- package/dist/cjs/index.css +174 -80
- package/dist/cjs/index.css.map +3 -3
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +423 -163
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/themes/lightTheme.d.ts +2 -0
- package/dist/cjs/themes/lightTheme.js +83 -0
- package/dist/cjs/themes/lightTheme.js.map +7 -0
- package/dist/cjs/themes/themeContract.d.ts +140 -0
- package/dist/cjs/themes/themeContract.js +88 -0
- package/dist/cjs/themes/themeContract.js.map +7 -0
- package/dist/cjs/walletStore.d.ts +1 -1
- package/dist/cjs/walletStore.js +2 -2
- package/dist/cjs/walletStore.js.map +2 -2
- package/dist/esm/components/AccountDropdownMenu.css +86 -21
- package/dist/esm/components/AccountDropdownMenu.css.css +19 -21
- package/dist/esm/components/AccountDropdownMenu.css.css.map +3 -3
- package/dist/esm/components/AccountDropdownMenu.css.d.ts +3 -3
- package/dist/esm/components/AccountDropdownMenu.css.js +6 -6
- package/dist/esm/components/AccountDropdownMenu.css.js.map +2 -2
- package/dist/esm/components/AccountDropdownMenu.css.map +3 -3
- package/dist/esm/components/AccountDropdownMenu.js +88 -26
- package/dist/esm/components/AccountDropdownMenu.js.map +4 -4
- package/dist/esm/components/ConnectButton.css +174 -80
- package/dist/esm/components/ConnectButton.css.map +3 -3
- package/dist/esm/components/ConnectButton.js +238 -136
- package/dist/esm/components/ConnectButton.js.map +4 -4
- package/dist/esm/components/WalletProvider.d.ts +4 -1
- package/dist/esm/components/WalletProvider.js +173 -8
- package/dist/esm/components/WalletProvider.js.map +4 -4
- package/dist/esm/components/connect-modal/ConnectModal.css +155 -59
- package/dist/esm/components/connect-modal/ConnectModal.css.css +22 -33
- package/dist/esm/components/connect-modal/ConnectModal.css.css.map +3 -3
- package/dist/esm/components/connect-modal/ConnectModal.css.d.ts +2 -3
- package/dist/esm/components/connect-modal/ConnectModal.css.js +7 -9
- package/dist/esm/components/connect-modal/ConnectModal.css.js.map +2 -2
- package/dist/esm/components/connect-modal/ConnectModal.css.map +3 -3
- package/dist/esm/components/connect-modal/ConnectModal.js +205 -103
- package/dist/esm/components/connect-modal/ConnectModal.js.map +4 -4
- package/dist/esm/components/connect-modal/InfoSection.css +56 -0
- package/dist/esm/components/connect-modal/InfoSection.css.d.ts +0 -2
- package/dist/esm/components/connect-modal/InfoSection.css.js +1 -5
- package/dist/esm/components/connect-modal/InfoSection.css.js.map +2 -2
- package/dist/esm/components/connect-modal/InfoSection.css.map +3 -3
- package/dist/esm/components/connect-modal/InfoSection.js +74 -5
- package/dist/esm/components/connect-modal/InfoSection.js.map +4 -4
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css +99 -6
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css +7 -6
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.css.map +3 -3
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.d.ts +2 -2
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js +5 -5
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.js.map +2 -2
- package/dist/esm/components/connect-modal/views/ConnectionStatus.css.map +3 -3
- package/dist/esm/components/connect-modal/views/ConnectionStatus.js +103 -17
- package/dist/esm/components/connect-modal/views/ConnectionStatus.js.map +4 -4
- package/dist/esm/components/connect-modal/views/GettingStarted.css +99 -2
- package/dist/esm/components/connect-modal/views/GettingStarted.css.css +7 -2
- package/dist/esm/components/connect-modal/views/GettingStarted.css.css.map +3 -3
- package/dist/esm/components/connect-modal/views/GettingStarted.css.d.ts +1 -2
- package/dist/esm/components/connect-modal/views/GettingStarted.css.js +3 -5
- package/dist/esm/components/connect-modal/views/GettingStarted.css.js.map +2 -2
- package/dist/esm/components/connect-modal/views/GettingStarted.css.map +3 -3
- package/dist/esm/components/connect-modal/views/GettingStarted.js +110 -17
- package/dist/esm/components/connect-modal/views/GettingStarted.js.map +4 -4
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css +58 -2
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css +2 -2
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.css.map +2 -2
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.d.ts +0 -1
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js +2 -4
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.js.map +2 -2
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.css.map +3 -3
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.js +80 -12
- package/dist/esm/components/connect-modal/views/WhatIsAWallet.js.map +4 -4
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css +39 -16
- package/dist/esm/components/connect-modal/wallet-list/WalletList.css.map +3 -3
- package/dist/esm/components/connect-modal/wallet-list/WalletList.js +56 -14
- package/dist/esm/components/connect-modal/wallet-list/WalletList.js.map +4 -4
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css +39 -16
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css +14 -16
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.css.map +3 -3
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.d.ts +2 -3
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js +5 -7
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.js.map +2 -2
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.css.map +3 -3
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js +52 -10
- package/dist/esm/components/connect-modal/wallet-list/WalletListItem.js.map +4 -4
- package/dist/esm/components/icons/BackIcon.js +1 -1
- package/dist/esm/components/icons/BackIcon.js.map +2 -2
- package/dist/esm/components/icons/CheckIcon.js +1 -1
- package/dist/esm/components/icons/CheckIcon.js.map +1 -1
- package/dist/esm/components/styling/InjectedThemeStyles.d.ts +6 -0
- package/dist/esm/components/styling/InjectedThemeStyles.js +102 -0
- package/dist/esm/components/styling/InjectedThemeStyles.js.map +7 -0
- package/dist/esm/components/styling/StyleMarker.css.css +8 -2
- package/dist/esm/components/styling/StyleMarker.css.css.map +3 -3
- package/dist/esm/components/styling/StyleMarker.css.js +2 -2
- package/dist/esm/components/styling/StyleMarker.css.js.map +1 -1
- package/dist/esm/components/ui/Button.css +36 -0
- package/dist/esm/components/ui/Button.css.css +36 -0
- package/dist/esm/components/ui/Button.css.css.map +7 -0
- package/dist/esm/components/ui/Button.css.d.ts +33 -0
- package/dist/esm/components/ui/Button.css.js +7 -0
- package/dist/esm/components/ui/Button.css.js.map +7 -0
- package/dist/esm/components/ui/Button.css.map +7 -0
- package/dist/esm/components/ui/Button.d.ts +8 -0
- package/dist/esm/components/ui/Button.js +29 -0
- package/dist/esm/components/ui/Button.js.map +7 -0
- package/dist/esm/components/ui/Heading.css +25 -0
- package/dist/esm/components/ui/Heading.css.css +25 -0
- package/dist/esm/components/ui/Heading.css.css.map +7 -0
- package/dist/esm/components/ui/Heading.css.d.ts +33 -0
- package/dist/esm/components/ui/Heading.css.js +7 -0
- package/dist/esm/components/ui/Heading.css.js.map +7 -0
- package/dist/esm/components/ui/Heading.css.map +7 -0
- package/dist/esm/components/ui/Heading.d.ts +13 -0
- package/dist/esm/components/ui/Heading.js +38 -0
- package/dist/esm/components/ui/Heading.js.map +7 -0
- package/dist/esm/components/ui/IconButton.css +11 -0
- package/dist/esm/components/ui/IconButton.css.css +11 -0
- package/dist/esm/components/ui/IconButton.css.css.map +7 -0
- package/dist/esm/components/ui/IconButton.css.d.ts +1 -0
- package/dist/esm/components/ui/IconButton.css.js +6 -0
- package/dist/esm/components/ui/IconButton.css.js.map +7 -0
- package/dist/esm/components/ui/IconButton.css.map +7 -0
- package/dist/esm/components/ui/IconButton.d.ts +6 -0
- package/dist/esm/components/ui/IconButton.js +21 -0
- package/dist/esm/components/ui/IconButton.js.map +7 -0
- package/dist/esm/components/ui/Text.css +31 -0
- package/dist/esm/components/ui/Text.css.css +31 -0
- package/dist/esm/components/ui/Text.css.css.map +7 -0
- package/dist/esm/components/ui/Text.css.d.ts +33 -0
- package/dist/esm/components/ui/Text.css.js +7 -0
- package/dist/esm/components/ui/Text.css.js.map +7 -0
- package/dist/esm/components/ui/Text.css.map +7 -0
- package/dist/esm/components/ui/Text.d.ts +13 -0
- package/dist/esm/components/ui/Text.js +39 -0
- package/dist/esm/components/ui/Text.js.map +7 -0
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js +6 -3
- package/dist/esm/hooks/wallet/useAutoConnectWallet.js.map +2 -2
- package/dist/esm/hooks/wallet/useConnectWallet.d.ts +4 -2
- package/dist/esm/hooks/wallet/useConnectWallet.js +6 -3
- package/dist/esm/hooks/wallet/useConnectWallet.js.map +2 -2
- package/dist/esm/index.css +174 -80
- package/dist/esm/index.css.map +3 -3
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +401 -141
- package/dist/esm/index.js.map +4 -4
- package/dist/esm/themes/lightTheme.d.ts +2 -0
- package/dist/esm/themes/lightTheme.js +62 -0
- package/dist/esm/themes/lightTheme.js.map +7 -0
- package/dist/esm/themes/themeContract.d.ts +140 -0
- package/dist/esm/themes/themeContract.js +67 -0
- package/dist/esm/themes/themeContract.js.map +7 -0
- package/dist/esm/walletStore.d.ts +1 -1
- package/dist/esm/walletStore.js +2 -2
- package/dist/esm/walletStore.js.map +2 -2
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -1
- package/src/components/AccountDropdownMenu.css.ts +20 -20
- package/src/components/AccountDropdownMenu.tsx +22 -20
- package/src/components/ConnectButton.tsx +2 -1
- package/src/components/WalletProvider.tsx +9 -0
- package/src/components/connect-modal/ConnectModal.css.ts +15 -26
- package/src/components/connect-modal/ConnectModal.tsx +18 -14
- package/src/components/connect-modal/InfoSection.css.ts +0 -4
- package/src/components/connect-modal/InfoSection.tsx +8 -2
- package/src/components/connect-modal/views/ConnectionStatus.css.ts +8 -5
- package/src/components/connect-modal/views/ConnectionStatus.tsx +19 -11
- package/src/components/connect-modal/views/GettingStarted.css.ts +5 -3
- package/src/components/connect-modal/views/GettingStarted.tsx +14 -9
- package/src/components/connect-modal/views/WhatIsAWallet.css.ts +0 -2
- package/src/components/connect-modal/views/WhatIsAWallet.tsx +2 -1
- package/src/components/connect-modal/wallet-list/WalletList.css.ts +1 -1
- package/src/components/connect-modal/wallet-list/WalletListItem.css.ts +15 -16
- package/src/components/connect-modal/wallet-list/WalletListItem.tsx +10 -3
- package/src/components/icons/BackIcon.tsx +3 -1
- package/src/components/icons/CheckIcon.tsx +1 -1
- package/src/components/styling/InjectedThemeStyles.tsx +49 -0
- package/src/components/styling/StyleMarker.css.ts +8 -1
- package/src/components/ui/Button.css.ts +50 -0
- package/src/components/ui/Button.tsx +31 -0
- package/src/components/ui/Heading.css.ts +43 -0
- package/src/components/ui/Heading.tsx +52 -0
- package/src/components/ui/IconButton.css.ts +16 -0
- package/src/components/ui/IconButton.tsx +24 -0
- package/src/components/ui/Text.css.ts +38 -0
- package/src/components/ui/Text.tsx +50 -0
- package/src/hooks/wallet/useConnectWallet.ts +6 -3
- package/src/index.ts +1 -0
- package/src/themes/lightTheme.ts +63 -0
- package/src/themes/themeContract.ts +97 -0
- package/src/walletStore.ts +3 -2
|
@@ -6,6 +6,7 @@ import type { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
|
6
6
|
import { useCurrentAccount } from '../hooks/wallet/useCurrentAccount.js';
|
|
7
7
|
import { AccountDropdownMenu } from './AccountDropdownMenu.js';
|
|
8
8
|
import { ConnectModal } from './connect-modal/ConnectModal.js';
|
|
9
|
+
import { Button } from './ui/Button.js';
|
|
9
10
|
|
|
10
11
|
type ConnectButtonProps = {
|
|
11
12
|
connectText?: ReactNode;
|
|
@@ -19,6 +20,6 @@ export function ConnectButton({
|
|
|
19
20
|
return currentAccount ? (
|
|
20
21
|
<AccountDropdownMenu currentAccount={currentAccount} />
|
|
21
22
|
) : (
|
|
22
|
-
<ConnectModal trigger={<
|
|
23
|
+
<ConnectModal trigger={<Button {...buttonProps}>{connectText}</Button>} />
|
|
23
24
|
);
|
|
24
25
|
}
|
|
@@ -11,8 +11,11 @@ import { useAutoConnectWallet } from '../hooks/wallet/useAutoConnectWallet.js';
|
|
|
11
11
|
import { useUnsafeBurnerWallet } from '../hooks/wallet/useUnsafeBurnerWallet.js';
|
|
12
12
|
import { useWalletPropertiesChanged } from '../hooks/wallet/useWalletPropertiesChanged.js';
|
|
13
13
|
import { useWalletsChanged } from '../hooks/wallet/useWalletsChanged.js';
|
|
14
|
+
import { lightTheme } from '../themes/lightTheme.js';
|
|
15
|
+
import type { Theme } from '../themes/themeContract.js';
|
|
14
16
|
import { getRegisteredWallets } from '../utils/walletUtils.js';
|
|
15
17
|
import { createWalletStore } from '../walletStore.js';
|
|
18
|
+
import { InjectedThemeStyles } from './styling/InjectedThemeStyles.js';
|
|
16
19
|
|
|
17
20
|
type WalletProviderProps = {
|
|
18
21
|
/** A list of wallets that are sorted to the top of the wallet list, if they are available to connect to. By default, wallets are sorted by the order they are loaded in. */
|
|
@@ -33,6 +36,9 @@ type WalletProviderProps = {
|
|
|
33
36
|
/** The key to use to store the most recently connected wallet account. */
|
|
34
37
|
storageKey?: string;
|
|
35
38
|
|
|
39
|
+
/** The theme to use for styling UI components. Defaults to using the light theme. */
|
|
40
|
+
theme?: Theme | null;
|
|
41
|
+
|
|
36
42
|
children: ReactNode;
|
|
37
43
|
};
|
|
38
44
|
|
|
@@ -51,6 +57,7 @@ export function WalletProvider({
|
|
|
51
57
|
storageKey = DEFUALT_STORAGE_KEY,
|
|
52
58
|
enableUnsafeBurner = false,
|
|
53
59
|
autoConnect = false,
|
|
60
|
+
theme = lightTheme,
|
|
54
61
|
children,
|
|
55
62
|
}: WalletProviderProps) {
|
|
56
63
|
const storeRef = useRef(
|
|
@@ -69,6 +76,8 @@ export function WalletProvider({
|
|
|
69
76
|
enableUnsafeBurner={enableUnsafeBurner}
|
|
70
77
|
autoConnect={autoConnect}
|
|
71
78
|
>
|
|
79
|
+
{/* TODO: We ideally don't want to inject styles if people aren't using the UI components */}
|
|
80
|
+
{theme ? <InjectedThemeStyles theme={theme} /> : null}
|
|
72
81
|
{children}
|
|
73
82
|
</WalletConnectionManager>
|
|
74
83
|
</WalletContext.Provider>
|
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
|
|
4
4
|
import { style } from '@vanilla-extract/css';
|
|
5
5
|
|
|
6
|
+
import { themeVars } from '../../themes/themeContract.js';
|
|
7
|
+
|
|
6
8
|
export const overlay = style({
|
|
7
|
-
backgroundColor:
|
|
9
|
+
backgroundColor: themeVars.backgroundColors.modalOverlay,
|
|
10
|
+
backdropFilter: themeVars.blurs.modalOverlay,
|
|
8
11
|
position: 'fixed',
|
|
9
12
|
inset: 0,
|
|
10
13
|
zIndex: 999999999,
|
|
@@ -15,7 +18,8 @@ export const title = style({
|
|
|
15
18
|
});
|
|
16
19
|
|
|
17
20
|
export const content = style({
|
|
18
|
-
backgroundColor:
|
|
21
|
+
backgroundColor: themeVars.backgroundColors.modalPrimary,
|
|
22
|
+
borderRadius: themeVars.radii.xlarge,
|
|
19
23
|
position: 'fixed',
|
|
20
24
|
bottom: 16,
|
|
21
25
|
left: 16,
|
|
@@ -24,7 +28,6 @@ export const content = style({
|
|
|
24
28
|
flexDirection: 'column',
|
|
25
29
|
justifyContent: 'space-between',
|
|
26
30
|
overflow: 'hidden',
|
|
27
|
-
borderRadius: 16,
|
|
28
31
|
minHeight: '50vh',
|
|
29
32
|
maxHeight: '85vh',
|
|
30
33
|
maxWidth: 700,
|
|
@@ -40,7 +43,7 @@ export const content = style({
|
|
|
40
43
|
});
|
|
41
44
|
|
|
42
45
|
export const whatIsAWalletButton = style({
|
|
43
|
-
backgroundColor:
|
|
46
|
+
backgroundColor: themeVars.backgroundColors.modalSecondary,
|
|
44
47
|
padding: 16,
|
|
45
48
|
'@media': {
|
|
46
49
|
'screen and (min-width: 768px)': {
|
|
@@ -64,21 +67,7 @@ export const selectedViewContainer = style({
|
|
|
64
67
|
display: 'flex',
|
|
65
68
|
});
|
|
66
69
|
|
|
67
|
-
export const
|
|
68
|
-
backgroundColor: '#0284AD',
|
|
69
|
-
boxShadow: '0px 4px 12px rgba(0, 0, 0, 0.1)',
|
|
70
|
-
color: 'white',
|
|
71
|
-
borderRadius: 12,
|
|
72
|
-
paddingLeft: 24,
|
|
73
|
-
paddingRight: 24,
|
|
74
|
-
paddingTop: 16,
|
|
75
|
-
paddingBottom: 16,
|
|
76
|
-
':hover': {
|
|
77
|
-
backgroundColor: '#007194',
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
export const backButton = style({
|
|
70
|
+
export const backButtonContainer = style({
|
|
82
71
|
position: 'absolute',
|
|
83
72
|
top: 20,
|
|
84
73
|
left: 20,
|
|
@@ -89,24 +78,22 @@ export const backButton = style({
|
|
|
89
78
|
},
|
|
90
79
|
});
|
|
91
80
|
|
|
92
|
-
export const
|
|
81
|
+
export const closeButtonContainer = style({
|
|
93
82
|
position: 'absolute',
|
|
94
|
-
padding: 7,
|
|
95
83
|
top: 16,
|
|
96
84
|
right: 16,
|
|
97
|
-
borderRadius: 9999,
|
|
98
|
-
backgroundColor: '#F0F1F2',
|
|
99
85
|
});
|
|
100
86
|
|
|
101
87
|
export const walletListContent = style({
|
|
102
|
-
padding: 20,
|
|
103
|
-
minWidth: 240,
|
|
104
88
|
display: 'flex',
|
|
105
89
|
flexDirection: 'column',
|
|
90
|
+
flexGrow: 1,
|
|
106
91
|
gap: 24,
|
|
92
|
+
padding: 20,
|
|
93
|
+
backgroundColor: themeVars.backgroundColors.modalPrimary,
|
|
107
94
|
'@media': {
|
|
108
95
|
'screen and (min-width: 768px)': {
|
|
109
|
-
backgroundColor:
|
|
96
|
+
backgroundColor: themeVars.backgroundColors.modalSecondary,
|
|
110
97
|
},
|
|
111
98
|
},
|
|
112
99
|
});
|
|
@@ -119,7 +106,9 @@ export const walletListContainer = style({
|
|
|
119
106
|
'@media': {
|
|
120
107
|
'screen and (min-width: 768px)': {
|
|
121
108
|
flexDirection: 'row',
|
|
109
|
+
flexBasis: 240,
|
|
122
110
|
flexGrow: 0,
|
|
111
|
+
flexShrink: 0,
|
|
123
112
|
},
|
|
124
113
|
},
|
|
125
114
|
});
|
|
@@ -11,6 +11,8 @@ import { useConnectWallet } from '../../hooks/wallet/useConnectWallet.js';
|
|
|
11
11
|
import { BackIcon } from '../icons/BackIcon.js';
|
|
12
12
|
import { CloseIcon } from '../icons/CloseIcon.js';
|
|
13
13
|
import { StyleMarker } from '../styling/StyleMarker.js';
|
|
14
|
+
import { Heading } from '../ui/Heading.js';
|
|
15
|
+
import { IconButton } from '../ui/IconButton.js';
|
|
14
16
|
import * as styles from './ConnectModal.css.js';
|
|
15
17
|
import { ConnectionStatus } from './views/ConnectionStatus.js';
|
|
16
18
|
import { GettingStarted } from './views/GettingStarted.js';
|
|
@@ -108,13 +110,17 @@ export function ConnectModal({ trigger, open, defaultOpen, onOpenChange }: Conne
|
|
|
108
110
|
})}
|
|
109
111
|
>
|
|
110
112
|
<div className={styles.walletListContent}>
|
|
111
|
-
<Dialog.Title className={styles.title}
|
|
113
|
+
<Dialog.Title className={styles.title} asChild>
|
|
114
|
+
<Heading as="h2">Connect a Wallet</Heading>
|
|
115
|
+
</Dialog.Title>
|
|
112
116
|
<WalletList
|
|
113
117
|
selectedWalletName={selectedWallet?.name}
|
|
114
118
|
onPlaceholderClick={() => setCurrentView('getting-started')}
|
|
115
119
|
onSelect={(wallet) => {
|
|
116
|
-
|
|
117
|
-
|
|
120
|
+
if (selectedWallet?.name !== wallet.name) {
|
|
121
|
+
setSelectedWallet(wallet);
|
|
122
|
+
connectWallet(wallet);
|
|
123
|
+
}
|
|
118
124
|
}}
|
|
119
125
|
/>
|
|
120
126
|
</div>
|
|
@@ -126,24 +132,22 @@ export function ConnectModal({ trigger, open, defaultOpen, onOpenChange }: Conne
|
|
|
126
132
|
What is a Wallet?
|
|
127
133
|
</button>
|
|
128
134
|
</div>
|
|
129
|
-
|
|
130
135
|
<div
|
|
131
136
|
className={clsx(styles.viewContainer, {
|
|
132
137
|
[styles.selectedViewContainer]: !!currentView,
|
|
133
138
|
})}
|
|
134
139
|
>
|
|
135
|
-
<
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
>
|
|
141
|
-
<BackIcon />
|
|
142
|
-
</button>
|
|
140
|
+
<div className={styles.backButtonContainer}>
|
|
141
|
+
<IconButton type="button" aria-label="Back" onClick={() => resetSelection()}>
|
|
142
|
+
<BackIcon />
|
|
143
|
+
</IconButton>
|
|
144
|
+
</div>
|
|
143
145
|
{modalContent}
|
|
144
146
|
</div>
|
|
145
|
-
<Dialog.Close className={styles.
|
|
146
|
-
<
|
|
147
|
+
<Dialog.Close className={styles.closeButtonContainer} asChild>
|
|
148
|
+
<IconButton type="button" aria-label="Close">
|
|
149
|
+
<CloseIcon />
|
|
150
|
+
</IconButton>
|
|
147
151
|
</Dialog.Close>
|
|
148
152
|
</Dialog.Content>
|
|
149
153
|
</Dialog.Overlay>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
+
import { Heading } from '../ui/Heading.js';
|
|
5
|
+
import { Text } from '../ui/Text.js';
|
|
4
6
|
import * as styles from './InfoSection.css.js';
|
|
5
7
|
|
|
6
8
|
type InfoSectionProps = {
|
|
@@ -11,8 +13,12 @@ type InfoSectionProps = {
|
|
|
11
13
|
export function InfoSection({ title, children }: InfoSectionProps) {
|
|
12
14
|
return (
|
|
13
15
|
<section className={styles.container}>
|
|
14
|
-
<h3
|
|
15
|
-
|
|
16
|
+
<Heading as="h3" size="sm" weight="normal">
|
|
17
|
+
{title}
|
|
18
|
+
</Heading>
|
|
19
|
+
<Text weight="medium" color="muted">
|
|
20
|
+
{children}
|
|
21
|
+
</Text>
|
|
16
22
|
</section>
|
|
17
23
|
);
|
|
18
24
|
}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
import { style } from '@vanilla-extract/css';
|
|
5
5
|
|
|
6
|
+
import { themeVars } from '../../../themes/themeContract.js';
|
|
7
|
+
|
|
6
8
|
export const container = style({
|
|
7
9
|
display: 'flex',
|
|
8
10
|
flexDirection: 'column',
|
|
@@ -12,14 +14,13 @@ export const container = style({
|
|
|
12
14
|
});
|
|
13
15
|
|
|
14
16
|
export const walletIcon = style({
|
|
15
|
-
backgroundColor: 'white',
|
|
16
17
|
objectFit: 'cover',
|
|
17
18
|
width: 72,
|
|
18
19
|
height: 72,
|
|
19
|
-
borderRadius:
|
|
20
|
+
borderRadius: themeVars.radii.large,
|
|
20
21
|
});
|
|
21
22
|
|
|
22
|
-
export const
|
|
23
|
+
export const title = style({
|
|
23
24
|
marginTop: 12,
|
|
24
25
|
});
|
|
25
26
|
|
|
@@ -27,6 +28,8 @@ export const connectionStatus = style({
|
|
|
27
28
|
marginTop: 4,
|
|
28
29
|
});
|
|
29
30
|
|
|
30
|
-
export const
|
|
31
|
-
|
|
31
|
+
export const retryButtonContainer = style({
|
|
32
|
+
position: 'absolute',
|
|
33
|
+
bottom: 20,
|
|
34
|
+
right: 20,
|
|
32
35
|
});
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import type { WalletWithRequiredFeatures } from '@mysten/wallet-standard';
|
|
5
|
-
import clsx from 'clsx';
|
|
6
5
|
|
|
6
|
+
import { Button } from '../../ui/Button.js';
|
|
7
|
+
import { Heading } from '../../ui/Heading.js';
|
|
8
|
+
import { Text } from '../../ui/Text.js';
|
|
7
9
|
import * as styles from './ConnectionStatus.css.js';
|
|
8
10
|
|
|
9
11
|
type ConnectionStatusProps = {
|
|
@@ -24,18 +26,24 @@ export function ConnectionStatus({
|
|
|
24
26
|
src={selectedWallet.icon}
|
|
25
27
|
alt={`${selectedWallet.name} logo`}
|
|
26
28
|
/>
|
|
27
|
-
<div className={styles.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
>
|
|
33
|
-
{hadConnectionError ?
|
|
29
|
+
<div className={styles.title}>
|
|
30
|
+
<Heading as="h2" size="xl">
|
|
31
|
+
Opening {selectedWallet.name}
|
|
32
|
+
</Heading>
|
|
33
|
+
</div>
|
|
34
|
+
<div className={styles.connectionStatus}>
|
|
35
|
+
{hadConnectionError ? (
|
|
36
|
+
<Text color="danger">Connection failed</Text>
|
|
37
|
+
) : (
|
|
38
|
+
<Text color="muted">Confirm connection in the wallet...</Text>
|
|
39
|
+
)}
|
|
34
40
|
</div>
|
|
35
41
|
{hadConnectionError ? (
|
|
36
|
-
<
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
<div className={styles.retryButtonContainer}>
|
|
43
|
+
<Button type="button" variant="outline" onClick={() => onRetryConnection(selectedWallet)}>
|
|
44
|
+
Retry Connection
|
|
45
|
+
</Button>
|
|
46
|
+
</div>
|
|
39
47
|
) : null}
|
|
40
48
|
</div>
|
|
41
49
|
);
|
|
@@ -9,8 +9,6 @@ export const container = style({
|
|
|
9
9
|
alignItems: 'center',
|
|
10
10
|
});
|
|
11
11
|
|
|
12
|
-
export const title = style({});
|
|
13
|
-
|
|
14
12
|
export const content = style({
|
|
15
13
|
display: 'flex',
|
|
16
14
|
flexDirection: 'column',
|
|
@@ -20,4 +18,8 @@ export const content = style({
|
|
|
20
18
|
padding: 40,
|
|
21
19
|
});
|
|
22
20
|
|
|
23
|
-
export const
|
|
21
|
+
export const installButtonContainer = style({
|
|
22
|
+
position: 'absolute',
|
|
23
|
+
bottom: 20,
|
|
24
|
+
right: 20,
|
|
25
|
+
});
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
+
import { Button } from '../../ui/Button.js';
|
|
5
|
+
import { Heading } from '../../ui/Heading.js';
|
|
4
6
|
import { InfoSection } from '../InfoSection.js';
|
|
5
7
|
import * as styles from './GettingStarted.css.js';
|
|
6
8
|
|
|
7
9
|
export function GettingStarted() {
|
|
8
10
|
return (
|
|
9
11
|
<div className={styles.container}>
|
|
10
|
-
<
|
|
12
|
+
<Heading as="h2">Get Started with Sui</Heading>
|
|
11
13
|
<div className={styles.content}>
|
|
12
14
|
<InfoSection title="Install the Sui Wallet Extension">
|
|
13
15
|
We recommend pinning Sui Wallet to your taskbar for quicker access.
|
|
@@ -19,14 +21,17 @@ export function GettingStarted() {
|
|
|
19
21
|
<InfoSection title="Refresh Your Browser">
|
|
20
22
|
Once you set up your wallet, refresh this window browser to load up the extension.
|
|
21
23
|
</InfoSection>
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
<div className={styles.installButtonContainer}>
|
|
25
|
+
<Button variant="outline" asChild>
|
|
26
|
+
<a
|
|
27
|
+
href="https://chrome.google.com/webstore/detail/sui-wallet/opcgpfmipidbgpenhmajoajpbobppdil"
|
|
28
|
+
target="_blank"
|
|
29
|
+
rel="noreferrer"
|
|
30
|
+
>
|
|
31
|
+
Install Wallet Extension
|
|
32
|
+
</a>
|
|
33
|
+
</Button>
|
|
34
|
+
</div>
|
|
30
35
|
</div>
|
|
31
36
|
</div>
|
|
32
37
|
);
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
+
import { Heading } from '../../ui/Heading.js';
|
|
4
5
|
import { InfoSection } from '../InfoSection.js';
|
|
5
6
|
import * as styles from './WhatIsAWallet.css.js';
|
|
6
7
|
|
|
7
8
|
export function WhatIsAWallet() {
|
|
8
9
|
return (
|
|
9
10
|
<div className={styles.container}>
|
|
10
|
-
<
|
|
11
|
+
<Heading as="h2">What is a Wallet</Heading>
|
|
11
12
|
<div className={styles.content}>
|
|
12
13
|
<InfoSection title="Easy Login">
|
|
13
14
|
No need to create new accounts and passwords for every website. Just connect your wallet
|
|
@@ -3,34 +3,33 @@
|
|
|
3
3
|
|
|
4
4
|
import { style } from '@vanilla-extract/css';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
padding: 8,
|
|
8
|
-
borderRadius: 8,
|
|
9
|
-
});
|
|
6
|
+
import { themeVars } from '../../../themes/themeContract.js';
|
|
10
7
|
|
|
11
|
-
export const
|
|
12
|
-
|
|
13
|
-
boxShadow: '0px 2px 6px rgba(0, 0, 0, 0.05)',
|
|
8
|
+
export const container = style({
|
|
9
|
+
display: 'flex',
|
|
14
10
|
});
|
|
15
11
|
|
|
16
|
-
export const
|
|
17
|
-
width: '100%',
|
|
12
|
+
export const walletItem = style({
|
|
18
13
|
display: 'flex',
|
|
19
14
|
alignItems: 'center',
|
|
20
|
-
|
|
15
|
+
flexGrow: 1,
|
|
16
|
+
padding: 8,
|
|
17
|
+
gap: 8,
|
|
18
|
+
borderRadius: themeVars.radii.large,
|
|
19
|
+
':hover': {
|
|
20
|
+
backgroundColor: themeVars.backgroundColors.walletItemHover,
|
|
21
|
+
},
|
|
21
22
|
});
|
|
22
23
|
|
|
23
|
-
export const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
whiteSpace: 'nowrap',
|
|
24
|
+
export const selectedWalletItem = style({
|
|
25
|
+
backgroundColor: themeVars.backgroundColors.walletItemSelected,
|
|
26
|
+
boxShadow: '0px 2px 6px rgba(0, 0, 0, 0.05)',
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
export const walletIcon = style({
|
|
30
30
|
width: 28,
|
|
31
31
|
height: 28,
|
|
32
|
-
borderRadius: 6,
|
|
33
32
|
flexShrink: 0,
|
|
34
|
-
background: 'white',
|
|
35
33
|
objectFit: 'cover',
|
|
34
|
+
borderRadius: themeVars.radii.small,
|
|
36
35
|
});
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import type { ReactNode } from 'react';
|
|
6
6
|
|
|
7
|
+
import { Heading } from '../../ui/Heading.js';
|
|
7
8
|
import * as styles from './WalletListItem.css.js';
|
|
8
9
|
|
|
9
10
|
type WalletListItemProps = {
|
|
@@ -15,14 +16,20 @@ type WalletListItemProps = {
|
|
|
15
16
|
|
|
16
17
|
export function WalletListItem({ name, icon, onClick, isSelected = false }: WalletListItemProps) {
|
|
17
18
|
return (
|
|
18
|
-
<li className={
|
|
19
|
-
<button
|
|
19
|
+
<li className={styles.container}>
|
|
20
|
+
<button
|
|
21
|
+
className={clsx(styles.walletItem, { [styles.selectedWalletItem]: isSelected })}
|
|
22
|
+
type="button"
|
|
23
|
+
onClick={onClick}
|
|
24
|
+
>
|
|
20
25
|
{typeof icon === 'string' ? (
|
|
21
26
|
<img className={styles.walletIcon} src={icon} alt={`${name} logo`} />
|
|
22
27
|
) : (
|
|
23
28
|
icon
|
|
24
29
|
)}
|
|
25
|
-
<
|
|
30
|
+
<Heading size="md" truncate asChild>
|
|
31
|
+
<div>{name}</div>
|
|
32
|
+
</Heading>
|
|
26
33
|
</button>
|
|
27
34
|
</li>
|
|
28
35
|
);
|
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
|
|
4
4
|
import type { ComponentProps } from 'react';
|
|
5
5
|
|
|
6
|
+
// FIXME: Replace this with a 10x10 icon to match the CheckIcon, or alternatively make the CheckIcon bigger
|
|
7
|
+
// Right now, the icons don't align on mobile :(
|
|
6
8
|
export function BackIcon(props: ComponentProps<'svg'>) {
|
|
7
9
|
return (
|
|
8
10
|
<svg width={24} height={24} fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
|
|
9
11
|
<path
|
|
10
12
|
d="M7.57 12.262c0 .341.13.629.403.895l5.175 5.059c.204.205.45.307.751.307.609 0 1.101-.485 1.101-1.087 0-.293-.123-.574-.349-.8L10.14 12.27l4.511-4.375A1.13 1.13 0 0 0 15 7.087C15 6.485 14.508 6 13.9 6c-.295 0-.54.103-.752.308l-5.175 5.058c-.28.28-.404.56-.404.896Z"
|
|
11
|
-
fill="
|
|
13
|
+
fill="currentColor"
|
|
12
14
|
/>
|
|
13
15
|
</svg>
|
|
14
16
|
);
|
|
@@ -7,7 +7,7 @@ export function CheckIcon(props: ComponentProps<'svg'>) {
|
|
|
7
7
|
return (
|
|
8
8
|
<svg xmlns="http://www.w3.org/2000/svg" width={16} height={16} fill="none" {...props}>
|
|
9
9
|
<path
|
|
10
|
-
fill="
|
|
10
|
+
fill="currentColor"
|
|
11
11
|
d="m11.726 5.048-4.73 5.156-1.722-1.879a.72.72 0 0 0-.529-.23.722.722 0 0 0-.525.24.858.858 0 0 0-.22.573.86.86 0 0 0 .211.576l2.255 2.458c.14.153.332.24.53.24.2 0 .391-.087.532-.24l5.261-5.735A.86.86 0 0 0 13 5.63a.858.858 0 0 0-.22-.572.722.722 0 0 0-.525-.24.72.72 0 0 0-.529.23Z"
|
|
12
12
|
/>
|
|
13
13
|
</svg>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { assignInlineVars } from '@vanilla-extract/dynamic';
|
|
5
|
+
|
|
6
|
+
import { styleDataAttributeSelector } from '../../constants/styleDataAttribute.js';
|
|
7
|
+
import { themeVars } from '../../themes/themeContract.js';
|
|
8
|
+
import type { DynamicTheme, Theme, ThemeVars } from '../../themes/themeContract.js';
|
|
9
|
+
|
|
10
|
+
type InjectedThemeStylesProps = {
|
|
11
|
+
theme: Theme;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export function InjectedThemeStyles({ theme }: InjectedThemeStylesProps) {
|
|
15
|
+
const themeStyles = Array.isArray(theme)
|
|
16
|
+
? getDynamicThemeStyles(theme)
|
|
17
|
+
: getStaticThemeStyles(theme);
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<style
|
|
21
|
+
dangerouslySetInnerHTML={{
|
|
22
|
+
__html: themeStyles,
|
|
23
|
+
}}
|
|
24
|
+
/>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function getDynamicThemeStyles(themes: DynamicTheme[]) {
|
|
29
|
+
return themes
|
|
30
|
+
.map(({ mediaQuery, selector, variables }) => {
|
|
31
|
+
const themeStyles = getStaticThemeStyles(variables);
|
|
32
|
+
const themeStylesWithSelectorPrefix = selector ? `${selector} ${themeStyles}` : themeStyles;
|
|
33
|
+
|
|
34
|
+
return mediaQuery
|
|
35
|
+
? `@media ${mediaQuery}{${themeStylesWithSelectorPrefix}}`
|
|
36
|
+
: themeStylesWithSelectorPrefix;
|
|
37
|
+
})
|
|
38
|
+
.join(' ');
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function getStaticThemeStyles(theme: ThemeVars) {
|
|
42
|
+
return `${styleDataAttributeSelector} {${cssStringFromTheme(theme)}}`;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function cssStringFromTheme(theme: ThemeVars) {
|
|
46
|
+
return Object.entries(assignInlineVars(themeVars, theme))
|
|
47
|
+
.map(([key, value]) => `${key}:${value};`)
|
|
48
|
+
.join('');
|
|
49
|
+
}
|
|
@@ -4,9 +4,17 @@
|
|
|
4
4
|
import { globalStyle } from '@vanilla-extract/css';
|
|
5
5
|
|
|
6
6
|
import { styleDataAttributeSelector } from '../../constants/styleDataAttribute.js';
|
|
7
|
+
import { themeVars } from '../../themes/themeContract.js';
|
|
7
8
|
|
|
8
9
|
globalStyle(createScopedSelector('*'), {
|
|
9
10
|
boxSizing: 'border-box',
|
|
11
|
+
color: themeVars.colors.body,
|
|
12
|
+
fontFamily: themeVars.typography.fontFamily,
|
|
13
|
+
fontSize: themeVars.fontWeights.normal,
|
|
14
|
+
fontStyle: themeVars.typography.fontStyle,
|
|
15
|
+
fontWeight: themeVars.fontWeights.normal,
|
|
16
|
+
lineHeight: themeVars.typography.lineHeight,
|
|
17
|
+
letterSpacing: themeVars.typography.letterSpacing,
|
|
10
18
|
});
|
|
11
19
|
|
|
12
20
|
globalStyle(createScopedSelector('button'), {
|
|
@@ -16,7 +24,6 @@ globalStyle(createScopedSelector('button'), {
|
|
|
16
24
|
fontFamily: 'inherit',
|
|
17
25
|
lineHeight: 'inherit',
|
|
18
26
|
letterSpacing: 'inherit',
|
|
19
|
-
outline: 'none',
|
|
20
27
|
color: 'inherit',
|
|
21
28
|
border: 0,
|
|
22
29
|
padding: 0,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { RecipeVariants } from '@vanilla-extract/recipes';
|
|
5
|
+
import { recipe } from '@vanilla-extract/recipes';
|
|
6
|
+
|
|
7
|
+
import { themeVars } from '../../themes/themeContract.js';
|
|
8
|
+
|
|
9
|
+
export const buttonVariants = recipe({
|
|
10
|
+
base: {
|
|
11
|
+
display: 'inline-flex',
|
|
12
|
+
alignItems: 'center',
|
|
13
|
+
justifyContent: 'center',
|
|
14
|
+
fontWeight: themeVars.fontWeights.medium,
|
|
15
|
+
':disabled': {
|
|
16
|
+
opacity: 0.5,
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
variants: {
|
|
20
|
+
variant: {
|
|
21
|
+
primary: {
|
|
22
|
+
backgroundColor: themeVars.backgroundColors.primaryButton,
|
|
23
|
+
color: themeVars.colors.primaryButton,
|
|
24
|
+
boxShadow: themeVars.shadows.primaryButton,
|
|
25
|
+
':hover': {
|
|
26
|
+
backgroundColor: themeVars.backgroundColors.primaryButtonHover,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
outline: {
|
|
30
|
+
borderWidth: 1,
|
|
31
|
+
borderStyle: 'solid',
|
|
32
|
+
borderColor: themeVars.borderColors.outlineButton,
|
|
33
|
+
color: themeVars.colors.outlineButton,
|
|
34
|
+
':hover': {
|
|
35
|
+
backgroundColor: themeVars.backgroundColors.outlineButtonHover,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
size: {
|
|
40
|
+
md: { borderRadius: themeVars.radii.medium, padding: '8px 16px' },
|
|
41
|
+
lg: { borderRadius: themeVars.radii.large, padding: '16px 24px ' },
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
defaultVariants: {
|
|
45
|
+
variant: 'primary',
|
|
46
|
+
size: 'md',
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
export type ButtonVariants = RecipeVariants<typeof buttonVariants>;
|