Merge pull request #2654 from blockscout/chakra-v3

Update Chakra UI to v3
This commit is contained in:
tom goriunov
2025-04-03 10:36:41 +02:00
committed by GitHub
2029 changed files with 25662 additions and 21239 deletions
+4
View File
@@ -362,6 +362,7 @@
"arbitrum",
"arbitrum_sepolia",
"base",
"blackfort_testnet",
"celo_alfajores",
"garnet",
"gnosis",
@@ -371,12 +372,15 @@
"eth_sepolia",
"filecoin",
"mekong",
"neon_devnet",
"optimism",
"optimism_celestia",
"optimism_interop_0",
"optimism_sepolia",
"polygon",
"rari_testnet",
"rootstock_testnet",
"scroll_sepolia",
"shibarium",
"stability_testnet",
"zkevm",
+6 -1
View File
@@ -9,7 +9,12 @@ RUN ln -sf /usr/bin/python3 /usr/bin/python
### APP
# Install dependencies
WORKDIR /app
COPY package.json yarn.lock ./
COPY package.json yarn.lock tsconfig.json ./
COPY types ./types
COPY lib ./lib
COPY configs/app ./configs/app
COPY toolkit/theme ./toolkit/theme
COPY ui/shared/forms/validators/url.ts ./ui/shared/forms/validators/url.ts
RUN apk add git
RUN yarn --frozen-lockfile --network-timeout 100000
+2
View File
@@ -10,10 +10,12 @@ const baseUrl = [
appPort && ':' + appPort,
].filter(Boolean).join('');
const isDev = getEnvValue('NEXT_PUBLIC_APP_ENV') === 'development';
const isPw = getEnvValue('NEXT_PUBLIC_APP_INSTANCE') === 'pw';
const spriteHash = getEnvValue('NEXT_PUBLIC_ICON_SPRITE_HASH');
const app = Object.freeze({
isDev,
isPw,
protocol: appSchema,
host: appHost,
port: appPort,
+17 -11
View File
@@ -10,37 +10,41 @@ NEXT_PUBLIC_APP_ENV=development
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws
# Instance ENVs
NEXT_PUBLIC_AD_ADBUTLER_CONFIG_DESKTOP={ "id": "728301", "width": "728", "height": "90" }
NEXT_PUBLIC_AD_ADBUTLER_CONFIG_MOBILE={ "id": "728302", "width": "320", "height": "100" }
NEXT_PUBLIC_AD_BANNER_ADDITIONAL_PROVIDER=adbutler
NEXT_PUBLIC_ADMIN_SERVICE_API_HOST=https://admin-rs.services.blockscout.com
NEXT_PUBLIC_API_BASE_PATH=/
NEXT_PUBLIC_API_HOST=base.blockscout.com
NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml
NEXT_PUBLIC_CONTRACT_CODE_IDES=[{'title':'Remix IDE','url':'https://remix.ethereum.org/?address={hash}&blockscout={domain}','icon_url':'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/ide-icons/remix.png'}]
NEXT_PUBLIC_CONTRACT_INFO_API_HOST=https://contracts-info.services.blockscout.com
NEXT_PUBLIC_DEFI_DROPDOWN_ITEMS=[{'text':'Swap','icon':'swap','dappId':'aerodrome'},{'text':'Payment link','icon':'payment_link','dappId':'peanut-protocol'},{'text':'Get gas','icon':'gas','dappId':'smol-refuel'}]
NEXT_PUBLIC_DEFI_DROPDOWN_ITEMS=[{'text':'Swap','icon':'swap','dappId':'rubic'},{'text':'Disperse','icon':'txn_batches_slim','dappId':'smol'},{'text':'Payment link','icon':'payment_link','dappId':'peanut-protocol'},{'text':'Get gas','icon':'gas','dappId':'smol-refuel'}]
NEXT_PUBLIC_DEX_POOLS_ENABLED=true
NEXT_PUBLIC_FAULT_PROOF_ENABLED=true
NEXT_PUBLIC_FEATURED_NETWORKS=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/featured-networks/base-mainnet.json
NEXT_PUBLIC_FOOTER_LINKS=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/footer-links/base-mainnet.json
NEXT_PUBLIC_GAME_BADGE_CLAIM_LINK=https://badges.blockscout.com/mint/sherblockHolmesBadge
NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Need gas?', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&disableBridges=true', 'dapp_id': 'smol-refuel', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png'}
NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0xfd5c5dae7b69fe29e61d19b9943e688aa0f1be1e983c4fba8fe985f90ff69d5f
NEXT_PUBLIC_HAS_CONTRACT_AUDIT_REPORTS=true
NEXT_PUBLIC_HAS_USER_OPS=true
NEXT_PUBLIC_HIDE_INDEXING_ALERT_INT_TXS=true
NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs']
NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND=linear-gradient(136.9deg,rgb(107 94 236) 1.5%,rgb(0 82 255) 56.84%,rgb(82 62 231) 98.54%)
NEXT_PUBLIC_HOMEPAGE_HERO_BANNER_CONFIG={'background':['linear-gradient(136.9deg,rgb(107 94 236) 1.5%,rgb(0 82 255) 56.84%,rgb(82 62 231) 98.54%)']}
NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED=true
NEXT_PUBLIC_LOGOUT_URL=https://basechain.us.auth0.com/v2/logout
NEXT_PUBLIC_MARKETPLACE_BANNER_CONTENT_URL=https://gist.githubusercontent.com/maxaleks/0d18fc309ff499075127b364cc69306d/raw/2a51f961a8c1b9f884f2ab7eed79d4b69330e1ae/peanut_protocol_banner.html
NEXT_PUBLIC_MARKETPLACE_BANNER_LINK_URL=https://base.blockscout.com/apps/peanut-protocol
NEXT_PUBLIC_MAINTENANCE_ALERT_MESSAGE=<p>Joined recent campaigns? Mint your Merit Badge <a href="https://badges.blockscout.com?utm_source=instance&utm_medium=base">here</a></p>
NEXT_PUBLIC_MARKETPLACE_BANNER_CONTENT_URL=https://gist.githubusercontent.com/maikReal/974c47f86a3158c1a86b092ae2f044b3/raw/abcc7e02150cd85d4974503a0357162c0a2c35a9/merits-banner.html
NEXT_PUBLIC_MARKETPLACE_BANNER_LINK_URL=https://swap.blockscout.com?utm_source=blockscout&utm_medium=base
NEXT_PUBLIC_MARKETPLACE_CATEGORIES_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-categories/default.json
NEXT_PUBLIC_MARKETPLACE_ENABLED=true
NEXT_PUBLIC_MARKETPLACE_RATING_AIRTABLE_BASE_ID=appGkvtmKI7fXE4Vs
NEXT_PUBLIC_MARKETPLACE_SECURITY_REPORTS_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-security-reports/default.json
NEXT_PUBLIC_MARKETPLACE_SUBMIT_FORM=https://airtable.com/appiy5yijZpMMSKjT/shr6uMGPKjj1DK7NL
NEXT_PUBLIC_MARKETPLACE_SUGGEST_IDEAS_FORM=https://airtable.com/appiy5yijZpMMSKjT/pag3t82DUCyhGRZZO/form
NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com
NEXT_PUBLIC_METASUITES_ENABLED=true
NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG=[{'name': 'zerion', 'dapp_id': 'zerion', 'url_template': 'https://app.zerion.io/{address}/overview?utm_source=blockscout&utm_medium=address', 'logo': 'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-logos/zerion.svg'}]
NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG=[{'name': 'zerion', 'url_template': 'https://app.zerion.io/{address}/overview', 'logo': 'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-logos/zerion.svg'},{'name': 'zapper', 'url_template': 'https://zapper.xyz/account/{address}', 'logo': 'https://blockscout-content.s3.amazonaws.com/zapper-icon.png'}]
NEXT_PUBLIC_NAME_SERVICE_API_HOST=https://bens.services.blockscout.com
NEXT_PUBLIC_NAVIGATION_HIGHLIGHTED_ROUTES=['/apps']
NEXT_PUBLIC_NAVIGATION_HIGHLIGHTED_ROUTES=['/pools']
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Ether
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ETH
@@ -59,8 +63,10 @@ NEXT_PUBLIC_ROLLUP_L1_BASE_URL=https://eth.blockscout.com/
NEXT_PUBLIC_ROLLUP_L2_WITHDRAWAL_URL=https://bridge.base.org/withdraw
NEXT_PUBLIC_ROLLUP_TYPE=optimistic
NEXT_PUBLIC_SAFE_TX_SERVICE_URL=https://safe-transaction-base.safe.global
NEXT_PUBLIC_STATS_API_HOST=https://stats-l2-base-mainnet.k8s-prod-1.blockscout.com
NEXT_PUBLIC_STATS_API_HOST=https://stats-l2-base-mainnet.k8s-prod-2.blockscout.com
NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER=blockscout
NEXT_PUBLIC_VIEWS_ADDRESS_IDENTICON_TYPE=gradient_avatar
NEXT_PUBLIC_VIEWS_CONTRACT_SOLIDITYSCAN_ENABLED=true
NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com
NEXT_PUBLIC_VIEWS_NFT_MARKETPLACES=[{'name':'OpenSea','collection_url':'https://opensea.io/assets/base/{hash}','instance_url':'https://opensea.io/assets/base/{hash}/{id}','logo_url':'https://opensea.io/static/images/logos/opensea-logo.svg'}]
NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com
NEXT_PUBLIC_XSTAR_SCORE_URL=https://docs.xname.app/the-solution-adaptive-proof-of-humanity-on-blockchain/xhs-scoring-algorithm?utm_source=blockscout&utm_medium=address
+12 -7
View File
@@ -9,18 +9,21 @@ NEXT_PUBLIC_APP_PORT=3000
NEXT_PUBLIC_APP_ENV=development
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws
NEXT_PUBLIC_CELO_ENABLED=true
NEXT_PUBLIC_CELO_L2_UPGRADE_BLOCK=26369280
# Instance ENVs
NEXT_PUBLIC_ADMIN_SERVICE_API_HOST=https://admin-rs.services.blockscout.com
NEXT_PUBLIC_API_BASE_PATH=/
NEXT_PUBLIC_API_HOST=celo-alfajores.blockscout.com
NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml
NEXT_PUBLIC_CELO_ENABLED=true
NEXT_PUBLIC_CELO_L2_UPGRADE_BLOCK=26369280
NEXT_PUBLIC_CONTRACT_CODE_IDES=[{'title':'Remix IDE','url':'https://remix.ethereum.org/?address={hash}&blockscout={domain}','icon_url':'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/ide-icons/remix.png'}]
NEXT_PUBLIC_CONTRACT_INFO_API_HOST=https://contracts-info.services.blockscout.com
NEXT_PUBLIC_FEATURED_NETWORKS=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/featured-networks/celo-alfajores-testnet.json
NEXT_PUBLIC_GAME_BADGE_CLAIM_LINK=https://badges.blockscout.com/mint/sherblockHolmesBadge
NEXT_PUBLIC_GAS_TRACKER_ENABLED=false
NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0x9767ce30754afad2a3279b9df2d13257f467c3dad4e0e601271e66d16dfd1641
NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs']
NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND=rgba(252, 255, 82, 1)
NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR=rgba(0, 0, 0, 1)
NEXT_PUBLIC_HOMEPAGE_HERO_BANNER_CONFIG={'background':['rgba(252, 255, 82, 1)'],'text_color':['rgba(0, 0, 0, 1)']}
NEXT_PUBLIC_IS_TESTNET=true
NEXT_PUBLIC_MARKETPLACE_ENABLED=false
NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com
@@ -32,12 +35,14 @@ NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/blockscout/front
NEXT_PUBLIC_NETWORK_ID=44787
NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/celo-logo-light.svg
NEXT_PUBLIC_NETWORK_LOGO_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/celo-logo-dark.svg
NEXT_PUBLIC_NETWORK_MULTIPLE_GAS_CURRENCIES=true
NEXT_PUBLIC_NETWORK_NAME=Celo Alfajores
NEXT_PUBLIC_NETWORK_RPC_URL=https://alfajores-forno.celo-testnet.org
NEXT_PUBLIC_NETWORK_SHORT_NAME=Alfajores
NEXT_PUBLIC_OG_ENHANCED_DATA_ENABLED=true
NEXT_PUBLIC_OG_IMAGE_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/og-images/celo.png
NEXT_PUBLIC_STATS_API_HOST=https://stats-alfajores-testnet.k8s-prod-1.blockscout.com
NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER=blockscout
NEXT_PUBLIC_VIEWS_BLOCK_HIDDEN_FIELDS=['burnt_fees']
NEXT_PUBLIC_VIEWS_CONTRACT_SOLIDITYSCAN_ENABLED=true
NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com
NEXT_PUBLIC_HOMEPAGE_STATS=['total_blocks','average_block_time','total_txs','wallet_addresses','gas_tracker','current_epoch']
NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com
+2
View File
@@ -9,6 +9,8 @@ NEXT_PUBLIC_APP_PORT=3000
NEXT_PUBLIC_APP_ENV=development
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws
NEXT_PUBLIC_COLOR_THEME_DEFAULT=dim
# Instance ENVs
NEXT_PUBLIC_ADMIN_SERVICE_API_HOST=https://admin-rs.services.blockscout.com
NEXT_PUBLIC_API_BASE_PATH=/
+18 -13
View File
@@ -9,45 +9,49 @@ NEXT_PUBLIC_APP_PORT=3000
NEXT_PUBLIC_APP_ENV=development
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws
NEXT_PUBLIC_ROLLUP_OUTPUT_ROOTS_ENABLED=true
# Instance ENVs
NEXT_PUBLIC_AD_ADBUTLER_CONFIG_DESKTOP={ "id": "749780", "width": "728", "height": "90" }
NEXT_PUBLIC_AD_ADBUTLER_CONFIG_MOBILE={ "id": "749779", "width": "320", "height": "100" }
NEXT_PUBLIC_AD_BANNER_ADDITIONAL_PROVIDER=adbutler
NEXT_PUBLIC_ADMIN_SERVICE_API_HOST=https://admin-rs.services.blockscout.com
NEXT_PUBLIC_API_BASE_PATH=/
NEXT_PUBLIC_API_HOST=optimism.blockscout.com
NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml
NEXT_PUBLIC_CONTRACT_CODE_IDES=[{'title':'Remix IDE','url':'https://remix.ethereum.org/?address={hash}&blockscout={domain}','icon_url':'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/ide-icons/remix.png'}]
NEXT_PUBLIC_CONTRACT_INFO_API_HOST=https://contracts-info.services.blockscout.com
NEXT_PUBLIC_DEFI_DROPDOWN_ITEMS=[{'text':'Swap','icon':'swap','dappId':'velodrome'},{'text':'Payment link','icon':'payment_link','dappId':'peanut-protocol'},{'text':'Get gas','icon':'gas','dappId':'smol-refuel'}]
NEXT_PUBLIC_DEFI_DROPDOWN_ITEMS=[{'text':'Swap','icon':'swap','dappId':'rubic'},{'text':'Disperse','icon':'txn_batches_slim','dappId':'smol'},{'text':'Payment link','icon':'payment_link','dappId':'peanut-protocol'},{'text':'Get gas','icon':'gas','dappId':'smol-refuel'}]
NEXT_PUBLIC_DEX_POOLS_ENABLED=true
NEXT_PUBLIC_FAULT_PROOF_ENABLED=true
NEXT_PUBLIC_FEATURED_NETWORKS=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/featured-networks/optimism-mainnet.json
NEXT_PUBLIC_FOOTER_LINKS=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/footer-links/optimism.json
NEXT_PUBLIC_GAME_BADGE_CLAIM_LINK=https://badges.blockscout.com/mint/sherblockHolmesBadge
NEXT_PUBLIC_GAS_REFUEL_PROVIDER_CONFIG={'name': 'Need gas?', 'url_template': 'https://smolrefuel.com/?outboundChain={chainId}&partner=blockscout&utm_source=blockscout&disableBridges=true', 'dapp_id': 'smol-refuel', 'logo': 'https://blockscout-content.s3.amazonaws.com/smolrefuel-logo-action-button.png'}
NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0x97f34a4cf685e365460dd38dbe16e092d8e4cc4b6ac779e3abcf4c18df6b1329
NEXT_PUBLIC_HAS_CONTRACT_AUDIT_REPORTS=true
NEXT_PUBLIC_HAS_USER_OPS=true
NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs', 'coin_price', 'market_cap', 'secondary_coin_price']
NEXT_PUBLIC_HOMEPAGE_PLATE_BACKGROUND=linear-gradient(90deg, rgb(232, 52, 53) 0%, rgb(139, 28, 232) 100%)
NEXT_PUBLIC_HOMEPAGE_PLATE_TEXT_COLOR=rgb(255, 255, 255)
NEXT_PUBLIC_HOMEPAGE_HERO_BANNER_CONFIG={'background':['linear-gradient(90deg, rgb(232, 52, 53) 0%, rgb(139, 28, 232) 100%)'],'text_color':['rgb(255, 255, 255)']}
NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED=true
NEXT_PUBLIC_LOGOUT_URL=https://optimism-goerli.us.auth0.com/v2/logout
NEXT_PUBLIC_MARKETPLACE_BANNER_CONTENT_URL=https://gist.githubusercontent.com/maxaleks/0d18fc309ff499075127b364cc69306d/raw/2a51f961a8c1b9f884f2ab7eed79d4b69330e1ae/peanut_protocol_banner.html
NEXT_PUBLIC_MARKETPLACE_BANNER_LINK_URL=https://optimism.blockscout.com/apps/peanut-protocol
NEXT_PUBLIC_MAINTENANCE_ALERT_MESSAGE=<p>Joined recent campaigns? Mint your Merit Badge <a href="https://badges.blockscout.com?utm_source=instance&utm_medium=optimism">here</a></p>
NEXT_PUBLIC_MARKETPLACE_BANNER_CONTENT_URL=https://gist.githubusercontent.com/maikReal/974c47f86a3158c1a86b092ae2f044b3/raw/abcc7e02150cd85d4974503a0357162c0a2c35a9/merits-banner.html
NEXT_PUBLIC_MARKETPLACE_BANNER_LINK_URL=https://swap.blockscout.com?utm_source=blockscout&utm_medium=optimism
NEXT_PUBLIC_MARKETPLACE_CATEGORIES_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-categories/default.json
NEXT_PUBLIC_MARKETPLACE_ENABLED=true
NEXT_PUBLIC_MARKETPLACE_RATING_AIRTABLE_BASE_ID=appGkvtmKI7fXE4Vs
NEXT_PUBLIC_MARKETPLACE_SECURITY_REPORTS_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-security-reports/default.json
NEXT_PUBLIC_MARKETPLACE_SUBMIT_FORM=https://airtable.com/appiy5yijZpMMSKjT/shr6uMGPKjj1DK7NL
NEXT_PUBLIC_MARKETPLACE_SUGGEST_IDEAS_FORM=https://airtable.com/appiy5yijZpMMSKjT/pag3t82DUCyhGRZZO/form
NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com
NEXT_PUBLIC_METASUITES_ENABLED=true
NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG=[{'name': 'zerion', 'dapp_id': 'zerion', 'url_template': 'https://app.zerion.io/{address}/overview?utm_source=blockscout&utm_medium=address', 'logo': 'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-logos/zerion.svg'}]
NEXT_PUBLIC_MULTICHAIN_BALANCE_PROVIDER_CONFIG=[{'name': 'zerion', 'url_template': 'https://app.zerion.io/{address}/overview?utm_source=blockscout&utm_medium=address', 'logo': 'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/marketplace-logos/zerion.svg'}]
NEXT_PUBLIC_NAME_SERVICE_API_HOST=https://bens.services.blockscout.com
NEXT_PUBLIC_NAVIGATION_HIGHLIGHTED_ROUTES=['/apps']
NEXT_PUBLIC_NAVIGATION_HIGHLIGHTED_ROUTES=['/pools']
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Ether
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ETH
NEXT_PUBLIC_NETWORK_EXPLORERS=[{'title':'GeckoTerminal','logo':'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/explorer-logos/geckoterminal.png','baseUrl':'https://www.geckoterminal.com/','paths':{'token':'/optimism/pools'}}, {'title':'Tenderly','logo':'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/explorer-logos/tenderly.png','baseUrl':'https://dashboard.tenderly.co','paths':{'tx':'/tx/optimistic'}},{'title':'3xpl','logo':'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/explorer-logos/3xpl.png','baseUrl':'https://3xpl.com/','paths':{'tx':'/optimism/transaction','address':'/optimism/address'}}]
NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/optimism.svg
NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/optimism.svg
NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/optimism-mainnet-light.svg
NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/optimism-mainnet-dark.svg
NEXT_PUBLIC_NETWORK_ID=10
NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/optimism.svg
NEXT_PUBLIC_NETWORK_LOGO_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/optimism.svg
@@ -66,4 +70,5 @@ NEXT_PUBLIC_STATS_API_HOST=https://stats-optimism-mainnet.k8s-prod-1.blockscout.
NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER=blockscout
NEXT_PUBLIC_VIEWS_CONTRACT_SOLIDITYSCAN_ENABLED=true
NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com
NEXT_PUBLIC_WEB3_WALLETS=['token_pocket', 'metamask']
NEXT_PUBLIC_WEB3_WALLETS=['token_pocket', 'metamask']
NEXT_PUBLIC_XSTAR_SCORE_URL=https://docs.xname.app/the-solution-adaptive-proof-of-humanity-on-blockchain/xhs-scoring-algorithm?utm_source=blockscout&utm_medium=address
+47
View File
@@ -0,0 +1,47 @@
# Set of ENVs for OP Interop Alpha 0 network explorer
# https://optimism-interop-alpha-0.blockscout.com
# This is an auto-generated file. To update all values, run "yarn dev:preset:sync --name=optimism_interop_0"
# Local ENVs
NEXT_PUBLIC_APP_PROTOCOL=http
NEXT_PUBLIC_APP_HOST=localhost
NEXT_PUBLIC_APP_PORT=3000
NEXT_PUBLIC_APP_ENV=development
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=ws
# Instance ENVs
NEXT_PUBLIC_AD_BANNER_PROVIDER=none
NEXT_PUBLIC_AD_TEXT_PROVIDER=none
NEXT_PUBLIC_API_BASE_PATH=/
NEXT_PUBLIC_API_HOST=optimism-interop-alpha-0.blockscout.com
NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml
NEXT_PUBLIC_CONTRACT_CODE_IDES=[{'title':'Remix IDE','url':'https://remix.ethereum.org/?address={hash}&blockscout={domain}','icon_url':'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/ide-icons/remix.png'}]
NEXT_PUBLIC_FAULT_PROOF_ENABLED=true
NEXT_PUBLIC_FOOTER_LINKS=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/footer-links/optimism.json
NEXT_PUBLIC_GAME_BADGE_CLAIM_LINK=https://badges.blockscout.com/mint/sherblockHolmesBadge
NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs']
NEXT_PUBLIC_HOMEPAGE_HERO_BANNER_CONFIG={'background':['linear-gradient(90deg, rgb(232, 52, 53) 0%, rgb(139, 28, 232) 100%)'],'text_color':['rgb(255, 255, 255)']}
NEXT_PUBLIC_INTEROP_ENABLED=true
NEXT_PUBLIC_IS_TESTNET=true
NEXT_PUBLIC_METADATA_SERVICE_API_HOST=https://metadata.services.blockscout.com
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=Ether
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=ETH
NEXT_PUBLIC_NETWORK_ICON=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/optimism.svg
NEXT_PUBLIC_NETWORK_ICON_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-icons/optimism.svg
NEXT_PUBLIC_NETWORK_ID=420120000
NEXT_PUBLIC_NETWORK_LOGO=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/optimism.svg
NEXT_PUBLIC_NETWORK_LOGO_DARK=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/network-logos/optimism.svg
NEXT_PUBLIC_NETWORK_NAME=OP Interop Alpha 0
NEXT_PUBLIC_NETWORK_RPC_URL=https://interop-alpha-0.optimism.io
NEXT_PUBLIC_NETWORK_SHORT_NAME=OP Interop Alpha 0
NEXT_PUBLIC_OG_ENHANCED_DATA_ENABLED=true
NEXT_PUBLIC_ROLLUP_L1_BASE_URL=https://eth-sepolia.blockscout.com/
NEXT_PUBLIC_ROLLUP_L2_WITHDRAWAL_URL=https://bridge.interop-alpha-0.optimism.io
NEXT_PUBLIC_ROLLUP_OUTPUT_ROOTS_ENABLED=false
NEXT_PUBLIC_ROLLUP_TYPE=optimistic
NEXT_PUBLIC_STATS_API_HOST=https://stats-optimism-interop-devnet-0.k8s-prod-1.blockscout.com
NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER=blockscout
NEXT_PUBLIC_VIEWS_TOKEN_SCAM_TOGGLE_ENABLED=true
NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com
NEXT_PUBLIC_WEB3_WALLETS=['token_pocket', 'metamask']
+5 -4
View File
@@ -14,7 +14,9 @@ NEXT_PUBLIC_API_BASE_PATH=/
NEXT_PUBLIC_API_HOST=scroll-sepolia.blockscout.com
NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml
NEXT_PUBLIC_CONTRACT_CODE_IDES=[{'title':'Remix IDE','url':'https://remix.ethereum.org/?address={hash}&blockscout={domain}','icon_url':'https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/ide-icons/remix.png'}]
NEXT_PUBLIC_CONTRACT_INFO_API_HOST=https://contracts-info.services.blockscout.com
NEXT_PUBLIC_FEATURED_NETWORKS=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/featured-networks/scroll-testnet.json
NEXT_PUBLIC_GAME_BADGE_CLAIM_LINK=https://badges.blockscout.com/mint/sherblockHolmesBadge
NEXT_PUBLIC_GRAPHIQL_TRANSACTION=0xa0d22caf6217a488b1e97b646c5ed88e8a3020a607bcd1f3fe8d4c430bb19ad5
NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs']
NEXT_PUBLIC_HOMEPAGE_HERO_BANNER_CONFIG={'background':['rgba(255, 238, 218, 1)'],'text_color':['rgba(25, 6, 2, 1)']}
@@ -33,9 +35,8 @@ NEXT_PUBLIC_NETWORK_RPC_URL=https://sepolia-rpc.scroll.io
NEXT_PUBLIC_NETWORK_SHORT_NAME=Scroll Sepolia Testnet
NEXT_PUBLIC_OG_ENHANCED_DATA_ENABLED=true
NEXT_PUBLIC_OG_IMAGE_URL=https://raw.githubusercontent.com/blockscout/frontend-configs/main/configs/og-images/scroll-testnet.png
NEXT_PUBLIC_RE_CAPTCHA_APP_SITE_KEY=6Ld0iT8aAAAAAJdju0CmAwGjW7JTDvIw-Q5pwt5T
NEXT_PUBLIC_ROLLUP_L1_BASE_URL=https://eth-sepolia.blockscout.com
NEXT_PUBLIC_ROLLUP_TYPE=scroll
NEXT_PUBLIC_STATS_API_HOST=https://stats-scroll-sepolia.k8s-prod-2.blockscout.com
NEXT_PUBLIC_TRANSACTION_INTERPRETATION_PROVIDER=blockscout
NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com
NEXT_PUBLIC_ROLLUP_TYPE=scroll
NEXT_PUBLIC_ROLLUP_L1_BASE_URL=https://eth-sepolia.blockscout.com/
NEXT_PUBLIC_VISUALIZE_API_HOST=https://visualizer.services.blockscout.com
Vendored
+2 -1
View File
@@ -1 +1,2 @@
declare module 'react-identicons'
declare module 'react-identicons';
declare module 'use-font-face-observer';
+1 -1
View File
@@ -71,4 +71,4 @@ node --no-warnings ./og_image_generator.js
node ./feature-reporter.js
echo "Starting Next.js application"
exec "$@"
exec "$@"
@@ -4,6 +4,7 @@
"noEmit": false,
"target": "es2016",
"module": "CommonJS",
"moduleResolution": "node",
"paths": {
"nextjs-routes": ["./nextjs/nextjs-routes.d.ts"],
}
@@ -3,6 +3,7 @@
"compilerOptions": {
"noEmit": false,
"module": "CommonJS",
"moduleResolution": "node",
"outDir": "./build",
"paths": {
"nextjs-routes": ["./nextjs/nextjs-routes.d.ts"],
@@ -59,7 +59,7 @@ module.exports = {
{
userAgent: '*',
allow: '/',
disallow: ['/auth/*', '/login', '/sprite', '/account/*', '/api/*', '/node-api/*'],
disallow: ['/auth/*', '/login', '/chakra', '/sprite', '/account/*', '/api/*', '/node-api/*'],
},
],
},
@@ -70,6 +70,7 @@ module.exports = {
'/auth/*',
'/login',
'/sprite',
'/chakra',
],
transform: async(config, path) => {
switch (path) {
+24 -3
View File
@@ -27,13 +27,24 @@ const RESTRICTED_MODULES = {
{ name: 'playwright/TestApp', message: 'Please use render() fixture from test() function of playwright/lib module' },
{
name: '@chakra-ui/react',
importNames: [ 'Popover', 'Menu', 'PinInput', 'useToast', 'Skeleton' ],
message: 'Please use corresponding component or hook from ui/shared/chakra component instead',
importNames: [
'Menu', 'useToast', 'useDisclosure', 'useClipboard', 'Tooltip', 'Skeleton', 'IconButton', 'Button', 'ButtonGroup', 'Link', 'LinkBox', 'LinkOverlay',
'Dialog', 'DialogRoot', 'DialogContent', 'DialogHeader', 'DialogCloseTrigger',
'Tag', 'Switch', 'Image', 'Popover', 'PopoverTrigger', 'PopoverContent', 'PopoverBody', 'PopoverFooter',
'DrawerRoot', 'DrawerBody', 'DrawerContent', 'DrawerOverlay', 'DrawerBackdrop', 'DrawerTrigger', 'Drawer',
'Alert', 'AlertIcon', 'AlertTitle', 'AlertDescription',
'Select', 'SelectRoot', 'SelectControl', 'SelectContent', 'SelectItem', 'SelectValueText',
'Heading', 'Badge', 'Tabs', 'Show', 'Hide', 'Checkbox', 'CheckboxGroup',
'Table', 'TableRoot', 'TableBody', 'TableHeader', 'TableRow', 'TableCell',
'Menu', 'MenuRoot', 'MenuTrigger', 'MenuContent', 'MenuItem', 'MenuTriggerItem', 'MenuRadioItemGroup', 'MenuContextTrigger',
'Rating', 'RatingGroup',
],
message: 'Please use corresponding component or hook from "toolkit" instead',
},
{
name: 'next/link',
importNames: [ 'default' ],
message: 'Please use ui/shared/NextLink component instead',
message: 'Please use toolkit/chakra/link component instead',
},
],
patterns: [
@@ -294,6 +305,7 @@ export default tseslint.config(
'/^playwright/',
'/^stubs/',
'/^theme/',
'/^toolkit/',
'/^ui/',
],
[ 'parent', 'sibling', 'index' ],
@@ -440,4 +452,13 @@ export default tseslint.config(
'no-restricted-properties': 'off',
},
},
{
files: [
'toolkit/chakra/**',
],
rules: {
// for toolkit components allow to import @chakra-ui/react directly
'no-restricted-imports': 'off',
},
},
);
+3
View File
@@ -0,0 +1,3 @@
<svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.44 8.035a.791.791 0 0 0 1.12 0l3.802-3.803a.791.791 0 0 1 1.119 0l.287.287a.79.79 0 0 1 0 1.119L11.965 9.44a.79.79 0 0 0 0 1.118l3.803 3.803a.791.791 0 0 1 0 1.119l-.287.287a.791.791 0 0 1-1.119 0l-3.803-3.803a.79.79 0 0 0-1.118 0l-3.803 3.803a.79.79 0 0 1-1.119 0l-.287-.287a.791.791 0 0 1 0-1.119l3.803-3.803a.791.791 0 0 0 0-1.118L4.232 5.638a.791.791 0 0 1 0-1.119l.287-.287a.791.791 0 0 1 1.119 0L9.44 8.035Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 531 B

+2 -2
View File
@@ -1,3 +1,3 @@
<svg viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="m6 5.293 2.475-2.475.707.707L6.707 6l2.475 2.475-.707.707L6 6.707 3.525 9.182l-.707-.707L5.293 6 2.818 3.525l.707-.707L6 5.293Z" fill="currentColor"/>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.2929 9.87888C11.6834 10.2694 12.3166 10.2694 12.7071 9.87888L16.243 6.34299C16.6335 5.95252 17.2665 5.95252 17.657 6.34299C18.0475 6.73345 18.0475 7.36652 17.657 7.75699L14.1211 11.2929C13.7306 11.6834 13.7306 12.3166 14.1211 12.7071L17.657 16.243C18.0475 16.6335 18.0475 17.2665 17.657 17.657C17.2665 18.0475 16.6335 18.0475 16.243 17.657L12.7071 14.1211C12.3166 13.7306 11.6834 13.7306 11.2929 14.1211L7.75699 17.657C7.36652 18.0475 6.73345 18.0475 6.34299 17.657C5.95252 17.2665 5.95252 16.6335 6.34299 16.243L9.87888 12.7071C10.2694 12.3166 10.2694 11.6834 9.87888 11.2929L6.34299 7.75699C5.95252 7.36652 5.95252 6.73345 6.34299 6.34299C6.73345 5.95252 7.36652 5.95252 7.75699 6.34299L11.2929 9.87888Z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 242 B

After

Width:  |  Height:  |  Size: 845 B

+2 -2
View File
@@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none">
<path d="m10 3.557-.555-.577c-.947-.946-2.205-.989-3.508-.97a4.876 4.876 0 0 0-3.469 1.547A5.443 5.443 0 0 0 1.001 7.22a5.46 5.46 0 0 0 1.363 3.709L10 18.5l7.636-7.58a5.46 5.46 0 0 0 1.363-3.709 5.443 5.443 0 0 0-1.467-3.664 4.876 4.876 0 0 0-3.47-1.546c-1.302-.02-2.56.023-3.507.969L10 3.557Z" fill="currentColor"/>
<svg viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="m10 4.34-.555-.578c-.947-.946-2.205-.988-3.508-.97A4.876 4.876 0 0 0 2.468 4.34a5.443 5.443 0 0 0-1.467 3.664 5.46 5.46 0 0 0 1.363 3.71L10 19.282l7.636-7.58a5.46 5.46 0 0 0 1.363-3.71 5.443 5.443 0 0 0-1.467-3.663 4.876 4.876 0 0 0-3.47-1.547c-1.302-.019-2.56.023-3.507.97L10 4.338Z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 399 B

After

Width:  |  Height:  |  Size: 398 B

+3 -3
View File
@@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 20" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.671 3.458a5.332 5.332 0 0 1 7.542 7.532l-.007.008-7.54 7.548-7.539-7.54-.007-.008a5.332 5.332 0 0 1 7.542-7.532l.002-.001.008-.007Zm1.017 1.06-1.017 1.018L9.647 4.53A3.862 3.862 0 0 0 4.18 9.983l6.485 6.484 6.485-6.493a3.863 3.863 0 0 0-5.463-5.455Z" fill="currentColor" stroke="currentColor" stroke-width=".4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.671 3.458a5.332 5.332 0 0 1 7.542 7.532l-.007.008-7.54 7.548-7.539-7.54-.007-.008a5.332 5.332 0 0 1 7.542-7.532l.002-.001.008-.007Zm1.017 1.06-1.017 1.018L9.647 4.53A3.862 3.862 0 0 0 4.18 9.983l6.485 6.484 6.485-6.493a3.863 3.863 0 0 0-5.463-5.455Z" fill="currentColor"/>
<svg viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.005 4.24a5.332 5.332 0 0 1 7.542 7.532l-.007.008L10 19.328l-7.54-7.54-.007-.007a5.332 5.332 0 0 1 7.542-7.532l.003-.002.007-.007Zm1.017 1.061L10.004 6.32 8.98 5.312a3.862 3.862 0 0 0-5.465 5.453L10 17.25l6.485-6.493A3.862 3.862 0 0 0 11.022 5.3Z" fill="currentColor" stroke="currentColor" stroke-width=".4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.005 4.24a5.332 5.332 0 0 1 7.542 7.532l-.007.008L10 19.328l-7.54-7.54-.007-.007a5.332 5.332 0 0 1 7.542-7.532l.003-.002.007-.007Zm1.017 1.061L10.004 6.32 8.98 5.312a3.862 3.862 0 0 0-5.465 5.453L10 17.25l6.485-6.493A3.863 3.863 0 0 0 11.022 5.3Z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 776 B

After

Width:  |  Height:  |  Size: 768 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.99984 18.3334C5.39734 18.3334 1.6665 14.6026 1.6665 10.0001C1.6665 5.39758 5.39734 1.66675 9.99984 1.66675C14.6023 1.66675 18.3332 5.39758 18.3332 10.0001C18.3332 14.6026 14.6023 18.3334 9.99984 18.3334ZM9.1665 9.16675V14.1667H10.8332V9.16675H9.1665ZM9.1665 5.83342V7.50008H10.8332V5.83342H9.1665Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 436 B

+1 -1
View File
@@ -1,3 +1,3 @@
<svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="m15.026 13.848 2.98 2.978a.834.834 0 1 1-1.18 1.18l-2.978-2.98a7.467 7.467 0 0 1-4.681 1.64c-4.14 0-7.5-3.36-7.5-7.5 0-4.14 3.36-7.5 7.5-7.5 4.14 0 7.5 3.36 7.5 7.5a7.466 7.466 0 0 1-1.641 4.681Zm-1.672-.619A5.814 5.814 0 0 0 15 9.167a5.832 5.832 0 0 0-5.833-5.834 5.831 5.831 0 0 0-5.834 5.834A5.832 5.832 0 0 0 9.167 15a5.814 5.814 0 0 0 4.062-1.646l.125-.125Z" fill="currentColor"/>
<path d="m14.048 13.074 2.464 2.463a.69.69 0 1 1-.975.975l-2.463-2.464A6.205 6.205 0 0 1 3 9.202 6.205 6.205 0 0 1 9.203 3a6.205 6.205 0 0 1 4.845 10.074Zm-1.382-.512a4.823 4.823 0 0 0-3.463-8.184 4.822 4.822 0 0 0-4.825 4.825 4.823 4.823 0 0 0 8.184 3.463l.104-.104Z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 477 B

After

Width:  |  Height:  |  Size: 373 B

+15 -13
View File
@@ -1,14 +1,16 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M21.004 2.61 13.2 8.432l1.443-3.434 6.36-2.386Z" fill="#E2761B"/>
<path d="m2.988 2.61 7.741 5.876-1.372-3.489-6.369-2.386Zm15.208 13.492L16.117 19.3l4.447 1.229 1.279-4.356-3.647-.07Zm-16.032.071 1.271 4.356L7.882 19.3l-2.078-3.198-3.64.071Z" fill="#E4761B"/>
<path d="m7.631 10.7-1.24 1.882 4.417.197-.157-4.765L7.63 10.7Zm8.73 0L13.3 7.959l-.101 4.82 4.408-.197-1.248-1.883Zm-8.479 8.6 2.651-1.3-2.29-1.795-.36 3.095ZM13.46 18l2.658 1.3-.368-3.095L13.459 18Z" fill="#E4761B"/>
<path d="M16.117 19.3 13.458 18l.212 1.741-.023.733 2.47-1.174Zm-8.235 0 2.47 1.174-.015-.733.196-1.74-2.65 1.299Z" fill="#D7C1B3"/>
<path d="M10.392 15.055 8.18 14.4l1.561-.717.65 1.37Zm3.208 0 .65-1.37 1.57.716-2.22.654Z" fill="#233447"/>
<path d="m7.882 19.3.377-3.198-2.455.071L7.882 19.3Zm7.859-3.198.376 3.198 2.079-3.127-2.455-.07Zm1.867-3.52-4.408.197.408 2.276.65-1.37 1.57.716 1.78-1.82Zm-9.428 1.82 1.569-.718.643 1.37.416-2.275-4.416-.197 1.788 1.82Z" fill="#CD6116"/>
<path d="m6.392 12.582 1.85 3.623L8.18 14.4l-1.788-1.82Zm9.435 1.82-.078 1.803 1.859-3.623-1.78 1.82Zm-5.02-1.623-.415 2.276.518 2.686.117-3.537-.22-1.425Zm2.393 0-.212 1.417.094 3.545.526-2.686-.408-2.276Z" fill="#E4751F"/>
<path d="m13.608 15.055-.526 2.686.377.26 2.29-1.796.078-1.804-2.22.654ZM8.18 14.4l.063 1.804L10.533 18l.377-.26-.518-2.685L8.18 14.4Z" fill="#F6851B"/>
<path d="m13.647 20.474.023-.733-.196-.173h-2.957l-.18.173.016.733-2.47-1.174.862.709 1.749 1.22h3.004l1.757-1.22.862-.709-2.47 1.174Z" fill="#C0AD9E"/>
<path d="m13.459 18-.377-.26H10.91l-.377.26-.196 1.741.18-.173h2.957l.196.173-.211-1.74Z" fill="#161616"/>
<path d="M21.333 8.81 22 5.595l-.996-2.985-7.545 5.623L16.36 10.7l4.102 1.206.91-1.064-.392-.283.628-.575-.487-.378.628-.48-.416-.316ZM2 5.595l.666 3.213-.423.315.627.48-.478.379.627.575-.392.283.902 1.064 4.102-1.206 2.902-2.465L2.988 2.61 2 5.596Z" fill="#763D16"/>
<path d="M20.462 11.904 16.361 10.7l1.247 1.883-1.86 3.623 2.448-.032h3.647l-1.38-4.269ZM7.632 10.7l-4.103 1.205-1.365 4.27h3.64l2.439.03-1.851-3.622 1.24-1.883Zm5.568 2.08.259-4.545 1.192-3.237H9.357l1.176 3.237.275 4.545.094 1.433.008 3.529h2.172l.016-3.529.102-1.433Z" fill="#F6851B"/>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20">
<g clip-path="url(#a)">
<path fill="#FF5C16" d="m17.763 17.7-3.864-1.15-2.914 1.742H8.952L6.037 16.55 2.175 17.7 1 13.736l1.175-4.402L1 5.613 2.175 1l6.034 3.605h3.519L17.763 1l1.175 4.612-1.175 3.721 1.175 4.402-1.175 3.966Z"/>
<path fill="#FF5C16" d="M2.176 1 8.21 4.608l-.24 2.476L2.176 1Zm3.862 12.737 2.655 2.022-2.655.791v-2.813Zm2.443-3.344-.51-3.307-3.267 2.249-.002-.001v.001l.01 2.315 1.325-1.257H8.48ZM17.763 1l-6.035 3.608.24 2.476L17.762 1ZM13.9 13.737l-2.656 2.022 2.656.791v-2.813Zm1.335-4.402v-.002l-.001.001-3.267-2.248-.51 3.307H13.9l1.325 1.257.01-2.315Z"/>
<path fill="#E34807" d="M6.037 16.55 2.175 17.7 1 13.737h5.037v2.814Zm2.443-6.159.738 4.781-1.023-2.658-3.485-.865 1.326-1.257H8.48Zm5.42 6.159 3.863 1.15 1.175-3.964H13.9v2.814Zm-2.442-6.159-.738 4.781 1.022-2.658 3.485-.865-1.326-1.257h-2.443Z"/>
<path fill="#FF8D5D" d="m1 13.735 1.175-4.402H4.7l.01 2.316 3.484.864 1.023 2.658-.526.586-2.655-2.023H1Zm17.938 0-1.175-4.402h-2.527l-.009 2.316-3.485.864-1.022 2.658.525.586 2.656-2.023h5.037Zm-7.21-9.13H8.209l-.238 2.476 1.247 8.088h1.502l1.248-8.088-.24-2.476Z"/>
<path fill="#661800" d="M2.175 1 1 5.612l1.175 3.721H4.7l3.27-2.249L2.175 1ZM7.75 11.352H6.605l-.623.61 2.214.55-.446-1.16ZM17.763 1l1.175 4.612-1.175 3.721h-2.527l-3.268-2.249L17.763 1Zm-5.574 10.352h1.147l.623.611-2.217.55.447-1.162Zm-1.205 5.363.261-.957-.525-.585H9.217l-.526.585.261.957"/>
<path fill="#C0C4CD" d="M10.984 16.714v1.579H8.952v-1.579h2.032Z"/>
<path fill="#E7EBF6" d="m6.038 16.548 2.916 1.744v-1.579l-.261-.956-2.655.791Zm7.863 0-2.917 1.744v-1.579l.262-.956 2.655.791Z"/>
</g>
<defs>
<clipPath id="a">
<path fill="#fff" d="M1 1h18v17.366H1z"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

+2 -3
View File
@@ -1,4 +1,3 @@
import { ChakraProvider } from '@chakra-ui/react';
import { GrowthBookProvider } from '@growthbook/growthbook-react';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import type { RenderOptions } from '@testing-library/react';
@@ -8,7 +7,7 @@ import React from 'react';
import { AppContextProvider } from 'lib/contexts/app';
import { ScrollDirectionProvider } from 'lib/contexts/scrollDirection';
import { SocketProvider } from 'lib/socket/context';
import theme from 'theme/theme';
import { Provider as ChakraProvider } from 'toolkit/chakra/provider';
import 'lib/setLocale';
@@ -32,7 +31,7 @@ const TestApp = ({ children }: { children: React.ReactNode }) => {
}));
return (
<ChakraProvider theme={ theme }>
<ChakraProvider>
<QueryClientProvider client={ queryClient }>
<AppContextProvider pageProps={ PAGE_PROPS }>
<ScrollDirectionProvider>
+12
View File
@@ -41,3 +41,15 @@ global.console = {
consoleError(...args);
},
};
// Polyfill for structuredClone
if (typeof structuredClone === 'undefined') {
global.structuredClone = <T>(obj: T): T => {
try {
return JSON.parse(JSON.stringify(obj)) as T;
} catch (error) {
// Fallback for circular references and other special cases
return obj;
}
};
}
-30
View File
@@ -1,30 +0,0 @@
import {
ChakraProvider as ChakraProviderDefault,
cookieStorageManagerSSR,
localStorageManager,
} from '@chakra-ui/react';
import type { ChakraProviderProps } from '@chakra-ui/react';
import React from 'react';
import { get, NAMES } from 'lib/cookies';
import theme from 'theme/theme';
interface Props extends ChakraProviderProps {
cookies?: string;
}
export function ChakraProvider({ cookies, children }: Props) {
// When a cookie header is present, cookieStorageManagerSSR looks for a "chakra-ui-color-mode" cookie.
// If it doesn’t find one, it doesn’t consider theme’s initialColorMode. Instead, it is defaulting to light mode
// So we need to use localStorageManager instead of cookieStorageManagerSSR to get the correct default color mode
const colorModeManager =
typeof cookies === 'string' && get(NAMES.COLOR_MODE, cookies) ?
cookieStorageManagerSSR(typeof document !== 'undefined' ? document.cookie : cookies) :
localStorageManager;
return (
<ChakraProviderDefault colorModeManager={ colorModeManager } theme={ theme }>
{ children }
</ChakraProviderDefault>
);
}
+20 -16
View File
@@ -1,6 +1,6 @@
import { useBoolean } from '@chakra-ui/react';
import type { UseQueryResult } from '@tanstack/react-query';
import { useQueryClient } from '@tanstack/react-query';
import { useToggle } from '@uidotdev/usehooks';
import { useRouter } from 'next/router';
import React, { createContext, useContext, useEffect, useMemo, useCallback } from 'react';
import { useSignMessage } from 'wagmi';
@@ -22,10 +22,10 @@ import * as cookies from 'lib/cookies';
import decodeJWT from 'lib/decodeJWT';
import getErrorMessage from 'lib/errors/getErrorMessage';
import getErrorObjPayload from 'lib/errors/getErrorObjPayload';
import useToast from 'lib/hooks/useToast';
import getQueryParamString from 'lib/router/getQueryParamString';
import removeQueryParam from 'lib/router/removeQueryParam';
import useAccount from 'lib/web3/useAccount';
import { toaster } from 'toolkit/chakra/toaster';
import useProfileQuery from 'ui/snippets/auth/useProfileQuery';
const feature = config.features.rewards;
@@ -116,13 +116,12 @@ export function RewardsContextProvider({ children }: Props) {
const router = useRouter();
const queryClient = useQueryClient();
const apiFetch = useApiFetch();
const toast = useToast();
const { address } = useAccount();
const { signMessageAsync } = useSignMessage();
const profileQuery = useProfileQuery();
const [ isLoginModalOpen, setIsLoginModalOpen ] = useBoolean(false);
const [ isInitialized, setIsInitialized ] = useBoolean(false);
const [ isLoginModalOpen, setIsLoginModalOpen ] = useToggle(false);
const [ isInitialized, setIsInitialized ] = useToggle(false);
const [ apiToken, setApiToken ] = React.useState<string | undefined>();
// Initialize state with the API token from cookies
@@ -133,7 +132,7 @@ export function RewardsContextProvider({ children }: Props) {
if (registeredAddress === profileQuery.data?.address_hash) {
setApiToken(token);
}
setIsInitialized.on();
setIsInitialized(true);
}
}, [ setIsInitialized, profileQuery ]);
@@ -189,22 +188,18 @@ export function RewardsContextProvider({ children }: Props) {
cookies.set(cookies.NAMES.REWARDS_REFERRAL_CODE, refCode);
removeQueryParam(router, 'ref');
if (!apiToken) {
setIsLoginModalOpen.on();
setIsLoginModalOpen(true);
}
}
}, [ router, apiToken, isInitialized, setIsLoginModalOpen ]);
const errorToast = useCallback((error: unknown) => {
const apiError = getErrorObjPayload<{ message: string }>(error);
toast({
position: 'top-right',
toaster.error({
title: 'Error',
description: apiError?.message || getErrorMessage(error) || 'Something went wrong. Try again later.',
status: 'error',
variant: 'subtle',
isClosable: true,
});
}, [ toast ]);
}, [ ]);
// Login to the rewards program
const login = useCallback(async(refCode: string) => {
@@ -263,6 +258,14 @@ export function RewardsContextProvider({ children }: Props) {
}
}, [ apiFetch, errorToast, fetchParams ]);
const openLoginModal = React.useCallback(() => {
setIsLoginModalOpen(true);
}, [ setIsLoginModalOpen ]);
const closeLoginModal = React.useCallback(() => {
setIsLoginModalOpen(false);
}, [ setIsLoginModalOpen ]);
const value = useMemo(() => {
if (!feature.isEnabled) {
return initialState;
@@ -277,14 +280,15 @@ export function RewardsContextProvider({ children }: Props) {
saveApiToken,
isInitialized,
isLoginModalOpen,
openLoginModal: setIsLoginModalOpen.on,
closeLoginModal: setIsLoginModalOpen.off,
openLoginModal,
closeLoginModal,
login,
claim,
};
}, [
isLoginModalOpen, setIsLoginModalOpen, balancesQuery, dailyRewardQuery, checkUserQuery,
balancesQuery, dailyRewardQuery, checkUserQuery,
apiToken, login, claim, referralsQuery, rewardsConfigQuery, isInitialized, saveApiToken,
isLoginModalOpen, openLoginModal, closeLoginModal,
]);
return (
+1 -1
View File
@@ -9,7 +9,7 @@ const feature = config.features.marketplace;
export default function useGraphLinks() {
const fetch = useFetch();
return useQuery<unknown, ResourceError<unknown>, Record<string, Array<{ text: string; url: string }>>>({
return useQuery<unknown, ResourceError<unknown>, Record<string, Array<{ title: string; url: string }>>>({
queryKey: [ 'graph-links' ],
queryFn: async() => fetch((feature.isEnabled && feature.graphLinksUrl) ? feature.graphLinksUrl : '', undefined, { resource: 'graph-links' }),
enabled: feature.isEnabled && Boolean(feature.graphLinksUrl),
+36
View File
@@ -0,0 +1,36 @@
import React from 'react';
type Id = string | number;
export interface Params<T> {
data: Array<T>;
idFn: (item: T) => Id;
enabled: boolean;
}
export default function useInitialList<T>({ data, idFn, enabled }: Params<T>) {
const [ list, setList ] = React.useState<Array<Id>>([]);
React.useEffect(() => {
if (enabled) {
setList(data.map(idFn));
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [ enabled ]);
const isNew = React.useCallback((data: T) => {
return !list.includes(idFn(data));
}, [ list, idFn ]);
const getAnimationProp = React.useCallback((data: T) => {
return isNew(data) ? 'fade-in 500ms linear' : undefined;
}, [ isNew ]);
return React.useMemo(() => {
return {
list,
isNew,
getAnimationProp,
};
}, [ list, isNew, getAnimationProp ]);
}
-28
View File
@@ -1,28 +0,0 @@
import type { UseToastOptions, ToastProps } from '@chakra-ui/react';
import { createToastFn, useChakra } from '@chakra-ui/react';
import React from 'react';
import Toast from 'ui/shared/chakra/Toast';
// there is no toastComponent prop in UseToastOptions type
// but these options will be passed to createRenderToast under the hood
// and it accepts custom toastComponent
const defaultOptions: UseToastOptions & { toastComponent?: React.FC<ToastProps> } = {
toastComponent: Toast,
position: 'top-right',
isClosable: true,
containerStyle: {
margin: 3,
marginBottom: 0,
},
variant: 'subtle',
};
export default function useToastModified() {
const { theme } = useChakra();
return React.useMemo(
() => createToastFn(theme.direction, defaultOptions),
[ theme.direction ],
);
}
+1
View File
@@ -65,6 +65,7 @@ const OG_TYPE_DICT: Record<Route['pathname'], OGPageType> = {
// service routes, added only to make typescript happy
'/login': 'Regular page',
'/sprite': 'Regular page',
'/chakra': 'Regular page',
'/api/metrics': 'Regular page',
'/api/monitoring/invalid-api-schema': 'Regular page',
'/api/log': 'Regular page',
+1
View File
@@ -68,6 +68,7 @@ const TEMPLATE_MAP: Record<Route['pathname'], string> = {
// service routes, added only to make typescript happy
'/login': DEFAULT_TEMPLATE,
'/sprite': DEFAULT_TEMPLATE,
'/chakra': DEFAULT_TEMPLATE,
'/api/metrics': DEFAULT_TEMPLATE,
'/api/monitoring/invalid-api-schema': DEFAULT_TEMPLATE,
'/api/log': DEFAULT_TEMPLATE,
+1
View File
@@ -65,6 +65,7 @@ const TEMPLATE_MAP: Record<Route['pathname'], string> = {
// service routes, added only to make typescript happy
'/login': '%network_name% login',
'/sprite': '%network_name% SVG sprite',
'/chakra': '%network_name% Chakra UI showcase',
'/api/metrics': '%network_name% node API prometheus metrics',
'/api/monitoring/invalid-api-schema': '%network_name% node API prometheus metrics',
'/api/log': '%network_name% node API request log',
+1
View File
@@ -63,6 +63,7 @@ export const PAGE_TYPE_DICT: Record<Route['pathname'], string> = {
// service routes, added only to make typescript happy
'/login': 'Login',
'/sprite': 'Sprite',
'/chakra': 'Chakra UI showcase',
'/api/metrics': 'Node API: Prometheus metrics',
'/api/monitoring/invalid-api-schema': 'Node API: Prometheus metrics',
'/api/log': 'Node API: Request log',
+2 -2
View File
@@ -1,5 +1,3 @@
import type { ColorMode } from '@chakra-ui/react';
import { useColorMode } from '@chakra-ui/react';
import { usePathname } from 'next/navigation';
import { useRouter } from 'next/router';
import React from 'react';
@@ -8,6 +6,8 @@ import config from 'configs/app';
import * as cookies from 'lib/cookies';
import getQueryParamString from 'lib/router/getQueryParamString';
import { COLOR_THEMES } from 'lib/settings/colorTheme';
import { useColorMode } from 'toolkit/chakra/color-mode';
import type { ColorMode } from 'toolkit/chakra/color-mode';
import getPageType from './getPageType';
import getTabName from './getTabName';
+2 -2
View File
@@ -1,7 +1,7 @@
import type { ColorMode } from '@chakra-ui/react';
import type { ColorThemeId } from 'types/settings';
import type { ColorMode } from 'toolkit/chakra/color-mode';
interface ColorTheme {
id: ColorThemeId;
label: string;
+1 -2
View File
@@ -71,8 +71,7 @@ export function app(): CspDev.DirectiveDescriptor {
config.app.isDev ? KEY_WORDS.UNSAFE_EVAL : '',
// hash of ColorModeScript: system + dark
'\'sha256-e7MRMmTzLsLQvIy1iizO1lXf7VWYoQ6ysj5fuUzvRwE=\'',
'\'sha256-9A7qFFHmxdWjZMQmfzYD2XWaNHLu1ZmQB0Ds4Go764k=\'',
'\'sha256-yYJq8IP5/WhJj6zxyTmujEqBFs/MufRufp2QKJFU76M=\'',
// CapybaraRunner
'\'sha256-5+YTmTcBwCYdJ8Jetbr6kyjGp0Ry/H7ptpoun6CrSwQ=\'',
+1
View File
@@ -38,6 +38,7 @@ declare module "nextjs-routes" {
| DynamicRoute<"/block/countdown/[height]", { "height": string }>
| StaticRoute<"/block/countdown">
| StaticRoute<"/blocks">
| StaticRoute<"/chakra">
| StaticRoute<"/contract-verification">
| StaticRoute<"/csv-export">
| StaticRoute<"/deposits">
+10 -6
View File
@@ -17,6 +17,8 @@
"start": "next start",
"start:docker:local": "docker run -p 3000:3000 --env-file .env.local blockscout-frontend:local",
"start:docker:preset": "./tools/scripts/docker.preset.sh",
"chakra:snippets:add": "chakra snippet add --outdir ./toolkit/chakra",
"chakra:typegen": "chakra typegen ./toolkit/theme/theme.ts",
"lint:eslint": "eslint .",
"lint:eslint:fix": "eslint . --fix",
"lint:tsc": "tsc -p ./tsconfig.json",
@@ -36,17 +38,16 @@
"og-image:generate:dev": "./tools/scripts/og-image-generator.dev.sh",
"sitemap:generate:dev": "./tools/scripts/sitemap-generator.dev.sh",
"monitoring:prometheus:local": "docker run --name blockscout_prometheus -d -p 127.0.0.1:9090:9090 -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus",
"monitoring:grafana:local": "docker run -d -p 4000:3000 --name=blockscout_grafana --user $(id -u) --volume $(pwd)/grafana:/var/lib/grafana grafana/grafana-enterprise"
"monitoring:grafana:local": "docker run -d -p 4000:3000 --name=blockscout_grafana --user $(id -u) --volume $(pwd)/grafana:/var/lib/grafana grafana/grafana-enterprise",
"postinstall": "chakra typegen ./toolkit/theme/theme.ts"
},
"dependencies": {
"@blockscout/bens-types": "1.4.1",
"@blockscout/stats-types": "2.5.0-alpha",
"@blockscout/visualizer-types": "0.2.0",
"@chakra-ui/react": "2.7.1",
"@chakra-ui/theme-tools": "^2.0.18",
"@chakra-ui/react": "3.15.0",
"@cloudnouns/kit": "1.1.6",
"@emotion/react": "^11.10.4",
"@emotion/styled": "^11.10.4",
"@emotion/react": "11.14.0",
"@growthbook/growthbook-react": "0.21.0",
"@helia/verified-fetch": "2.0.1",
"@hypelab/sdk-react": "^1.0.0",
@@ -71,6 +72,7 @@
"@tanstack/react-query-devtools": "5.55.4",
"@types/papaparse": "^5.3.5",
"@types/react-scroll": "^1.8.4",
"@uidotdev/usehooks": "2.4.1",
"airtable": "^0.12.2",
"bignumber.js": "^9.1.0",
"blo": "^1.1.1",
@@ -82,7 +84,6 @@
"dom-to-image": "^2.6.0",
"es-toolkit": "1.31.0",
"focus-visible": "^5.2.0",
"framer-motion": "^6.5.1",
"getit-sdk": "^1.0.4",
"gradient-avatar": "git+https://github.com/blockscout/gradient-avatar.git",
"graphiql": "^2.2.0",
@@ -93,6 +94,7 @@
"mixpanel-browser": "^2.47.0",
"monaco-editor": "^0.34.1",
"next": "15.2.3",
"next-themes": "0.4.4",
"nextjs-routes": "^1.0.8",
"node-fetch": "^3.2.9",
"papaparse": "^5.3.2",
@@ -107,6 +109,7 @@
"react-dom": "18.3.1",
"react-google-recaptcha": "3.1.0",
"react-hook-form": "7.52.1",
"react-icons": "5.4.0",
"react-identicons": "^1.2.5",
"react-intersection-observer": "^9.5.2",
"react-jazzicon": "^1.0.4",
@@ -121,6 +124,7 @@
"xss": "^1.0.14"
},
"devDependencies": {
"@chakra-ui/cli": "3.15.0",
"@eslint/compat": "1.2.2",
"@eslint/js": "9.14.0",
"@next/eslint-plugin-next": "15.0.3",
+19 -4
View File
@@ -1,4 +1,4 @@
import { type ChakraProps } from '@chakra-ui/react';
import type { HTMLChakraProps } from '@chakra-ui/react';
import { GrowthBookProvider } from '@growthbook/growthbook-react';
import { QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
@@ -10,7 +10,6 @@ import type { NextPageWithLayout } from 'nextjs/types';
import config from 'configs/app';
import useQueryClientConfig from 'lib/api/useQueryClientConfig';
import { AppContextProvider } from 'lib/contexts/app';
import { ChakraProvider } from 'lib/contexts/chakra';
import { MarketplaceContextProvider } from 'lib/contexts/marketplace';
import { RewardsContextProvider } from 'lib/contexts/rewards';
import { ScrollDirectionProvider } from 'lib/contexts/scrollDirection';
@@ -20,6 +19,8 @@ import useLoadFeatures from 'lib/growthbook/useLoadFeatures';
import useNotifyOnNavigation from 'lib/hooks/useNotifyOnNavigation';
import { clientConfig as rollbarConfig, Provider as RollbarProvider } from 'lib/rollbar';
import { SocketProvider } from 'lib/socket/context';
import { Provider as ChakraProvider } from 'toolkit/chakra/provider';
import { Toaster } from 'toolkit/chakra/toaster';
import RewardsLoginModal from 'ui/rewards/login/RewardsLoginModal';
import AppErrorBoundary from 'ui/shared/AppError/AppErrorBoundary';
import AppErrorGlobalContainer from 'ui/shared/AppError/AppErrorGlobalContainer';
@@ -34,7 +35,7 @@ type AppPropsWithLayout = AppProps & {
Component: NextPageWithLayout;
};
const ERROR_SCREEN_STYLES: ChakraProps = {
const ERROR_SCREEN_STYLES: HTMLChakraProps<'div'> = {
h: '100vh',
display: 'flex',
flexDirection: 'column',
@@ -47,16 +48,29 @@ const ERROR_SCREEN_STYLES: ChakraProps = {
};
function MyApp({ Component, pageProps }: AppPropsWithLayout) {
// to avoid hydration mismatch between server and client
// we have to render the app only on client (when it is mounted)
// https://github.com/pacocoursey/next-themes?tab=readme-ov-file#avoid-hydration-mismatch
const [ mounted, setMounted ] = React.useState(false);
React.useEffect(() => {
setMounted(true);
}, []);
useLoadFeatures(pageProps.uuid);
useNotifyOnNavigation();
const growthBook = initGrowthBook(pageProps.uuid);
const queryClient = useQueryClientConfig();
if (!mounted) {
return null;
}
const getLayout = Component.getLayout ?? ((page) => <Layout>{ page }</Layout>);
return (
<ChakraProvider cookies={ pageProps.cookies }>
<ChakraProvider>
<RollbarProvider config={ rollbarConfig }>
<AppErrorBoundary
{ ...ERROR_SCREEN_STYLES }
@@ -72,6 +86,7 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) {
<MarketplaceContextProvider>
<SettingsContextProvider>
{ getLayout(<Component { ...pageProps }/>) }
<Toaster/>
{ config.features.rewards.isEnabled && <RewardsLoginModal/> }
</SettingsContextProvider>
</MarketplaceContextProvider>
-3
View File
@@ -1,4 +1,3 @@
import { ColorModeScript } from '@chakra-ui/react';
import type { DocumentContext } from 'next/document';
import Document, { Html, Head, Main, NextScript } from 'next/document';
import React from 'react';
@@ -7,7 +6,6 @@ import logRequestFromBot from 'nextjs/utils/logRequestFromBot';
import * as serverTiming from 'nextjs/utils/serverTiming';
import config from 'configs/app';
import theme from 'theme/theme';
import * as svgSprite from 'ui/shared/IconSvg';
class MyDocument extends Document {
@@ -57,7 +55,6 @@ class MyDocument extends Document {
<link rel="preload" as="image" href={ svgSprite.href }/>
</Head>
<body>
<ColorModeScript initialColorMode={ theme.config.initialColorMode }/>
<Main/>
<NextScript/>
</body>
+18
View File
@@ -0,0 +1,18 @@
import type { NextPage } from 'next';
import React from 'react';
import PageNextJs from 'nextjs/PageNextJs';
import Chakra from 'ui/pages/Chakra';
const Page: NextPage = () => {
return (
<PageNextJs pathname="/chakra">
<Chakra/>
</PageNextJs>
);
};
export default Page;
export { base as getServerSideProps } from 'nextjs/getServerSideProps';
+2 -3
View File
@@ -1,4 +1,3 @@
import { ChakraProvider } from '@chakra-ui/react';
import { GrowthBookProvider } from '@growthbook/growthbook-react';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import React from 'react';
@@ -15,7 +14,7 @@ import { RewardsContextProvider } from 'lib/contexts/rewards';
import { SettingsContextProvider } from 'lib/contexts/settings';
import { SocketProvider } from 'lib/socket/context';
import { currentChain } from 'lib/web3/chains';
import theme from 'theme/theme';
import { Provider as ChakraProvider } from 'toolkit/chakra/provider';
import { port as socketPort } from './utils/socket';
@@ -73,7 +72,7 @@ const TestApp = ({ children, withSocket, appContext = defaultAppContext, marketp
}));
return (
<ChakraProvider theme={ theme }>
<ChakraProvider>
<QueryClientProvider client={ queryClient }>
<SocketProvider url={ withSocket ? `ws://${ config.app.host }:${ socketPort }` : undefined }>
<AppContextProvider { ...appContext }>
+2
View File
@@ -35,6 +35,7 @@
| "checkered_flag"
| "clock-light"
| "clock"
| "close"
| "coins/bitcoin"
| "collection"
| "columns"
@@ -80,6 +81,7 @@
| "heart_filled"
| "heart_outline"
| "hourglass"
| "info_filled"
| "info"
| "integration/full"
| "integration/partial"
+1 -1
View File
@@ -11,5 +11,5 @@
<path fill-rule="evenodd" clip-rule="evenodd" d="M137.981 51.029a4.626 4.626 0 0 1-4.411-3.228l-3.136-9.883h-1.927a4.629 4.629 0 0 1-4.412-3.228l-1.863-5.872h6.988l-3.686-5.553h34.921l-3.686 5.553h6.988l-1.863 5.872a4.628 4.628 0 0 1-4.411 3.228h-1.928l-3.135 9.883a4.629 4.629 0 0 1-4.412 3.228h-10.027Zm-2.368-15.81c0 1.49 1.113 2.7 2.486 2.7 1.373 0 2.486-1.21 2.486-2.7 0-1.49-1.113-2.7-2.486-2.7-1.373 0-2.486 1.21-2.486 2.7Zm14.764 0c0 1.49-1.113 2.7-2.486 2.7-1.374 0-2.487-1.21-2.487-2.7 0-1.49 1.113-2.7 2.487-2.7 1.373 0 2.486 1.21 2.486 2.7Z" fill="#004293"/>
<path d="M77.313 78.287h31.623c11.672 0 21.144-9.357 21.144-20.914V26.1c0-11.557-9.472-20.914-21.144-20.914H77.313c-11.672 0-21.144 9.357-21.144 20.914v31.272c0 11.557 9.472 20.914 21.144 20.914Z" fill="#CFE3FF" stroke="#7E94CE" stroke-width="1.125" stroke-linejoin="round"/>
<path d="M75.064 74.538h31.623c11.672 0 21.144-9.357 21.144-20.914V22.352c0-11.557-9.472-20.914-21.144-20.914H75.064c-11.672 0-21.144 9.357-21.144 20.914v31.272c0 11.557 9.472 20.914 21.144 20.914Z" fill="#fff" stroke="#7E94CE" stroke-width="1.125" stroke-linejoin="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M109.285 48.52h.013v2.028a5.795 5.795 0 0 1-5.795 5.796h-3.333v-.01H81.7a1.77 1.77 0 0 1-1.768-1.774v-1.486c.007-.066.011-.134.011-.202 0-1.043-.908-1.889-2.028-1.889-1.08 0-1.964.787-2.025 1.78l-.005.002v1.672a1.833 1.833 0 1 1-3.665 0v-7.123a2.324 2.324 0 0 1-.016-.238v-4.203c0-.98.792-1.774 1.769-1.774H85.56a1.687 1.687 0 1 1 0 3.374h-1.792c-1.032.014-1.865.917-1.865 2.029 0 1.12.846 2.028 1.889 2.028h.003c.123.033 9.006.045 15.868.05v-.009h.028c1.025 0 1.862-.799 1.924-1.808l.004-.003v-4.316c0-.8.649-1.449 1.449-1.449h4.767c.8 0 1.449.65 1.449 1.45v6.075ZM97.713 26.796c-.042 0-.084.002-.126.004-1.258-.038-12.012-.044-15.724-.044l-.05-.001c-1.025 0-1.862.8-1.924 1.809l-.003.002v4.316c0 .8-.649 1.449-1.449 1.449H73.67c-.8 0-1.449-.649-1.449-1.45v-6.085h-.016v-2.029a5.796 5.796 0 0 1 5.796-5.796h3.333v.033h18.469c.976 0 1.768.794 1.768 1.774v1.498a1.734 1.734 0 0 0 0 .36c.003.078.015.149.036.213.195.854 1.009 1.493 1.984 1.493 1.077 0 1.957-.78 2.024-1.768l.003-.001v-.05l.001-.07v-.025l-.001-.043v-1.496a1.832 1.832 0 1 1 3.665 0v7.139c.011.094.016.173.016.234v4.203c0 .98-.792 1.773-1.769 1.773h-4.191c-.068 0-.135-.004-.202-.011h-7.195a1.687 1.687 0 1 1 0-3.374h1.771c1.043 0 1.889-.908 1.889-2.028s-.846-2.029-1.89-2.029Z" fill="#5353D3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M109.285 48.52h.013v2.028a5.795 5.795 0 0 1-5.795 5.796h-3.333v-.01H81.7a1.77 1.77 0 0 1-1.768-1.774v-1.486c.007-.066.011-.134.011-.202 0-1.043-.908-1.889-2.028-1.889-1.08 0-1.964.787-2.025 1.78l-.005.002v1.672a1.833 1.833 0 1 1-3.665 0v-7.123a2.324 2.324 0 0 1-.016-.238v-4.203c0-.98.792-1.774 1.769-1.774H85.56a1.687 1.687 0 1 1 0 3.374h-1.792c-1.032.014-1.865.917-1.865 2.029 0 1.12.846 2.028 1.889 2.028h.003c.123.033 9.006.045 15.868.05v-.009h.028a1.927 1.927 0 0 0 1.924-1.808l.004-.003v-4.316c0-.8.649-1.449 1.449-1.449h4.767c.8 0 1.449.65 1.449 1.45v6.075ZM97.713 26.796a2.65 2.65 0 0 0-.126.004c-1.258-.038-12.012-.044-15.724-.044l-.05-.001c-1.025 0-1.862.8-1.924 1.809l-.003.002v4.316c0 .8-.649 1.449-1.449 1.449H73.67a1.45 1.45 0 0 1-1.449-1.45v-6.085h-.016v-2.029a5.796 5.796 0 0 1 5.796-5.796h3.333v.033h18.469c.976 0 1.768.794 1.768 1.774v1.498a1.734 1.734 0 0 0 0 .36.777.777 0 0 0 .036.213c.195.854 1.009 1.493 1.984 1.493 1.077 0 1.957-.78 2.024-1.768l.003-.001v-.05l.001-.07v-.025l-.001-.043v-1.496a1.832 1.832 0 1 1 3.665 0v7.139c.011.094.016.173.016.234v4.203a1.77 1.77 0 0 1-1.769 1.773h-4.191c-.068 0-.135-.004-.202-.011h-7.195a1.687 1.687 0 1 1 0-3.374h1.771c1.043 0 1.889-.908 1.889-2.028s-.846-2.029-1.89-2.029Z" fill="#5353D3"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

+8 -8
View File
@@ -1,7 +1,7 @@
<svg viewBox="0 0 181 86" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M135.242 8.795a13.983 13.983 0 0 1 13.995 0L167.98 19.63a13.982 13.982 0 0 1 6.985 12.106v21.697c0 4.992-2.662 9.606-6.985 12.105l-18.743 10.834a13.983 13.983 0 0 1-13.995 0l-18.743-10.834a13.984 13.984 0 0 1-6.985-12.106V31.735c0-4.993 2.663-9.607 6.985-12.106l18.743-10.834Z" fill="url(#a)"/>
<path d="M135.978 9.477a13.483 13.483 0 0 1 13.495 0l18.743 10.834a13.483 13.483 0 0 1 6.735 11.674V53.68c0 4.815-2.567 9.264-6.735 11.674l-18.743 10.834a13.483 13.483 0 0 1-13.495 0l-18.743-10.834a13.484 13.484 0 0 1-6.736-11.674V31.985c0-4.815 2.568-9.264 6.736-11.674l18.743-10.834Z" fill="url(#b)" stroke="#6BB171" stroke-width=".999"/>
<path d="M123.015 44.668a.295.295 0 0 0-.045-.158l-.859-1.388a.3.3 0 0 0-.314-.136l-6.966 1.387a.297.297 0 0 0-.198.14l-.741 1.227a.298.298 0 0 0-.004.303l.741 1.299a.3.3 0 0 0 .261.151h7.825a.3.3 0 0 0 .3-.3v-2.525Zm2.005 4.021a.294.294 0 0 0-.083.104l-.832 1.714a.3.3 0 0 0 .018.293l.831 1.298a.3.3 0 0 0 .253.138h11.904a.3.3 0 0 0 .3-.3V48.64a.304.304 0 0 0-.043-.156l-.879-1.447a.3.3 0 0 0-.333-.134l-4.165 1.09c1.316-1.105 2.438-2.234 3.362-3.387h.001c1.192-1.503 1.796-3.14 1.796-4.907 0-1.616-.505-2.953-1.533-3.981-1.024-1.04-2.529-1.536-4.458-1.536-1.131 0-2.172.222-3.117.67h-.001c-.268.13-.611.413-.965.747-.362.342-.763.763-1.151 1.197-.771.862-1.514 1.797-1.805 2.272-.06.097-.06.22.001.316l.784 1.257a.299.299 0 0 0 .254.141h3.913a.3.3 0 0 0 .3-.3c0-.787.16-1.346.438-1.716.288-.38.671-.569 1.183-.569.538 0 .892.16 1.12.437.242.292.382.722.382 1.326 0 .779-.28 1.598-.872 2.463a14.612 14.612 0 0 1-2.231 2.533l-.002.002c-.88.816-2.092 1.863-3.639 3.142a.254.254 0 0 0-.029.028l-.117.094c-.121.099-.316.254-.585.467Zm15.193-12.003-.001.001c-1.088 1.632-1.615 3.84-1.615 6.593 0 2.785.527 5.008 1.615 6.64l.001.002c1.129 1.668 2.935 2.48 5.347 2.48 2.412 0 4.211-.812 5.324-2.48 1.105-1.633 1.64-3.857 1.64-6.642 0-2.753-.536-4.962-1.64-6.594-1.113-1.668-2.912-2.48-5.324-2.48s-4.218.812-5.347 2.48Zm7.227 3.03.001.002c.326.8.499 1.98.499 3.562 0 1.065-.063 1.939-.185 2.627-.118.651-.359 1.167-.711 1.56v.001c-.306.344-.781.54-1.484.54-.699 0-1.184-.195-1.507-.54-.336-.394-.569-.91-.687-1.561-.123-.688-.185-1.562-.185-2.627 0-1.582.173-2.762.499-3.562l.001-.002c.153-.382.379-.653.677-.833.301-.182.696-.283 1.202-.283.507 0 .902.101 1.203.283.297.18.524.451.677.833Zm8.802.304-.002.002c-.62.593-.911 1.422-.911 2.44 0 1.019.291 1.847.911 2.44l.002.002c.622.582 1.416.864 2.358.864.718 0 1.348-.164 1.877-.501l-3.74 5.347a.299.299 0 0 0-.003.34l.941 1.388a.3.3 0 0 0 .249.131h2.934c.11 0 .211-.06.264-.156l6.847-12.521a.3.3 0 0 0-.006-.299l-.793-1.316a.301.301 0 0 0-.414-.1l-2.142 1.315a.306.306 0 0 0-.089.084l-2.78 3.975c.072-.306.107-.638.107-.993 0-1.019-.291-1.847-.911-2.44-.61-.584-1.4-.866-2.341-.866-.942 0-1.736.282-2.358.864Zm11.185 8.612.005.006c.097.127.17.352.17.725s-.073.599-.17.725c-.093.121-.215.184-.402.184-.204 0-.318-.066-.395-.175-.091-.128-.159-.357-.159-.734 0-.386.068-.62.156-.747.092-.118.213-.18.398-.18.18 0 .302.063.397.196Zm-9.399-6.17c0-.383.068-.618.16-.749.077-.111.191-.178.394-.178.211 0 .329.069.409.18.093.131.162.364.162.747 0 .373-.073.599-.169.725-.093.121-.215.185-.402.185-.205 0-.319-.067-.395-.176-.091-.128-.159-.357-.159-.734Zm6.678 4.461c-.62.593-.911 1.421-.911 2.44s.291 1.847.911 2.44c.61.584 1.401.866 2.342.866.941 0 1.731-.282 2.341-.866.62-.593.911-1.421.911-2.44s-.291-1.847-.911-2.44c-.61-.584-1.4-.866-2.341-.866-.941 0-1.732.282-2.342.866Z" fill="#9EDF99" stroke="#6BB171" stroke-width=".6" stroke-linejoin="round"/>
<path d="M123.015 44.668a.295.295 0 0 0-.045-.158l-.859-1.388a.3.3 0 0 0-.314-.136l-6.966 1.387a.297.297 0 0 0-.198.14l-.741 1.227a.298.298 0 0 0-.004.303l.741 1.299a.3.3 0 0 0 .261.151h7.825a.3.3 0 0 0 .3-.3v-2.525Zm2.005 4.021a.294.294 0 0 0-.083.104l-.832 1.714a.3.3 0 0 0 .018.293l.831 1.298a.3.3 0 0 0 .253.138h11.904a.3.3 0 0 0 .3-.3V48.64a.304.304 0 0 0-.043-.156l-.879-1.447a.3.3 0 0 0-.333-.134l-4.165 1.09c1.316-1.105 2.438-2.234 3.362-3.387h.001c1.192-1.503 1.796-3.14 1.796-4.907 0-1.616-.505-2.953-1.533-3.981-1.024-1.04-2.529-1.536-4.458-1.536-1.131 0-2.172.222-3.117.67h-.001c-.268.13-.611.413-.965.747-.362.342-.763.763-1.151 1.197-.771.862-1.514 1.797-1.805 2.272-.06.097-.06.22.001.316l.784 1.257a.299.299 0 0 0 .254.141h3.913a.3.3 0 0 0 .3-.3c0-.787.16-1.346.438-1.716.288-.38.671-.569 1.183-.569.538 0 .892.16 1.12.437.242.292.382.722.382 1.326 0 .779-.28 1.598-.872 2.463a14.612 14.612 0 0 1-2.231 2.533l-.002.002c-.88.816-2.092 1.863-3.639 3.142a.254.254 0 0 0-.029.028l-.117.094a55.61 55.61 0 0 1-.585.467Zm15.193-12.003-.001.001c-1.088 1.632-1.615 3.84-1.615 6.593 0 2.785.527 5.008 1.615 6.64l.001.002c1.129 1.668 2.935 2.48 5.347 2.48 2.412 0 4.211-.812 5.324-2.48 1.105-1.633 1.64-3.857 1.64-6.642 0-2.753-.536-4.962-1.64-6.594-1.113-1.668-2.912-2.48-5.324-2.48s-4.218.812-5.347 2.48Zm7.227 3.03.001.002c.326.8.499 1.98.499 3.562 0 1.065-.063 1.939-.185 2.627-.118.651-.359 1.167-.711 1.56v.001c-.306.344-.781.54-1.484.54-.699 0-1.184-.195-1.507-.54-.336-.394-.569-.91-.687-1.561-.123-.688-.185-1.562-.185-2.627 0-1.582.173-2.762.499-3.562l.001-.002c.153-.382.379-.653.677-.833.301-.182.696-.283 1.202-.283.507 0 .902.101 1.203.283.297.18.524.451.677.833Zm8.802.304-.002.002c-.62.593-.911 1.422-.911 2.44 0 1.019.291 1.847.911 2.44l.002.002c.622.582 1.416.864 2.358.864.718 0 1.348-.164 1.877-.501l-3.74 5.347a.299.299 0 0 0-.003.34l.941 1.388a.3.3 0 0 0 .249.131h2.934c.11 0 .211-.06.264-.156l6.847-12.521a.3.3 0 0 0-.006-.299l-.793-1.316a.301.301 0 0 0-.414-.1l-2.142 1.315a.306.306 0 0 0-.089.084l-2.78 3.975c.072-.306.107-.638.107-.993 0-1.019-.291-1.847-.911-2.44-.61-.584-1.4-.866-2.341-.866-.942 0-1.736.282-2.358.864Zm11.185 8.612.005.006c.097.127.17.352.17.725s-.073.599-.17.725c-.093.121-.215.184-.402.184-.204 0-.318-.066-.395-.175-.091-.128-.159-.357-.159-.734 0-.386.068-.62.156-.747.092-.118.213-.18.398-.18.18 0 .302.063.397.196Zm-9.399-6.17c0-.383.068-.618.16-.749.077-.111.191-.178.394-.178.211 0 .329.069.409.18.093.131.162.364.162.747 0 .373-.073.599-.169.725-.093.121-.215.185-.402.185-.205 0-.319-.067-.395-.176-.091-.128-.159-.357-.159-.734Zm6.678 4.461c-.62.593-.911 1.421-.911 2.44s.291 1.847.911 2.44c.61.584 1.401.866 2.342.866.941 0 1.731-.282 2.341-.866.62-.593.911-1.421.911-2.44s-.291-1.847-.911-2.44c-.61-.584-1.4-.866-2.341-.866-.941 0-1.732.282-2.342.866Z" fill="#9EDF99" stroke="#6BB171" stroke-width=".6" stroke-linejoin="round"/>
<path d="M122.126 43.185a.3.3 0 0 0-.3-.3H114a.3.3 0 0 0-.3.3v2.526a.3.3 0 0 0 .3.3h7.826a.3.3 0 0 0 .3-.3v-2.526Zm2.005 4.022a.3.3 0 0 0-.114.235v3.012a.3.3 0 0 0 .3.3h11.905a.3.3 0 0 0 .3-.3v-3.296a.3.3 0 0 0-.3-.3h-5.54c1.499-1.217 2.761-2.461 3.782-3.734l.001-.001c1.192-1.502 1.796-3.14 1.796-4.906 0-1.616-.506-2.953-1.534-3.981-1.024-1.041-2.528-1.536-4.458-1.536-1.131 0-2.171.222-3.116.67h-.002c-.941.454-1.702 1.16-2.283 2.105l-.002.004c-.571.956-.864 2.133-.896 3.514a.301.301 0 0 0 .3.307h3.913a.3.3 0 0 0 .3-.3c0-.787.159-1.346.437-1.717.288-.38.672-.568 1.183-.568.538 0 .892.16 1.121.436.242.293.382.723.382 1.327 0 .779-.281 1.598-.873 2.463a14.613 14.613 0 0 1-2.231 2.533l-.002.001c-.879.817-2.091 1.864-3.639 3.143a.376.376 0 0 0-.029.027l-.116.095-.585.467Zm15.193-12.004-.001.002c-1.088 1.632-1.616 3.84-1.616 6.593 0 2.784.527 5.008 1.616 6.64l.001.002c1.128 1.668 2.934 2.48 5.347 2.48 2.412 0 4.211-.812 5.324-2.48 1.104-1.633 1.64-3.857 1.64-6.642 0-2.754-.536-4.962-1.64-6.594-1.113-1.669-2.912-2.48-5.324-2.48-2.413 0-4.219.812-5.347 2.48Zm7.226 3.03.001.003c.326.8.5 1.98.5 3.562 0 1.065-.063 1.939-.185 2.626-.119.652-.36 1.167-.711 1.562h-.001c-.305.344-.78.54-1.483.54-.699 0-1.185-.195-1.507-.54-.336-.394-.569-.91-.688-1.561-.122-.688-.185-1.562-.185-2.627 0-1.582.174-2.762.5-3.562v-.002c.153-.382.38-.653.677-.833.301-.182.696-.283 1.203-.283.507 0 .901.101 1.202.283.298.18.525.451.677.833Zm8.803.305-.002.002c-.62.593-.911 1.421-.911 2.44s.291 1.847.911 2.44l.002.002c.621.582 1.416.864 2.357.864.941 0 1.731-.282 2.342-.866.619-.593.91-1.421.91-2.44s-.291-1.847-.91-2.44c-.611-.584-1.401-.866-2.342-.866-.941 0-1.736.282-2.357.864Zm11.727-.224a.302.302 0 0 0-.264-.444h-2.934c-.11 0-.211.06-.264.156l-6.847 12.521a.3.3 0 0 0 .263.444h2.935a.3.3 0 0 0 .263-.156l6.848-12.521Zm-.542 8.835h-.001l.005.007c.097.126.17.352.17.725s-.073.598-.17.725c-.092.12-.214.184-.402.184-.204 0-.318-.066-.395-.175-.09-.128-.158-.357-.158-.734 0-.387.067-.62.155-.747.092-.118.214-.18.398-.18a.45.45 0 0 1 .398.195Zm-9.399-6.169c0-.383.068-.618.159-.75.078-.11.192-.177.394-.177.211 0 .33.068.409.18.093.131.163.364.163.747 0 .373-.073.598-.17.725-.092.121-.214.184-.402.184-.204 0-.318-.066-.395-.175-.09-.128-.158-.357-.158-.734Zm6.678 4.46c-.62.594-.911 1.422-.911 2.44 0 1.02.291 1.848.911 2.44.61.585 1.4.867 2.341.867.941 0 1.732-.282 2.342-.866.62-.593.911-1.421.911-2.44s-.291-1.847-.911-2.44c-.61-.584-1.401-.866-2.342-.866-.941 0-1.731.282-2.341.866Z" fill="#fff" stroke="#6BB171" stroke-width=".6" stroke-linejoin="round"/>
<path d="M60.254 4.092H17.878c-9.112 0-16.5 7.387-16.5 16.5v43.983c0 9.112 7.388 16.5 16.5 16.5h42.376c9.112 0 16.5-7.388 16.5-16.5V20.591c0-9.112-7.388-16.5-16.5-16.5Z" fill="url(#c)" stroke="#A7BFDA" stroke-width=".999"/>
<path d="M59.791 9.25H18.34c-6.903 0-12.499 5.597-12.499 12.5v41.666c0 6.903 5.596 12.5 12.5 12.5h41.45c6.903 0 12.5-5.597 12.5-12.5V21.75c0-6.903-5.597-12.5-12.5-12.5Z" stroke="#F8FBFF" stroke-width=".999"/>
@@ -11,7 +11,7 @@
<path d="M163.376 4.092H121c-9.112 0-16.499 7.387-16.499 16.5v43.983c0 9.112 7.387 16.5 16.499 16.5h42.376c9.112 0 16.499-7.388 16.499-16.5V20.591c0-9.112-7.387-16.5-16.499-16.5Z" fill="url(#e)" stroke="#A7BFDA" stroke-width=".999"/>
<path d="M162.913 9.25h-41.451c-6.903 0-12.499 5.597-12.499 12.5v41.666c0 6.903 5.596 12.5 12.499 12.5h41.451c6.903 0 12.5-5.597 12.5-12.5V21.75c0-6.903-5.597-12.5-12.5-12.5Z" stroke="#F8FBFF" stroke-width=".999"/>
<path d="M141.847 10.5h20.726c6.351 0 11.5 5.148 11.5 11.5v41.666c0 6.351-5.149 11.5-11.5 11.5h-41.451c-6.352 0-11.501-5.149-11.501-11.5V22c0-6.352 5.149-11.5 11.501-11.5h20.725Z" fill="url(#f)" stroke="#6BB171" stroke-width=".999"/>
<path d="M123.015 44.667a.294.294 0 0 0-.045-.157l-.859-1.388a.3.3 0 0 0-.314-.136l-6.966 1.387a.297.297 0 0 0-.198.14l-.741 1.227a.298.298 0 0 0-.004.303l.741 1.299a.3.3 0 0 0 .261.151h7.825a.3.3 0 0 0 .3-.3v-2.526Zm2.005 4.022a.294.294 0 0 0-.083.104l-.832 1.714a.3.3 0 0 0 .018.292l.831 1.299a.3.3 0 0 0 .253.138h11.904a.3.3 0 0 0 .3-.3V48.64a.304.304 0 0 0-.043-.156l-.879-1.447a.3.3 0 0 0-.333-.134l-4.165 1.09c1.316-1.105 2.438-2.235 3.362-3.387l.001-.001c1.192-1.502 1.796-3.14 1.796-4.906 0-1.616-.505-2.953-1.533-3.981-1.024-1.041-2.529-1.536-4.458-1.536-1.131 0-2.172.222-3.117.67h-.001c-.268.13-.611.413-.965.747-.362.342-.763.763-1.151 1.197-.771.862-1.514 1.797-1.805 2.272-.06.097-.06.22.001.316l.784 1.257a.299.299 0 0 0 .254.14h3.913a.3.3 0 0 0 .3-.3c0-.786.16-1.345.438-1.716.288-.38.671-.568 1.183-.568.538 0 .892.16 1.12.436.242.293.382.723.382 1.327 0 .779-.28 1.598-.872 2.463a14.616 14.616 0 0 1-2.231 2.533l-.002.002c-.88.816-2.092 1.863-3.639 3.142a.245.245 0 0 0-.029.028l-.117.094c-.121.098-.316.254-.585.467Zm15.193-12.004-.001.002c-1.088 1.632-1.615 3.84-1.615 6.593 0 2.784.527 5.008 1.615 6.64l.001.002c1.129 1.668 2.935 2.48 5.347 2.48 2.412 0 4.211-.812 5.324-2.48 1.105-1.633 1.64-3.857 1.64-6.642 0-2.754-.536-4.962-1.64-6.594-1.113-1.669-2.912-2.48-5.324-2.48s-4.218.812-5.347 2.48Zm7.227 3.03.001.003c.326.8.499 1.98.499 3.562 0 1.065-.063 1.939-.185 2.626-.118.652-.359 1.167-.711 1.562-.306.344-.781.54-1.484.54-.699 0-1.184-.195-1.507-.54-.336-.394-.569-.91-.687-1.561-.123-.688-.185-1.562-.185-2.627 0-1.582.173-2.762.499-3.562l.001-.002c.153-.382.379-.653.677-.833.301-.182.696-.283 1.202-.283.507 0 .902.101 1.203.283.297.18.524.451.677.833Zm8.802.305-.002.002c-.62.593-.911 1.421-.911 2.44s.291 1.847.911 2.44l.002.002c.622.582 1.416.864 2.358.864.718 0 1.348-.164 1.877-.501l-3.74 5.347a.299.299 0 0 0-.003.34l.941 1.388a.3.3 0 0 0 .249.131h2.934c.11 0 .211-.06.264-.156l6.847-12.521a.3.3 0 0 0-.006-.299l-.793-1.316a.301.301 0 0 0-.414-.1l-2.142 1.315a.307.307 0 0 0-.089.084l-2.78 3.975c.072-.307.107-.638.107-.993 0-1.019-.291-1.847-.911-2.44-.61-.584-1.4-.866-2.341-.866-.942 0-1.736.282-2.358.864Zm11.185 8.611.005.007c.097.127.17.352.17.725s-.073.598-.17.725c-.093.12-.215.184-.402.184-.204 0-.318-.066-.395-.175-.091-.128-.159-.357-.159-.734 0-.386.068-.62.156-.747.092-.118.213-.18.398-.18.18 0 .302.063.397.196Zm-9.399-6.169c0-.384.068-.618.16-.749.077-.112.191-.178.394-.178.211 0 .329.068.409.18.093.131.162.364.162.747 0 .373-.073.598-.169.725-.093.121-.215.184-.402.184-.205 0-.319-.066-.395-.175-.091-.128-.159-.357-.159-.734Zm6.678 4.46c-.62.594-.911 1.422-.911 2.44 0 1.02.291 1.848.911 2.44.61.585 1.401.867 2.342.867.941 0 1.731-.282 2.341-.866.62-.593.911-1.421.911-2.44s-.291-1.847-.911-2.44c-.61-.584-1.4-.866-2.341-.866-.941 0-1.732.282-2.342.866Z" fill="#9EDF99" stroke="#6BB171" stroke-width=".6" stroke-linejoin="round"/>
<path d="M123.015 44.667a.294.294 0 0 0-.045-.157l-.859-1.388a.3.3 0 0 0-.314-.136l-6.966 1.387a.297.297 0 0 0-.198.14l-.741 1.227a.298.298 0 0 0-.004.303l.741 1.299a.3.3 0 0 0 .261.151h7.825a.3.3 0 0 0 .3-.3v-2.526Zm2.005 4.022a.294.294 0 0 0-.083.104l-.832 1.714a.3.3 0 0 0 .018.292l.831 1.299a.3.3 0 0 0 .253.138h11.904a.3.3 0 0 0 .3-.3V48.64a.304.304 0 0 0-.043-.156l-.879-1.447a.3.3 0 0 0-.333-.134l-4.165 1.09c1.316-1.105 2.438-2.235 3.362-3.387l.001-.001c1.192-1.502 1.796-3.14 1.796-4.906 0-1.616-.505-2.953-1.533-3.981-1.024-1.041-2.529-1.536-4.458-1.536-1.131 0-2.172.222-3.117.67h-.001c-.268.13-.611.413-.965.747-.362.342-.763.763-1.151 1.197-.771.862-1.514 1.797-1.805 2.272-.06.097-.06.22.001.316l.784 1.257a.299.299 0 0 0 .254.14h3.913a.3.3 0 0 0 .3-.3c0-.786.16-1.345.438-1.716.288-.38.671-.568 1.183-.568.538 0 .892.16 1.12.436.242.293.382.723.382 1.327 0 .779-.28 1.598-.872 2.463a14.616 14.616 0 0 1-2.231 2.533l-.002.002c-.88.816-2.092 1.863-3.639 3.142a.245.245 0 0 0-.029.028l-.117.094c-.121.098-.316.254-.585.467Zm15.193-12.004-.001.002c-1.088 1.632-1.615 3.84-1.615 6.593 0 2.784.527 5.008 1.615 6.64l.001.002c1.129 1.668 2.935 2.48 5.347 2.48 2.412 0 4.211-.812 5.324-2.48 1.105-1.633 1.64-3.857 1.64-6.642 0-2.754-.536-4.962-1.64-6.594-1.113-1.669-2.912-2.48-5.324-2.48s-4.218.812-5.347 2.48Zm7.227 3.03.001.003c.326.8.499 1.98.499 3.562 0 1.065-.063 1.939-.185 2.626-.118.652-.359 1.167-.711 1.562-.306.344-.781.54-1.484.54-.699 0-1.184-.195-1.507-.54-.336-.394-.569-.91-.687-1.561-.123-.688-.185-1.562-.185-2.627 0-1.582.173-2.762.499-3.562l.001-.002c.153-.382.379-.653.677-.833.301-.182.696-.283 1.202-.283.507 0 .902.101 1.203.283.297.18.524.451.677.833Zm8.802.305-.002.002c-.62.593-.911 1.421-.911 2.44s.291 1.847.911 2.44l.002.002c.622.582 1.416.864 2.358.864.718 0 1.348-.164 1.877-.501l-3.74 5.347a.299.299 0 0 0-.003.34l.941 1.388a.3.3 0 0 0 .249.131h2.934c.11 0 .211-.06.264-.156l6.847-12.521a.3.3 0 0 0-.006-.299l-.793-1.316a.301.301 0 0 0-.414-.1l-2.142 1.315a.307.307 0 0 0-.089.084l-2.78 3.975c.072-.307.107-.638.107-.993 0-1.019-.291-1.847-.911-2.44-.61-.584-1.4-.866-2.341-.866-.942 0-1.736.282-2.358.864Zm11.185 8.611.005.007c.097.127.17.352.17.725s-.073.598-.17.725a.466.466 0 0 1-.402.184c-.204 0-.318-.066-.395-.175-.091-.128-.159-.357-.159-.734 0-.386.068-.62.156-.747.092-.118.213-.18.398-.18.18 0 .302.063.397.196Zm-9.399-6.169c0-.384.068-.618.16-.749.077-.112.191-.178.394-.178.211 0 .329.068.409.18.093.131.162.364.162.747 0 .373-.073.598-.169.725-.093.121-.215.184-.402.184-.205 0-.319-.066-.395-.175-.091-.128-.159-.357-.159-.734Zm6.678 4.46c-.62.594-.911 1.422-.911 2.44 0 1.02.291 1.848.911 2.44.61.585 1.401.867 2.342.867.941 0 1.731-.282 2.341-.866.62-.593.911-1.421.911-2.44s-.291-1.847-.911-2.44c-.61-.584-1.4-.866-2.341-.866-.941 0-1.732.282-2.342.866Z" fill="#9EDF99" stroke="#6BB171" stroke-width=".6" stroke-linejoin="round"/>
<path d="M122.126 43.185a.3.3 0 0 0-.3-.3H114a.3.3 0 0 0-.3.3v2.526a.3.3 0 0 0 .3.3h7.826a.3.3 0 0 0 .3-.3v-2.526Zm2.005 4.022a.3.3 0 0 0-.114.235v3.012a.3.3 0 0 0 .3.3h11.905a.3.3 0 0 0 .3-.3v-3.297a.3.3 0 0 0-.3-.3h-5.54c1.499-1.216 2.761-2.46 3.782-3.733l.001-.001c1.192-1.502 1.796-3.14 1.796-4.906 0-1.617-.506-2.953-1.534-3.982-1.024-1.04-2.528-1.535-4.458-1.535-1.131 0-2.171.222-3.116.67h-.002c-.941.454-1.702 1.16-2.283 2.105l-.002.004c-.571.956-.864 2.132-.896 3.514a.3.3 0 0 0 .3.307h3.913a.3.3 0 0 0 .3-.3c0-.787.159-1.346.437-1.717.288-.38.672-.568 1.183-.568.538 0 .892.16 1.121.436.242.293.382.723.382 1.327 0 .778-.281 1.598-.873 2.463a14.612 14.612 0 0 1-2.231 2.532l-.002.002c-.879.817-2.091 1.864-3.639 3.143a.377.377 0 0 0-.029.027l-.116.095-.585.467Zm15.193-12.004-.001.002c-1.088 1.632-1.616 3.84-1.616 6.593 0 2.784.527 5.008 1.616 6.64l.001.002c1.128 1.668 2.934 2.48 5.347 2.48 2.412 0 4.211-.812 5.324-2.48 1.104-1.633 1.64-3.858 1.64-6.642 0-2.754-.536-4.962-1.64-6.594-1.113-1.669-2.912-2.48-5.324-2.48-2.413 0-4.219.812-5.347 2.48Zm7.226 3.03.001.003c.326.8.5 1.98.5 3.562 0 1.065-.063 1.938-.185 2.626-.119.652-.36 1.167-.711 1.561h-.001c-.305.344-.78.54-1.483.54-.699 0-1.185-.194-1.507-.54-.336-.393-.569-.909-.688-1.56-.122-.688-.185-1.562-.185-2.627 0-1.582.174-2.762.5-3.563v-.001c.153-.382.38-.653.677-.833.301-.182.696-.283 1.203-.283.507 0 .901.101 1.202.283.298.18.525.451.677.833Zm8.803.305-.002.002c-.62.593-.911 1.421-.911 2.44s.291 1.847.911 2.44l.002.002c.621.582 1.416.864 2.357.864.941 0 1.731-.282 2.342-.866.619-.593.91-1.421.91-2.44s-.291-1.847-.91-2.44c-.611-.584-1.401-.866-2.342-.866-.941 0-1.736.282-2.357.864Zm11.727-.224a.302.302 0 0 0-.264-.444h-2.934c-.11 0-.211.06-.264.156l-6.847 12.52a.3.3 0 0 0 .263.445h2.935a.3.3 0 0 0 .263-.156l6.848-12.521Zm-.542 8.835h-.001l.005.007c.097.126.17.351.17.725 0 .373-.073.598-.17.725-.092.12-.214.184-.402.184-.204 0-.318-.066-.395-.175-.09-.128-.158-.357-.158-.734 0-.387.067-.62.155-.748.092-.118.214-.18.398-.18a.45.45 0 0 1 .398.196Zm-9.399-6.17c0-.383.068-.617.159-.748.078-.112.192-.178.394-.178.211 0 .33.068.409.18.093.131.163.364.163.747 0 .373-.073.598-.17.725-.092.12-.214.184-.402.184-.204 0-.318-.066-.395-.175-.09-.128-.158-.357-.158-.734Zm6.678 4.462c-.62.592-.911 1.421-.911 2.44s.291 1.847.911 2.44c.61.584 1.4.866 2.341.866.941 0 1.732-.282 2.342-.866.62-.593.911-1.421.911-2.44s-.291-1.848-.911-2.44c-.61-.584-1.401-.866-2.342-.866-.941 0-1.731.282-2.341.866Z" fill="#fff" stroke="#6BB171" stroke-width=".6" stroke-linejoin="round"/>
<path d="M95.99 3.608a14.19 14.19 0 0 0-14.202 0L58.353 17.154a14.19 14.19 0 0 0-7.089 12.286v27.12a14.19 14.19 0 0 0 7.089 12.286l23.435 13.546a14.19 14.19 0 0 0 14.203 0l23.435-13.546a14.191 14.191 0 0 0 7.088-12.286V29.44c0-5.067-2.702-9.75-7.088-12.286L95.991 3.608Z" fill="#ECF5FF" stroke="#A7BFDA" stroke-width=".86"/>
<path d="M88.89 2.133V43L53.534 22.564a13.75 13.75 0 0 1 5.033-5.037L82.003 3.98a13.751 13.751 0 0 1 6.886-1.847Z" fill="#F8FBFF"/>
@@ -73,13 +73,13 @@
<g style="mix-blend-mode:color-burn">
<mask id="o" maskUnits="userSpaceOnUse" x="48.954" y="13.265" width="23" height="61" fill="#000">
<path fill="#fff" d="M48.954 13.265h23v61h-23z"/>
<path d="M66.283 19.338c-.609 1.258-1.689 1.917-2.886 2.396-.137.08-.275.2-.334.32-.451 1.018-.883 2.076-1.315 3.074-.157.38-.275.739-.452 1.198.51-.659.962-1.218 1.414-1.757.824-.978 1.806-1.717 3.121-1.917 1.335-.22 2.67-.1 3.986.24.039.04.059.04.137.08-.334.499-.628 1.018-.942 1.477-.687.899-1.512 1.637-2.611 2.037-1.57.499-3.18.619-4.79.359-.158-.06-.295-.08-.452-.12a46.466 46.466 0 0 0-1.865 7.128c.314-.46.589-.978.864-1.438.687-1.178 1.55-2.116 2.866-2.575a9.093 9.093 0 0 1 3.082-.52c.334 0 .687.04 1.1.04-.197.48-.334.9-.491 1.298-.51 1.098-1.139 2.057-2.16 2.696-1.217.818-2.591 1.218-4.024 1.357-.452.04-.943.08-1.414.12a50.868 50.868 0 0 0-.707 7.367c.079-.08.099-.2.138-.319.157-.46.334-.938.51-1.438.55-1.437 1.473-2.535 2.867-3.194.962-.44 1.982-.699 3.023-.858.177 0 .353-.04.55-.08v.24c-.04.219-.079.498-.138.778-.334 1.437-.883 2.815-2.1 3.753-1.277 1.059-2.769 1.717-4.398 2.077-.157.02-.314.02-.51.06a40.27 40.27 0 0 0 .588 7.527c.177-.819.315-1.597.472-2.376.255-1.098.785-2.077 1.63-2.815 1.06-.899 2.296-1.478 3.592-1.957.137 0 .275-.08.49-.12-.02.719-.039 1.338-.117 1.957-.138 1.138-.452 2.176-1.178 3.035-1.237 1.437-2.729 2.535-4.516 3.154-.059 0-.117.04-.196.08.452 2.316 1.06 4.572 1.885 6.748.04-.399 0-.778.02-1.178.02-1.317.235-2.555 1.04-3.613a8.461 8.461 0 0 1 2.356-2.097c.471-.32.942-.599 1.472-.858.06.22.079.42.118.579.275 1.637.275 3.234-.55 4.712-.687 1.218-1.63 2.236-2.729 3.094-.412.32-.824.58-1.256.859.805 2.096 1.728 4.133 2.827 6.07 0-.12 0-.2-.02-.28-.058-.54-.137-1.138-.196-1.677a5.277 5.277 0 0 1 .589-2.895c.57-1.038 1.335-1.937 2.238-2.716.334-.26.668-.539 1.021-.858.49 1.178.766 2.316.805 3.474 0 .659-.04 1.318-.295 1.956a11.52 11.52 0 0 1-3.101 4.493c-.157.12-.138.2-.06.36a55.346 55.346 0 0 0 3.004 4.471s-.196.4-1.511-.459c-.314-.459-.629-.898-.923-1.397-.609-.979-1.217-1.957-1.787-2.955-.117-.26-.235-.34-.51-.26-1.728.4-3.475.4-5.183-.08-1.217-.32-2.199-1.098-3.004-2.036-.353-.42-.667-.939-1-1.358-.02-.08-.06-.12-.099-.2l.118-.08c1.374-.459 2.787-.698 4.22-.578 1.434.08 2.592.778 3.613 1.797.236.24.451.459.726.658-.02-.08-.059-.16-.098-.24a53.484 53.484 0 0 1-2.395-5.69c-.059-.199-.137-.239-.334-.239-1.708.12-3.376-.2-4.947-.898-1.217-.54-2.061-1.478-2.71-2.616-.313-.499-.549-1.078-.843-1.697.569 0 1.08-.08 1.59-.08.981-.04 1.963.04 2.925.3 1.315.399 2.238 1.218 3.023 2.296.197.24.354.479.51.718-.49-2.136-.98-4.292-1.472-6.428-.785-.2-1.63-.36-2.414-.62-1.218-.419-2.356-1.018-3.26-1.996-.785-.858-1.59-2.735-1.688-3.893h.04c1.688.02 3.317.34 4.79 1.278.903.539 1.472 1.437 1.943 2.375.118.2.216.4.354.62-.197-2.137-.275-4.253-.118-6.39-1.06-.319-2.022-.738-2.906-1.317-1.295-.859-2.414-1.877-2.886-3.434a9.274 9.274 0 0 1-.431-2.536c-.02-.08 0-.16 0-.36.746.28 1.472.48 2.16.7.941.399 1.805.898 2.532 1.677.628.678.962 1.497 1.236 2.336.118.399.217.798.374 1.177 0-.12.02-.16.02-.279.176-2.056.45-4.093.863-6.11.04-.2.02-.359-.216-.439a9.5 9.5 0 0 1-3.868-3.434c-.687-1.058-.844-2.216-.824-3.474 0-.459.059-.898.118-1.437.589.32 1.158.559 1.649.858 1.1.64 2.061 1.418 2.69 2.536.49.858.608 1.837.687 2.815.039.3.039.619.117.898l.06-.24c.51-2.056 1.118-4.132 1.904-6.128.078-.2.078-.32-.099-.42-1.354-.978-2.375-2.216-3.121-3.753-.589-1.218-.589-2.456-.334-3.714.079-.46.197-.878.314-1.338l.04-.04c.863.54 1.668 1.159 2.355 1.937 1.06 1.138 1.63 2.456 1.512 4.093-.04.579-.098 1.218-.137 1.917.039-.08.059-.12.078-.2.432-.898.864-1.797 1.296-2.715.04-.12.04-.24.04-.36-.04-.818-.02-1.637.196-2.455.157-.62.392-1.258.844-1.717.53-.58 1.158-1.019 1.826-1.398.353-.24.706-.4 1.08-.579.058 0 .097.04.156.04-.02.3-.078.579-.098.878-.04 1.099-.294 2.197-.785 3.155Z"/>
<path d="M66.283 19.338c-.609 1.258-1.689 1.917-2.886 2.396-.137.08-.275.2-.334.32-.451 1.018-.883 2.076-1.315 3.074-.157.38-.275.739-.452 1.198.51-.659.962-1.218 1.414-1.757.824-.978 1.806-1.717 3.121-1.917 1.335-.22 2.67-.1 3.986.24.039.04.059.04.137.08-.334.499-.628 1.018-.942 1.477-.687.899-1.512 1.637-2.611 2.037-1.57.499-3.18.619-4.79.359-.158-.06-.295-.08-.452-.12a46.466 46.466 0 0 0-1.865 7.128c.314-.46.589-.978.864-1.438.687-1.178 1.55-2.116 2.866-2.575a9.093 9.093 0 0 1 3.082-.52c.334 0 .687.04 1.1.04-.197.48-.334.9-.491 1.298-.51 1.098-1.139 2.057-2.16 2.696-1.217.818-2.591 1.218-4.024 1.357-.452.04-.943.08-1.414.12a50.868 50.868 0 0 0-.707 7.367c.079-.08.099-.2.138-.319.157-.46.334-.938.51-1.438.55-1.437 1.473-2.535 2.867-3.194.962-.44 1.982-.699 3.023-.858.177 0 .353-.04.55-.08v.24c-.04.219-.079.498-.138.778-.334 1.437-.883 2.815-2.1 3.753-1.277 1.059-2.769 1.717-4.398 2.077-.157.02-.314.02-.51.06a40.27 40.27 0 0 0 .588 7.527c.177-.819.315-1.597.472-2.376.255-1.098.785-2.077 1.63-2.815 1.06-.899 2.296-1.478 3.592-1.957.137 0 .275-.08.49-.12-.02.719-.039 1.338-.117 1.957-.138 1.138-.452 2.176-1.178 3.035-1.237 1.437-2.729 2.535-4.516 3.154-.059 0-.117.04-.196.08.452 2.316 1.06 4.572 1.885 6.748.04-.399 0-.778.02-1.178.02-1.317.235-2.555 1.04-3.613a8.461 8.461 0 0 1 2.356-2.097c.471-.32.942-.599 1.472-.858.06.22.079.42.118.579.275 1.637.275 3.234-.55 4.712-.687 1.218-1.63 2.236-2.729 3.094-.412.32-.824.58-1.256.859.805 2.096 1.728 4.133 2.827 6.07 0-.12 0-.2-.02-.28-.058-.54-.137-1.138-.196-1.677a5.277 5.277 0 0 1 .589-2.895c.57-1.038 1.335-1.937 2.238-2.716.334-.26.668-.539 1.021-.858.49 1.178.766 2.316.805 3.474 0 .659-.04 1.318-.295 1.956a11.52 11.52 0 0 1-3.101 4.493c-.157.12-.138.2-.06.36a55.346 55.346 0 0 0 3.004 4.471s-.196.4-1.511-.459c-.314-.459-.629-.898-.923-1.397a92.016 92.016 0 0 1-1.787-2.955c-.117-.26-.235-.34-.51-.26-1.728.4-3.475.4-5.183-.08-1.217-.32-2.199-1.098-3.004-2.036-.353-.42-.667-.939-1-1.358-.02-.08-.06-.12-.099-.2l.118-.08c1.374-.459 2.787-.698 4.22-.578 1.434.08 2.592.778 3.613 1.797.236.24.451.459.726.658-.02-.08-.059-.16-.098-.24a53.484 53.484 0 0 1-2.395-5.69c-.059-.199-.137-.239-.334-.239-1.708.12-3.376-.2-4.947-.898-1.217-.54-2.061-1.478-2.71-2.616-.313-.499-.549-1.078-.843-1.697.569 0 1.08-.08 1.59-.08.981-.04 1.963.04 2.925.3 1.315.399 2.238 1.218 3.023 2.296.197.24.354.479.51.718-.49-2.136-.98-4.292-1.472-6.428-.785-.2-1.63-.36-2.414-.62-1.218-.419-2.356-1.018-3.26-1.996-.785-.858-1.59-2.735-1.688-3.893h.04c1.688.02 3.317.34 4.79 1.278.903.539 1.472 1.437 1.943 2.375.118.2.216.4.354.62-.197-2.137-.275-4.253-.118-6.39-1.06-.319-2.022-.738-2.906-1.317-1.295-.859-2.414-1.877-2.886-3.434a9.274 9.274 0 0 1-.431-2.536c-.02-.08 0-.16 0-.36.746.28 1.472.48 2.16.7.941.399 1.805.898 2.532 1.677.628.678.962 1.497 1.236 2.336.118.399.217.798.374 1.177 0-.12.02-.16.02-.279.176-2.056.45-4.093.863-6.11.04-.2.02-.359-.216-.439a9.5 9.5 0 0 1-3.868-3.434c-.687-1.058-.844-2.216-.824-3.474 0-.459.059-.898.118-1.437.589.32 1.158.559 1.649.858 1.1.64 2.061 1.418 2.69 2.536.49.858.608 1.837.687 2.815.039.3.039.619.117.898l.06-.24c.51-2.056 1.118-4.132 1.904-6.128.078-.2.078-.32-.099-.42-1.354-.978-2.375-2.216-3.121-3.753-.589-1.218-.589-2.456-.334-3.714.079-.46.197-.878.314-1.338l.04-.04c.863.54 1.668 1.159 2.355 1.937 1.06 1.138 1.63 2.456 1.512 4.093-.04.579-.098 1.218-.137 1.917.039-.08.059-.12.078-.2.432-.898.864-1.797 1.296-2.715.04-.12.04-.24.04-.36-.04-.818-.02-1.637.196-2.455.157-.62.392-1.258.844-1.717.53-.58 1.158-1.019 1.826-1.398.353-.24.706-.4 1.08-.579.058 0 .097.04.156.04-.02.3-.078.579-.098.878-.04 1.099-.294 2.197-.785 3.155Z"/>
</mask>
<path d="M66.283 19.338c-.609 1.258-1.689 1.917-2.886 2.396-.137.08-.275.2-.334.32-.451 1.018-.883 2.076-1.315 3.074-.157.38-.275.739-.452 1.198.51-.659.962-1.218 1.414-1.757.824-.978 1.806-1.717 3.121-1.917 1.335-.22 2.67-.1 3.986.24.039.04.059.04.137.08-.334.499-.628 1.018-.942 1.477-.687.899-1.512 1.637-2.611 2.037-1.57.499-3.18.619-4.79.359-.158-.06-.295-.08-.452-.12a46.466 46.466 0 0 0-1.865 7.128c.314-.46.589-.978.864-1.438.687-1.178 1.55-2.116 2.866-2.575a9.093 9.093 0 0 1 3.082-.52c.334 0 .687.04 1.1.04-.197.48-.334.9-.491 1.298-.51 1.098-1.139 2.057-2.16 2.696-1.217.818-2.591 1.218-4.024 1.357-.452.04-.943.08-1.414.12a50.868 50.868 0 0 0-.707 7.367c.079-.08.099-.2.138-.319.157-.46.334-.938.51-1.438.55-1.437 1.473-2.535 2.867-3.194.962-.44 1.982-.699 3.023-.858.177 0 .353-.04.55-.08v.24c-.04.219-.079.498-.138.778-.334 1.437-.883 2.815-2.1 3.753-1.277 1.059-2.769 1.717-4.398 2.077-.157.02-.314.02-.51.06a40.27 40.27 0 0 0 .588 7.527c.177-.819.315-1.597.472-2.376.255-1.098.785-2.077 1.63-2.815 1.06-.899 2.296-1.478 3.592-1.957.137 0 .275-.08.49-.12-.02.719-.039 1.338-.117 1.957-.138 1.138-.452 2.176-1.178 3.035-1.237 1.437-2.729 2.535-4.516 3.154-.059 0-.117.04-.196.08.452 2.316 1.06 4.572 1.885 6.748.04-.399 0-.778.02-1.178.02-1.317.235-2.555 1.04-3.613a8.461 8.461 0 0 1 2.356-2.097c.471-.32.942-.599 1.472-.858.06.22.079.42.118.579.275 1.637.275 3.234-.55 4.712-.687 1.218-1.63 2.236-2.729 3.094-.412.32-.824.58-1.256.859.805 2.096 1.728 4.133 2.827 6.07 0-.12 0-.2-.02-.28-.058-.54-.137-1.138-.196-1.677a5.277 5.277 0 0 1 .589-2.895c.57-1.038 1.335-1.937 2.238-2.716.334-.26.668-.539 1.021-.858.49 1.178.766 2.316.805 3.474 0 .659-.04 1.318-.295 1.956a11.52 11.52 0 0 1-3.101 4.493c-.157.12-.138.2-.06.36a55.346 55.346 0 0 0 3.004 4.471s-.196.4-1.511-.459c-.314-.459-.629-.898-.923-1.397-.609-.979-1.217-1.957-1.787-2.955-.117-.26-.235-.34-.51-.26-1.728.4-3.475.4-5.183-.08-1.217-.32-2.199-1.098-3.004-2.036-.353-.42-.667-.939-1-1.358-.02-.08-.06-.12-.099-.2l.118-.08c1.374-.459 2.787-.698 4.22-.578 1.434.08 2.592.778 3.613 1.797.236.24.451.459.726.658-.02-.08-.059-.16-.098-.24a53.484 53.484 0 0 1-2.395-5.69c-.059-.199-.137-.239-.334-.239-1.708.12-3.376-.2-4.947-.898-1.217-.54-2.061-1.478-2.71-2.616-.313-.499-.549-1.078-.843-1.697.569 0 1.08-.08 1.59-.08.981-.04 1.963.04 2.925.3 1.315.399 2.238 1.218 3.023 2.296.197.24.354.479.51.718-.49-2.136-.98-4.292-1.472-6.428-.785-.2-1.63-.36-2.414-.62-1.218-.419-2.356-1.018-3.26-1.996-.785-.858-1.59-2.735-1.688-3.893h.04c1.688.02 3.317.34 4.79 1.278.903.539 1.472 1.437 1.943 2.375.118.2.216.4.354.62-.197-2.137-.275-4.253-.118-6.39-1.06-.319-2.022-.738-2.906-1.317-1.295-.859-2.414-1.877-2.886-3.434a9.274 9.274 0 0 1-.431-2.536c-.02-.08 0-.16 0-.36.746.28 1.472.48 2.16.7.941.399 1.805.898 2.532 1.677.628.678.962 1.497 1.236 2.336.118.399.217.798.374 1.177 0-.12.02-.16.02-.279.176-2.056.45-4.093.863-6.11.04-.2.02-.359-.216-.439a9.5 9.5 0 0 1-3.868-3.434c-.687-1.058-.844-2.216-.824-3.474 0-.459.059-.898.118-1.437.589.32 1.158.559 1.649.858 1.1.64 2.061 1.418 2.69 2.536.49.858.608 1.837.687 2.815.039.3.039.619.117.898l.06-.24c.51-2.056 1.118-4.132 1.904-6.128.078-.2.078-.32-.099-.42-1.354-.978-2.375-2.216-3.121-3.753-.589-1.218-.589-2.456-.334-3.714.079-.46.197-.878.314-1.338l.04-.04c.863.54 1.668 1.159 2.355 1.937 1.06 1.138 1.63 2.456 1.512 4.093-.04.579-.098 1.218-.137 1.917.039-.08.059-.12.078-.2.432-.898.864-1.797 1.296-2.715.04-.12.04-.24.04-.36-.04-.818-.02-1.637.196-2.455.157-.62.392-1.258.844-1.717.53-.58 1.158-1.019 1.826-1.398.353-.24.706-.4 1.08-.579.058 0 .097.04.156.04-.02.3-.078.579-.098.878-.04 1.099-.294 2.197-.785 3.155Z" fill="#000" fill-opacity=".16"/>
<path d="M66.283 19.338c-.609 1.258-1.689 1.917-2.886 2.396-.137.08-.275.2-.334.32-.451 1.018-.883 2.076-1.315 3.074-.157.38-.275.739-.452 1.198.51-.659.962-1.218 1.414-1.757.824-.978 1.806-1.717 3.121-1.917 1.335-.22 2.67-.1 3.986.24.039.04.059.04.137.08-.334.499-.628 1.018-.942 1.477-.687.899-1.512 1.637-2.611 2.037-1.57.499-3.18.619-4.79.359-.158-.06-.295-.08-.452-.12a46.466 46.466 0 0 0-1.865 7.128c.314-.46.589-.978.864-1.438.687-1.178 1.55-2.116 2.866-2.575a9.093 9.093 0 0 1 3.082-.52c.334 0 .687.04 1.1.04-.197.48-.334.9-.491 1.298-.51 1.098-1.139 2.057-2.16 2.696-1.217.818-2.591 1.218-4.024 1.357-.452.04-.943.08-1.414.12a50.868 50.868 0 0 0-.707 7.367c.079-.08.099-.2.138-.319.157-.46.334-.938.51-1.438.55-1.437 1.473-2.535 2.867-3.194.962-.44 1.982-.699 3.023-.858.177 0 .353-.04.55-.08v.24c-.04.219-.079.498-.138.778-.334 1.437-.883 2.815-2.1 3.753-1.277 1.059-2.769 1.717-4.398 2.077-.157.02-.314.02-.51.06a40.27 40.27 0 0 0 .588 7.527c.177-.819.315-1.597.472-2.376.255-1.098.785-2.077 1.63-2.815 1.06-.899 2.296-1.478 3.592-1.957.137 0 .275-.08.49-.12-.02.719-.039 1.338-.117 1.957-.138 1.138-.452 2.176-1.178 3.035-1.237 1.437-2.729 2.535-4.516 3.154-.059 0-.117.04-.196.08.452 2.316 1.06 4.572 1.885 6.748.04-.399 0-.778.02-1.178.02-1.317.235-2.555 1.04-3.613a8.461 8.461 0 0 1 2.356-2.097c.471-.32.942-.599 1.472-.858.06.22.079.42.118.579.275 1.637.275 3.234-.55 4.712-.687 1.218-1.63 2.236-2.729 3.094-.412.32-.824.58-1.256.859.805 2.096 1.728 4.133 2.827 6.07 0-.12 0-.2-.02-.28-.058-.54-.137-1.138-.196-1.677a5.277 5.277 0 0 1 .589-2.895c.57-1.038 1.335-1.937 2.238-2.716.334-.26.668-.539 1.021-.858.49 1.178.766 2.316.805 3.474 0 .659-.04 1.318-.295 1.956a11.52 11.52 0 0 1-3.101 4.493c-.157.12-.138.2-.06.36a55.346 55.346 0 0 0 3.004 4.471s-.196.4-1.511-.459c-.314-.459-.629-.898-.923-1.397-.609-.979-1.217-1.957-1.787-2.955-.117-.26-.235-.34-.51-.26-1.728.4-3.475.4-5.183-.08-1.217-.32-2.199-1.098-3.004-2.036-.353-.42-.667-.939-1-1.358-.02-.08-.06-.12-.099-.2l.118-.08c1.374-.459 2.787-.698 4.22-.578 1.434.08 2.592.778 3.613 1.797.236.24.451.459.726.658-.02-.08-.059-.16-.098-.24a53.484 53.484 0 0 1-2.395-5.69c-.059-.199-.137-.239-.334-.239-1.708.12-3.376-.2-4.947-.898-1.217-.54-2.061-1.478-2.71-2.616-.313-.499-.549-1.078-.843-1.697.569 0 1.08-.08 1.59-.08.981-.04 1.963.04 2.925.3 1.315.399 2.238 1.218 3.023 2.296.197.24.354.479.51.718-.49-2.136-.98-4.292-1.472-6.428-.785-.2-1.63-.36-2.414-.62-1.218-.419-2.356-1.018-3.26-1.996-.785-.858-1.59-2.735-1.688-3.893h.04c1.688.02 3.317.34 4.79 1.278.903.539 1.472 1.437 1.943 2.375.118.2.216.4.354.62-.197-2.137-.275-4.253-.118-6.39-1.06-.319-2.022-.738-2.906-1.317-1.295-.859-2.414-1.877-2.886-3.434a9.274 9.274 0 0 1-.431-2.536c-.02-.08 0-.16 0-.36.746.28 1.472.48 2.16.7.941.399 1.805.898 2.532 1.677.628.678.962 1.497 1.236 2.336.118.399.217.798.374 1.177 0-.12.02-.16.02-.279.176-2.056.45-4.093.863-6.11.04-.2.02-.359-.216-.439a9.5 9.5 0 0 1-3.868-3.434c-.687-1.058-.844-2.216-.824-3.474 0-.459.059-.898.118-1.437.589.32 1.158.559 1.649.858 1.1.64 2.061 1.418 2.69 2.536.49.858.608 1.837.687 2.815.039.3.039.619.117.898l.06-.24c.51-2.056 1.118-4.132 1.904-6.128.078-.2.078-.32-.099-.42-1.354-.978-2.375-2.216-3.121-3.753-.589-1.218-.589-2.456-.334-3.714.079-.46.197-.878.314-1.338l.04-.04c.863.54 1.668 1.159 2.355 1.937 1.06 1.138 1.63 2.456 1.512 4.093-.04.579-.098 1.218-.137 1.917.039-.08.059-.12.078-.2.432-.898.864-1.797 1.296-2.715.04-.12.04-.24.04-.36-.04-.818-.02-1.637.196-2.455.157-.62.392-1.258.844-1.717.53-.58 1.158-1.019 1.826-1.398.353-.24.706-.4 1.08-.579.058 0 .097.04.156.04-.02.3-.078.579-.098.878-.04 1.099-.294 2.197-.785 3.155Z" stroke="#000" stroke-opacity=".16" stroke-width="2.15" stroke-linejoin="round" mask="url(#o)"/>
<path d="M66.283 19.338c-.609 1.258-1.689 1.917-2.886 2.396-.137.08-.275.2-.334.32-.451 1.018-.883 2.076-1.315 3.074-.157.38-.275.739-.452 1.198.51-.659.962-1.218 1.414-1.757.824-.978 1.806-1.717 3.121-1.917 1.335-.22 2.67-.1 3.986.24.039.04.059.04.137.08-.334.499-.628 1.018-.942 1.477-.687.899-1.512 1.637-2.611 2.037-1.57.499-3.18.619-4.79.359-.158-.06-.295-.08-.452-.12a46.466 46.466 0 0 0-1.865 7.128c.314-.46.589-.978.864-1.438.687-1.178 1.55-2.116 2.866-2.575a9.093 9.093 0 0 1 3.082-.52c.334 0 .687.04 1.1.04-.197.48-.334.9-.491 1.298-.51 1.098-1.139 2.057-2.16 2.696-1.217.818-2.591 1.218-4.024 1.357-.452.04-.943.08-1.414.12a50.868 50.868 0 0 0-.707 7.367c.079-.08.099-.2.138-.319.157-.46.334-.938.51-1.438.55-1.437 1.473-2.535 2.867-3.194.962-.44 1.982-.699 3.023-.858.177 0 .353-.04.55-.08v.24c-.04.219-.079.498-.138.778-.334 1.437-.883 2.815-2.1 3.753-1.277 1.059-2.769 1.717-4.398 2.077-.157.02-.314.02-.51.06a40.27 40.27 0 0 0 .588 7.527c.177-.819.315-1.597.472-2.376.255-1.098.785-2.077 1.63-2.815 1.06-.899 2.296-1.478 3.592-1.957.137 0 .275-.08.49-.12-.02.719-.039 1.338-.117 1.957-.138 1.138-.452 2.176-1.178 3.035-1.237 1.437-2.729 2.535-4.516 3.154-.059 0-.117.04-.196.08.452 2.316 1.06 4.572 1.885 6.748.04-.399 0-.778.02-1.178.02-1.317.235-2.555 1.04-3.613a8.461 8.461 0 0 1 2.356-2.097c.471-.32.942-.599 1.472-.858.06.22.079.42.118.579.275 1.637.275 3.234-.55 4.712-.687 1.218-1.63 2.236-2.729 3.094-.412.32-.824.58-1.256.859.805 2.096 1.728 4.133 2.827 6.07 0-.12 0-.2-.02-.28-.058-.54-.137-1.138-.196-1.677a5.277 5.277 0 0 1 .589-2.895c.57-1.038 1.335-1.937 2.238-2.716.334-.26.668-.539 1.021-.858.49 1.178.766 2.316.805 3.474 0 .659-.04 1.318-.295 1.956a11.52 11.52 0 0 1-3.101 4.493c-.157.12-.138.2-.06.36a55.346 55.346 0 0 0 3.004 4.471s-.196.4-1.511-.459c-.314-.459-.629-.898-.923-1.397a92.016 92.016 0 0 1-1.787-2.955c-.117-.26-.235-.34-.51-.26-1.728.4-3.475.4-5.183-.08-1.217-.32-2.199-1.098-3.004-2.036-.353-.42-.667-.939-1-1.358-.02-.08-.06-.12-.099-.2l.118-.08c1.374-.459 2.787-.698 4.22-.578 1.434.08 2.592.778 3.613 1.797.236.24.451.459.726.658-.02-.08-.059-.16-.098-.24a53.484 53.484 0 0 1-2.395-5.69c-.059-.199-.137-.239-.334-.239-1.708.12-3.376-.2-4.947-.898-1.217-.54-2.061-1.478-2.71-2.616-.313-.499-.549-1.078-.843-1.697.569 0 1.08-.08 1.59-.08.981-.04 1.963.04 2.925.3 1.315.399 2.238 1.218 3.023 2.296.197.24.354.479.51.718-.49-2.136-.98-4.292-1.472-6.428-.785-.2-1.63-.36-2.414-.62-1.218-.419-2.356-1.018-3.26-1.996-.785-.858-1.59-2.735-1.688-3.893h.04c1.688.02 3.317.34 4.79 1.278.903.539 1.472 1.437 1.943 2.375.118.2.216.4.354.62-.197-2.137-.275-4.253-.118-6.39-1.06-.319-2.022-.738-2.906-1.317-1.295-.859-2.414-1.877-2.886-3.434a9.274 9.274 0 0 1-.431-2.536c-.02-.08 0-.16 0-.36.746.28 1.472.48 2.16.7.941.399 1.805.898 2.532 1.677.628.678.962 1.497 1.236 2.336.118.399.217.798.374 1.177 0-.12.02-.16.02-.279.176-2.056.45-4.093.863-6.11.04-.2.02-.359-.216-.439a9.5 9.5 0 0 1-3.868-3.434c-.687-1.058-.844-2.216-.824-3.474 0-.459.059-.898.118-1.437.589.32 1.158.559 1.649.858 1.1.64 2.061 1.418 2.69 2.536.49.858.608 1.837.687 2.815.039.3.039.619.117.898l.06-.24c.51-2.056 1.118-4.132 1.904-6.128.078-.2.078-.32-.099-.42-1.354-.978-2.375-2.216-3.121-3.753-.589-1.218-.589-2.456-.334-3.714.079-.46.197-.878.314-1.338l.04-.04c.863.54 1.668 1.159 2.355 1.937 1.06 1.138 1.63 2.456 1.512 4.093-.04.579-.098 1.218-.137 1.917.039-.08.059-.12.078-.2.432-.898.864-1.797 1.296-2.715.04-.12.04-.24.04-.36-.04-.818-.02-1.637.196-2.455.157-.62.392-1.258.844-1.717.53-.58 1.158-1.019 1.826-1.398.353-.24.706-.4 1.08-.579.058 0 .097.04.156.04-.02.3-.078.579-.098.878-.04 1.099-.294 2.197-.785 3.155Z" fill="#000" fill-opacity=".16"/>
<path d="M66.283 19.338c-.609 1.258-1.689 1.917-2.886 2.396-.137.08-.275.2-.334.32-.451 1.018-.883 2.076-1.315 3.074-.157.38-.275.739-.452 1.198.51-.659.962-1.218 1.414-1.757.824-.978 1.806-1.717 3.121-1.917 1.335-.22 2.67-.1 3.986.24.039.04.059.04.137.08-.334.499-.628 1.018-.942 1.477-.687.899-1.512 1.637-2.611 2.037-1.57.499-3.18.619-4.79.359-.158-.06-.295-.08-.452-.12a46.466 46.466 0 0 0-1.865 7.128c.314-.46.589-.978.864-1.438.687-1.178 1.55-2.116 2.866-2.575a9.093 9.093 0 0 1 3.082-.52c.334 0 .687.04 1.1.04-.197.48-.334.9-.491 1.298-.51 1.098-1.139 2.057-2.16 2.696-1.217.818-2.591 1.218-4.024 1.357-.452.04-.943.08-1.414.12a50.868 50.868 0 0 0-.707 7.367c.079-.08.099-.2.138-.319.157-.46.334-.938.51-1.438.55-1.437 1.473-2.535 2.867-3.194.962-.44 1.982-.699 3.023-.858.177 0 .353-.04.55-.08v.24c-.04.219-.079.498-.138.778-.334 1.437-.883 2.815-2.1 3.753-1.277 1.059-2.769 1.717-4.398 2.077-.157.02-.314.02-.51.06a40.27 40.27 0 0 0 .588 7.527c.177-.819.315-1.597.472-2.376.255-1.098.785-2.077 1.63-2.815 1.06-.899 2.296-1.478 3.592-1.957.137 0 .275-.08.49-.12-.02.719-.039 1.338-.117 1.957-.138 1.138-.452 2.176-1.178 3.035-1.237 1.437-2.729 2.535-4.516 3.154-.059 0-.117.04-.196.08.452 2.316 1.06 4.572 1.885 6.748.04-.399 0-.778.02-1.178.02-1.317.235-2.555 1.04-3.613a8.461 8.461 0 0 1 2.356-2.097c.471-.32.942-.599 1.472-.858.06.22.079.42.118.579.275 1.637.275 3.234-.55 4.712-.687 1.218-1.63 2.236-2.729 3.094-.412.32-.824.58-1.256.859.805 2.096 1.728 4.133 2.827 6.07 0-.12 0-.2-.02-.28-.058-.54-.137-1.138-.196-1.677a5.277 5.277 0 0 1 .589-2.895c.57-1.038 1.335-1.937 2.238-2.716.334-.26.668-.539 1.021-.858.49 1.178.766 2.316.805 3.474 0 .659-.04 1.318-.295 1.956a11.52 11.52 0 0 1-3.101 4.493c-.157.12-.138.2-.06.36a55.346 55.346 0 0 0 3.004 4.471s-.196.4-1.511-.459c-.314-.459-.629-.898-.923-1.397a92.016 92.016 0 0 1-1.787-2.955c-.117-.26-.235-.34-.51-.26-1.728.4-3.475.4-5.183-.08-1.217-.32-2.199-1.098-3.004-2.036-.353-.42-.667-.939-1-1.358-.02-.08-.06-.12-.099-.2l.118-.08c1.374-.459 2.787-.698 4.22-.578 1.434.08 2.592.778 3.613 1.797.236.24.451.459.726.658-.02-.08-.059-.16-.098-.24a53.484 53.484 0 0 1-2.395-5.69c-.059-.199-.137-.239-.334-.239-1.708.12-3.376-.2-4.947-.898-1.217-.54-2.061-1.478-2.71-2.616-.313-.499-.549-1.078-.843-1.697.569 0 1.08-.08 1.59-.08.981-.04 1.963.04 2.925.3 1.315.399 2.238 1.218 3.023 2.296.197.24.354.479.51.718-.49-2.136-.98-4.292-1.472-6.428-.785-.2-1.63-.36-2.414-.62-1.218-.419-2.356-1.018-3.26-1.996-.785-.858-1.59-2.735-1.688-3.893h.04c1.688.02 3.317.34 4.79 1.278.903.539 1.472 1.437 1.943 2.375.118.2.216.4.354.62-.197-2.137-.275-4.253-.118-6.39-1.06-.319-2.022-.738-2.906-1.317-1.295-.859-2.414-1.877-2.886-3.434a9.274 9.274 0 0 1-.431-2.536c-.02-.08 0-.16 0-.36.746.28 1.472.48 2.16.7.941.399 1.805.898 2.532 1.677.628.678.962 1.497 1.236 2.336.118.399.217.798.374 1.177 0-.12.02-.16.02-.279.176-2.056.45-4.093.863-6.11.04-.2.02-.359-.216-.439a9.5 9.5 0 0 1-3.868-3.434c-.687-1.058-.844-2.216-.824-3.474 0-.459.059-.898.118-1.437.589.32 1.158.559 1.649.858 1.1.64 2.061 1.418 2.69 2.536.49.858.608 1.837.687 2.815.039.3.039.619.117.898l.06-.24c.51-2.056 1.118-4.132 1.904-6.128.078-.2.078-.32-.099-.42-1.354-.978-2.375-2.216-3.121-3.753-.589-1.218-.589-2.456-.334-3.714.079-.46.197-.878.314-1.338l.04-.04c.863.54 1.668 1.159 2.355 1.937 1.06 1.138 1.63 2.456 1.512 4.093-.04.579-.098 1.218-.137 1.917.039-.08.059-.12.078-.2.432-.898.864-1.797 1.296-2.715.04-.12.04-.24.04-.36-.04-.818-.02-1.637.196-2.455.157-.62.392-1.258.844-1.717.53-.58 1.158-1.019 1.826-1.398.353-.24.706-.4 1.08-.579.058 0 .097.04.156.04-.02.3-.078.579-.098.878-.04 1.099-.294 2.197-.785 3.155Z" stroke="#000" stroke-opacity=".16" stroke-width="2.15" stroke-linejoin="round" mask="url(#o)"/>
</g>
<path d="M64.993 18.478c-.608 1.258-1.688 1.917-2.886 2.396-.137.08-.274.2-.333.32-.452 1.018-.884 2.076-1.316 3.074-.157.38-.275.739-.451 1.198.51-.659.962-1.218 1.413-1.757.825-.978 1.806-1.717 3.122-1.917 1.335-.22 2.67-.1 3.985.24.04.04.059.04.138.08-.334.499-.629 1.018-.943 1.477-.687.899-1.511 1.637-2.61 2.037-1.571.499-3.181.619-4.791.359-.157-.06-.295-.08-.452-.12a46.477 46.477 0 0 0-1.865 7.128c.314-.46.59-.978.864-1.438.687-1.178 1.551-2.116 2.866-2.575a9.092 9.092 0 0 1 3.083-.52c.333 0 .687.04 1.099.04-.196.48-.334.9-.49 1.298-.511 1.099-1.14 2.057-2.16 2.696-1.218.818-2.592 1.218-4.025 1.357-.452.04-.942.08-1.413.12a50.868 50.868 0 0 0-.707 7.368c.078-.08.098-.2.137-.32.157-.46.334-.938.51-1.438.55-1.437 1.473-2.535 2.867-3.194.962-.44 1.983-.699 3.023-.858.177 0 .354-.04.55-.08v.24c-.04.219-.079.498-.137.778-.334 1.437-.884 2.815-2.101 3.753-1.276 1.059-2.768 1.718-4.398 2.077-.157.02-.314.02-.51.06a40.27 40.27 0 0 0 .589 7.527c.177-.819.314-1.598.471-2.376.255-1.098.785-2.077 1.63-2.815 1.06-.899 2.296-1.478 3.592-1.957.138 0 .275-.08.491-.12-.02.719-.04 1.338-.118 1.957-.137 1.138-.451 2.176-1.178 3.035-1.236 1.437-2.729 2.535-4.515 3.154-.059 0-.118.04-.196.08.451 2.316 1.06 4.572 1.884 6.748.04-.399 0-.778.02-1.178.02-1.317.236-2.555 1.04-3.613a8.461 8.461 0 0 1 2.356-2.097 11.9 11.9 0 0 1 1.473-.858c.059.22.078.42.118.579.274 1.637.274 3.234-.55 4.712-.687 1.218-1.63 2.236-2.73 3.094-.411.32-.824.58-1.256.859.805 2.096 1.728 4.133 2.828 6.07 0-.12 0-.2-.02-.28-.06-.54-.138-1.138-.197-1.677a5.277 5.277 0 0 1 .59-2.895c.569-1.038 1.335-1.937 2.238-2.716.333-.26.667-.539 1.02-.858.491 1.178.766 2.316.805 3.474 0 .659-.039 1.318-.294 1.956a11.52 11.52 0 0 1-3.102 4.493c-.157.12-.137.2-.059.36a55.327 55.327 0 0 0 3.004 4.471s-.197.4-1.512-.459c-.314-.459-.628-.898-.923-1.397a90.378 90.378 0 0 1-1.786-2.955c-.118-.26-.236-.34-.51-.26-1.728.4-3.476.4-5.184-.08-1.217-.32-2.198-1.098-3.003-2.036-.354-.42-.668-.939-1.001-1.358-.02-.08-.06-.12-.099-.2l.118-.08c1.375-.459 2.788-.698 4.221-.578 1.433.08 2.592.778 3.612 1.797.236.24.452.459.727.658-.02-.08-.059-.16-.098-.24a53.463 53.463 0 0 1-2.395-5.69c-.06-.199-.138-.239-.334-.239-1.708.12-3.377-.2-4.947-.898-1.218-.54-2.062-1.478-2.71-2.616-.314-.499-.55-1.078-.844-1.697.57 0 1.08-.08 1.59-.08.982-.04 1.964.04 2.925.3 1.316.399 2.238 1.218 3.024 2.296.196.24.353.479.51.718-.49-2.136-.981-4.292-1.472-6.428-.785-.2-1.63-.36-2.415-.62-1.217-.419-2.356-1.018-3.259-1.996-.785-.858-1.59-2.735-1.688-3.893h.039c1.688.02 3.318.34 4.79 1.278.903.539 1.473 1.437 1.944 2.376.118.2.216.399.353.618-.196-2.136-.275-4.252-.117-6.388-1.06-.32-2.023-.74-2.906-1.318-1.296-.859-2.415-1.877-2.886-3.434a9.27 9.27 0 0 1-.432-2.536c-.02-.08 0-.16 0-.36.746.28 1.472.48 2.16.7.942.399 1.806.898 2.532 1.677.628.678.962 1.497 1.237 2.336.118.399.216.798.373 1.177 0-.12.02-.16.02-.279.176-2.056.451-4.093.863-6.11.04-.2.02-.359-.215-.439a9.502 9.502 0 0 1-3.868-3.434c-.687-1.058-.844-2.216-.825-3.474 0-.459.06-.898.118-1.437.59.32 1.159.559 1.65.858 1.099.64 2.06 1.418 2.689 2.536.49.858.608 1.837.687 2.815.04.3.04.619.118.898l.059-.24c.51-2.056 1.119-4.132 1.904-6.128.079-.2.079-.32-.098-.42-1.355-.978-2.376-2.216-3.122-3.753-.589-1.218-.589-2.456-.333-3.714.078-.46.196-.878.314-1.338l.039-.04c.864.54 1.669 1.159 2.356 1.937 1.06 1.138 1.63 2.456 1.512 4.093-.04.58-.099 1.218-.138 1.917.04-.08.059-.12.079-.2.432-.898.864-1.797 1.295-2.715.04-.12.04-.24.04-.36-.04-.818-.02-1.637.196-2.455.157-.62.393-1.258.844-1.717.53-.58 1.158-1.019 1.826-1.398.353-.24.707-.4 1.08-.579.059 0 .098.04.157.04-.02.3-.079.579-.098.878-.04 1.099-.295 2.197-.786 3.155Z" fill="#FFD57C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M64.647 50.047c-1.26 3.726-2.24 5.921-4.306 8.904l-.622-1.43a2.854 2.854 0 0 1-.007.07c-.07-.187-.139-.373-.206-.56l-.071-.164-.045-.164a41.59 41.59 0 0 1-1.431-5.213l-.03-.105-.015-.112c-.03-.143-.058-.287-.086-.431l.022-.012-.16-1.127-.039.18a40.27 40.27 0 0 1-.589-7.526c.046-.01.09-.017.132-.023l.063-1.312-.022.075c-.027.092-.053.179-.114.241.059-2.495.294-4.951.707-7.367l.045-.004.277-1.196a8.15 8.15 0 0 1-.146.222 46.474 46.474 0 0 1 1.866-7.128l.139.033c.103.023.203.045.312.087 1.61.26 3.22.14 4.79-.36 1.1-.399 1.924-1.137 2.611-2.036.165-.24.324-.497.486-.759l.046-.074c-2.923 1.732-5.053 2.57-8.135 3.108l.42-1.075c-.172.215-.348.44-.532.677.073-.19.136-.362.196-.527.085-.233.163-.448.255-.671.177-.409.354-.827.532-1.25.257-.608.517-1.223.784-1.825a.726.726 0 0 1 .203-.23h-.265a257.17 257.17 0 0 1-.802 1.685 63.337 63.337 0 0 0-1.866 4.691 56.278 56.278 0 0 0-1.118 3.937l-.059.24-.005-.019c-.785 3.807-1.117 7.949-1.337 10.7l-.044.557c-.046 1.659.036 3.31.188 4.973l-.09-.149c.089.786.204 1.612.341 2.453l.721 3.147.736 3.214a70.416 70.416 0 0 0-.073-.11c.216.752.44 1.46.671 2.1.095.025.146.086.188.227.344.968.717 1.932 1.117 2.883.45 1.022.864 1.935 1.253 2.756l.025.05.058.125c.365.765.71 1.447 1.044 2.06.042.047.078.11.115.192.245.429.497.855.753 1.278.324.501.64 1.022.933 1.515l.1.161c.24.408.494.775.75 1.146l.173.252c1.316.859 1.512.46 1.512.46a55.325 55.325 0 0 1-3.004-4.473c-.07-.143-.093-.222.015-.323l-1.016-1.815v.002c.02.08.02.16.02.28-1.1-1.937-2.023-3.974-2.827-6.07l.14-.09c.381-.247.749-.484 1.116-.769 1.1-.858 2.042-1.877 2.729-3.094.825-1.478.825-3.075.55-4.712a3.384 3.384 0 0 1-.044-.225 8.635 8.635 0 0 0-.028-.151Zm2.019 6.741c-.755 4.362-1.306 6.716-2.54 9.8a11.522 11.522 0 0 0 3.027-4.426c.255-.638.294-1.297.294-1.956-.038-1.14-.305-2.26-.781-3.418Zm-4.635 9.679c-3.288-.513-5.542-1.555-8.849-3.39.114.152.226.312.34.473.18.258.362.518.556.749.805.938 1.786 1.717 3.004 2.036 1.63.458 3.297.478 4.949.132Zm-3.407-8.086c-2.815-1.035-4.77-2.366-8.195-5.008l.12.26c.202.44.391.853.623 1.222.648 1.138 1.492 2.077 2.71 2.616 1.507.67 3.105.992 4.742.91Zm-2.106-8.512c-2.84-1.502-4.332-3.052-6.77-6.411a13.11 13.11 0 0 0-.166-.003h-.039c.098 1.158.903 3.035 1.688 3.893.903.978 2.042 1.577 3.26 1.997.533.176 1.093.306 1.644.434l.383.09Zm-.312-8.64c-2.329-1.938-3.622-3.769-5.678-7.464a16.117 16.117 0 0 1-.189-.07l-.01.027-.006.158c-.004.075-.007.123.005.171.02.858.177 1.717.432 2.536.471 1.557 1.59 2.575 2.886 3.434.787.515 1.635.904 2.56 1.209Zm1.045-8.499c-1.973-2.34-3.042-4.092-4.542-8.194l-.013.116c-.048.432-.09.805-.09 1.193-.02 1.258.137 2.416.824 3.474a9.499 9.499 0 0 0 3.821 3.411Zm2.6-7.899.012.001c-1.854-3.366-2.53-5.368-3.279-8.884l-.054.21c-.096.37-.188.722-.253 1.102-.255 1.258-.255 2.496.334 3.714.746 1.537 1.767 2.775 3.121 3.753a.318.318 0 0 1 .119.104ZM65.839 14.8c-.983 2.306-1.84 3.829-3.644 6.038 1.163-.476 2.205-1.133 2.798-2.36.491-.958.747-2.056.786-3.155.01-.15.03-.294.049-.439l.011-.084Zm-.102 14.161c-2.762 2.514-4.66 3.892-7.419 4.969.314-.026.627-.052.923-.079 1.433-.14 2.808-.539 4.025-1.357 1.02-.64 1.649-1.598 2.16-2.696.066-.168.128-.34.193-.517l.118-.32Zm-1.53 6.738c-2.631 3.117-4.301 4.833-6.995 6.633.067-.009.131-.014.193-.019l.167-.016c1.63-.36 3.122-1.018 4.398-2.077 1.217-.938 1.767-2.316 2.1-3.753.04-.186.07-.373.098-.541l.038-.227Zm-.38 7.236c-2.143 3.5-3.571 5.613-5.66 7.776 1.724-.627 3.169-1.705 4.372-3.103.727-.859 1.041-1.897 1.178-3.035.067-.526.091-1.051.11-1.638Z" fill="#E1910E"/>
<path d="M64.993 18.478c-.608 1.258-1.688 1.917-2.886 2.396-.137.08-.274.2-.333.32-.452 1.018-.884 2.076-1.316 3.074-.157.38-.275.739-.451 1.198.51-.659.962-1.218 1.413-1.757.825-.978 1.806-1.717 3.122-1.917 1.335-.22 2.67-.1 3.985.24.04.04.059.04.138.08-.334.499-.629 1.018-.943 1.477-.687.899-1.511 1.637-2.61 2.037a10.27 10.27 0 0 1-4.791.359c-.157-.06-.295-.08-.452-.12a46.477 46.477 0 0 0-1.865 7.128c.314-.46.59-.978.864-1.438.687-1.178 1.551-2.116 2.866-2.575a9.092 9.092 0 0 1 3.083-.52c.333 0 .687.04 1.099.04-.196.48-.334.9-.49 1.298-.511 1.099-1.14 2.057-2.16 2.696-1.218.818-2.592 1.218-4.025 1.357-.452.04-.942.08-1.413.12a50.868 50.868 0 0 0-.707 7.368c.078-.08.098-.2.137-.32.157-.46.334-.938.51-1.438.55-1.437 1.473-2.535 2.867-3.194.962-.44 1.983-.699 3.023-.858.177 0 .354-.04.55-.08v.24c-.04.219-.079.498-.137.778-.334 1.437-.884 2.815-2.101 3.753-1.276 1.059-2.768 1.718-4.398 2.077-.157.02-.314.02-.51.06a40.27 40.27 0 0 0 .589 7.527c.177-.819.314-1.598.471-2.376.255-1.098.785-2.077 1.63-2.815 1.06-.899 2.296-1.478 3.592-1.957.138 0 .275-.08.491-.12-.02.719-.04 1.338-.118 1.957-.137 1.138-.451 2.176-1.178 3.035-1.236 1.437-2.729 2.535-4.515 3.154-.059 0-.118.04-.196.08.451 2.316 1.06 4.572 1.884 6.748.04-.399 0-.778.02-1.178.02-1.317.236-2.555 1.04-3.613a8.461 8.461 0 0 1 2.356-2.097 11.9 11.9 0 0 1 1.473-.858c.059.22.078.42.118.579.274 1.637.274 3.234-.55 4.712-.687 1.218-1.63 2.236-2.73 3.094-.411.32-.824.58-1.256.859.805 2.096 1.728 4.133 2.828 6.07 0-.12 0-.2-.02-.28-.06-.54-.138-1.138-.197-1.677a5.277 5.277 0 0 1 .59-2.895c.569-1.038 1.335-1.937 2.238-2.716.333-.26.667-.539 1.02-.858.491 1.178.766 2.316.805 3.474 0 .659-.039 1.318-.294 1.956a11.52 11.52 0 0 1-3.102 4.493c-.157.12-.137.2-.059.36a55.327 55.327 0 0 0 3.004 4.471s-.197.4-1.512-.459c-.314-.459-.628-.898-.923-1.397a90.378 90.378 0 0 1-1.786-2.955c-.118-.26-.236-.34-.51-.26-1.728.4-3.476.4-5.184-.08-1.217-.32-2.198-1.098-3.003-2.036-.354-.42-.668-.939-1.001-1.358-.02-.08-.06-.12-.099-.2l.118-.08c1.375-.459 2.788-.698 4.221-.578 1.433.08 2.592.778 3.612 1.797.236.24.452.459.727.658-.02-.08-.059-.16-.098-.24a53.463 53.463 0 0 1-2.395-5.69c-.06-.199-.138-.239-.334-.239-1.708.12-3.377-.2-4.947-.898-1.218-.54-2.062-1.478-2.71-2.616-.314-.499-.55-1.078-.844-1.697.57 0 1.08-.08 1.59-.08.982-.04 1.964.04 2.925.3 1.316.399 2.238 1.218 3.024 2.296.196.24.353.479.51.718-.49-2.136-.981-4.292-1.472-6.428-.785-.2-1.63-.36-2.415-.62-1.217-.419-2.356-1.018-3.259-1.996-.785-.858-1.59-2.735-1.688-3.893h.039c1.688.02 3.318.34 4.79 1.278.903.539 1.473 1.437 1.944 2.376.118.2.216.399.353.618-.196-2.136-.275-4.252-.117-6.388-1.06-.32-2.023-.74-2.906-1.318-1.296-.859-2.415-1.877-2.886-3.434a9.27 9.27 0 0 1-.432-2.536c-.02-.08 0-.16 0-.36.746.28 1.472.48 2.16.7.942.399 1.806.898 2.532 1.677.628.678.962 1.497 1.237 2.336.118.399.216.798.373 1.177 0-.12.02-.16.02-.279a53.12 53.12 0 0 1 .863-6.11c.04-.2.02-.359-.215-.439a9.502 9.502 0 0 1-3.868-3.434c-.687-1.058-.844-2.216-.825-3.474 0-.459.06-.898.118-1.437.59.32 1.159.559 1.65.858 1.099.64 2.06 1.418 2.689 2.536.49.858.608 1.837.687 2.815.04.3.04.619.118.898l.059-.24c.51-2.056 1.119-4.132 1.904-6.128.079-.2.079-.32-.098-.42-1.355-.978-2.376-2.216-3.122-3.753-.589-1.218-.589-2.456-.333-3.714.078-.46.196-.878.314-1.338l.039-.04c.864.54 1.669 1.159 2.356 1.937 1.06 1.138 1.63 2.456 1.512 4.093-.04.58-.099 1.218-.138 1.917.04-.08.059-.12.079-.2.432-.898.864-1.797 1.295-2.715.04-.12.04-.24.04-.36-.04-.818-.02-1.637.196-2.455.157-.62.393-1.258.844-1.717.53-.58 1.158-1.019 1.826-1.398.353-.24.707-.4 1.08-.579.059 0 .098.04.157.04-.02.3-.079.579-.098.878-.04 1.099-.295 2.197-.786 3.155Z" fill="#FFD57C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M64.647 50.047c-1.26 3.726-2.24 5.921-4.306 8.904l-.622-1.43a2.854 2.854 0 0 1-.007.07c-.07-.187-.139-.373-.206-.56l-.071-.164-.045-.164a41.59 41.59 0 0 1-1.431-5.213l-.03-.105-.015-.112a29.85 29.85 0 0 1-.086-.431l.022-.012-.16-1.127-.039.18a40.27 40.27 0 0 1-.589-7.526c.046-.01.09-.017.132-.023l.063-1.312-.022.075a.551.551 0 0 1-.114.241c.059-2.495.294-4.951.707-7.367l.045-.004.277-1.196a8.15 8.15 0 0 1-.146.222 46.474 46.474 0 0 1 1.866-7.128l.139.033c.103.023.203.045.312.087 1.61.26 3.22.14 4.79-.36 1.1-.399 1.924-1.137 2.611-2.036.165-.24.324-.497.486-.759l.046-.074c-2.923 1.732-5.053 2.57-8.135 3.108l.42-1.075c-.172.215-.348.44-.532.677.073-.19.136-.362.196-.527.085-.233.163-.448.255-.671.177-.409.354-.827.532-1.25a113.8 113.8 0 0 1 .784-1.825.726.726 0 0 1 .203-.23h-.265a257.17 257.17 0 0 1-.802 1.685 63.337 63.337 0 0 0-1.866 4.691 56.278 56.278 0 0 0-1.118 3.937l-.059.24-.005-.019c-.785 3.807-1.117 7.949-1.337 10.7l-.044.557c-.046 1.659.036 3.31.188 4.973l-.09-.149c.089.786.204 1.612.341 2.453l.721 3.147.736 3.214a70.416 70.416 0 0 0-.073-.11c.216.752.44 1.46.671 2.1.095.025.146.086.188.227.344.968.717 1.932 1.117 2.883.45 1.022.864 1.935 1.253 2.756l.025.05.058.125c.365.765.71 1.447 1.044 2.06.042.047.078.11.115.192.245.429.497.855.753 1.278.324.501.64 1.022.933 1.515l.1.161c.24.408.494.775.75 1.146l.173.252c1.316.859 1.512.46 1.512.46a55.325 55.325 0 0 1-3.004-4.473c-.07-.143-.093-.222.015-.323l-1.016-1.815v.002c.02.08.02.16.02.28-1.1-1.937-2.023-3.974-2.827-6.07l.14-.09c.381-.247.749-.484 1.116-.769 1.1-.858 2.042-1.877 2.729-3.094.825-1.478.825-3.075.55-4.712a3.384 3.384 0 0 1-.044-.225 8.635 8.635 0 0 0-.028-.151Zm2.019 6.741c-.755 4.362-1.306 6.716-2.54 9.8a11.522 11.522 0 0 0 3.027-4.426c.255-.638.294-1.297.294-1.956-.038-1.14-.305-2.26-.781-3.418Zm-4.635 9.679c-3.288-.513-5.542-1.555-8.849-3.39.114.152.226.312.34.473.18.258.362.518.556.749.805.938 1.786 1.717 3.004 2.036 1.63.458 3.297.478 4.949.132Zm-3.407-8.086c-2.815-1.035-4.77-2.366-8.195-5.008l.12.26c.202.44.391.853.623 1.222.648 1.138 1.492 2.077 2.71 2.616 1.507.67 3.105.992 4.742.91Zm-2.106-8.512c-2.84-1.502-4.332-3.052-6.77-6.411a13.11 13.11 0 0 0-.166-.003h-.039c.098 1.158.903 3.035 1.688 3.893.903.978 2.042 1.577 3.26 1.997.533.176 1.093.306 1.644.434l.383.09Zm-.312-8.64c-2.329-1.938-3.622-3.769-5.678-7.464a16.117 16.117 0 0 1-.189-.07l-.01.027-.006.158c-.004.075-.007.123.005.171.02.858.177 1.717.432 2.536.471 1.557 1.59 2.575 2.886 3.434.787.515 1.635.904 2.56 1.209Zm1.045-8.499c-1.973-2.34-3.042-4.092-4.542-8.194l-.013.116c-.048.432-.09.805-.09 1.193-.02 1.258.137 2.416.824 3.474a9.499 9.499 0 0 0 3.821 3.411Zm2.6-7.899.012.001c-1.854-3.366-2.53-5.368-3.279-8.884l-.054.21c-.096.37-.188.722-.253 1.102-.255 1.258-.255 2.496.334 3.714.746 1.537 1.767 2.775 3.121 3.753a.318.318 0 0 1 .119.104ZM65.839 14.8c-.983 2.306-1.84 3.829-3.644 6.038 1.163-.476 2.205-1.133 2.798-2.36.491-.958.747-2.056.786-3.155.01-.15.03-.294.049-.439l.011-.084Zm-.102 14.161c-2.762 2.514-4.66 3.892-7.419 4.969.314-.026.627-.052.923-.079 1.433-.14 2.808-.539 4.025-1.357 1.02-.64 1.649-1.598 2.16-2.696.066-.168.128-.34.193-.517l.118-.32Zm-1.53 6.738c-2.631 3.117-4.301 4.833-6.995 6.633.067-.009.131-.014.193-.019l.167-.016c1.63-.36 3.122-1.018 4.398-2.077 1.217-.938 1.767-2.316 2.1-3.753.04-.186.07-.373.098-.541l.038-.227Zm-.38 7.236c-2.143 3.5-3.571 5.613-5.66 7.776 1.724-.627 3.169-1.705 4.372-3.103.727-.859 1.041-1.897 1.178-3.035.067-.526.091-1.051.11-1.638Z" fill="#E1910E"/>
<mask id="p" maskUnits="userSpaceOnUse" x="47.665" y="12.405" width="23" height="61" fill="#000">
<path fill="#fff" d="M47.665 12.405h23v61h-23z"/>
<path d="M64.994 18.478c-.609 1.258-1.689 1.917-2.886 2.396-.137.08-.275.2-.334.32-.451 1.018-.883 2.076-1.315 3.074-.157.38-.275.739-.452 1.198.51-.659.962-1.218 1.414-1.757.824-.978 1.806-1.717 3.121-1.917 1.335-.22 2.67-.1 3.986.24.039.04.058.04.137.08-.334.499-.628 1.018-.942 1.477-.687.899-1.512 1.637-2.611 2.037-1.571.499-3.18.619-4.79.359-.158-.06-.295-.08-.452-.12a46.489 46.489 0 0 0-1.865 7.128c.314-.46.589-.978.864-1.438.687-1.178 1.55-2.116 2.866-2.575a9.092 9.092 0 0 1 3.082-.52c.334 0 .687.04 1.1.04-.197.48-.334.9-.491 1.298-.51 1.099-1.139 2.057-2.16 2.696-1.217.818-2.591 1.218-4.024 1.357-.452.04-.943.08-1.414.12a50.868 50.868 0 0 0-.707 7.368c.079-.08.098-.2.138-.32.157-.46.334-.938.51-1.438.55-1.437 1.473-2.535 2.867-3.194.961-.44 1.982-.699 3.023-.858.177 0 .353-.04.55-.08v.24c-.04.219-.079.498-.138.778-.334 1.437-.883 2.815-2.1 3.753-1.277 1.059-2.769 1.718-4.398 2.077-.157.02-.314.02-.51.06a40.27 40.27 0 0 0 .588 7.527c.177-.819.314-1.598.471-2.376.256-1.098.786-2.077 1.63-2.815 1.06-.899 2.297-1.478 3.593-1.957.137 0 .275-.08.49-.12-.02.719-.039 1.338-.117 1.957-.138 1.138-.452 2.176-1.178 3.035-1.237 1.437-2.73 2.535-4.516 3.154-.059 0-.117.04-.196.08.452 2.316 1.06 4.572 1.885 6.748.039-.399 0-.778.02-1.178.019-1.317.235-2.555 1.04-3.613a8.461 8.461 0 0 1 2.356-2.097 11.9 11.9 0 0 1 1.472-.858c.06.22.079.42.118.579.275 1.637.275 3.234-.55 4.712-.687 1.218-1.63 2.236-2.729 3.094-.412.32-.824.58-1.256.859.805 2.096 1.728 4.133 2.827 6.07 0-.12 0-.2-.02-.28-.059-.54-.137-1.138-.196-1.677a5.277 5.277 0 0 1 .589-2.895c.57-1.038 1.335-1.937 2.238-2.716.334-.26.668-.539 1.02-.858.492 1.178.767 2.316.806 3.474 0 .659-.04 1.318-.295 1.956a11.52 11.52 0 0 1-3.102 4.493c-.157.12-.137.2-.058.36a55.327 55.327 0 0 0 3.003 4.471s-.196.4-1.511-.459c-.314-.459-.629-.898-.923-1.397a90.378 90.378 0 0 1-1.787-2.955c-.117-.26-.235-.34-.51-.26-1.728.4-3.475.4-5.183-.08-1.217-.32-2.199-1.098-3.004-2.036-.353-.42-.667-.939-1-1.358-.02-.08-.06-.12-.1-.2l.119-.08c1.374-.459 2.788-.698 4.22-.578 1.434.08 2.592.778 3.613 1.797.236.24.452.459.726.658-.02-.08-.059-.16-.098-.24a53.484 53.484 0 0 1-2.395-5.69c-.059-.199-.137-.239-.334-.239-1.708.12-3.376-.2-4.947-.898-1.217-.54-2.061-1.478-2.71-2.616-.313-.499-.549-1.078-.843-1.697.569 0 1.08-.08 1.59-.08.981-.04 1.963.04 2.925.3 1.315.399 2.238 1.218 3.023 2.296.197.24.354.479.51.718-.49-2.136-.98-4.292-1.472-6.428-.785-.2-1.63-.36-2.414-.62-1.218-.419-2.356-1.018-3.26-1.996-.785-.858-1.59-2.735-1.688-3.893h.04c1.688.02 3.317.34 4.79 1.278.903.539 1.472 1.437 1.943 2.376.118.2.216.399.354.618-.197-2.136-.275-4.252-.118-6.388-1.06-.32-2.022-.74-2.906-1.318-1.295-.859-2.414-1.877-2.886-3.434a9.27 9.27 0 0 1-.431-2.536c-.02-.08 0-.16 0-.36.746.28 1.472.48 2.16.7.941.399 1.805.898 2.532 1.677.628.678.962 1.497 1.236 2.336.118.399.216.798.373 1.177 0-.12.02-.16.02-.279.177-2.056.452-4.093.864-6.11.04-.2.02-.359-.216-.439a9.503 9.503 0 0 1-3.868-3.434c-.687-1.058-.844-2.216-.824-3.474 0-.459.059-.898.118-1.437.589.32 1.158.559 1.649.858 1.1.64 2.061 1.418 2.69 2.536.49.858.608 1.837.686 2.815.04.3.04.619.118.898l.06-.24c.51-2.056 1.118-4.132 1.904-6.128.078-.2.078-.32-.099-.42-1.354-.978-2.375-2.216-3.121-3.753-.59-1.218-.59-2.456-.334-3.714.079-.46.196-.878.314-1.338l.04-.04c.863.54 1.668 1.159 2.355 1.937 1.06 1.138 1.63 2.456 1.512 4.093-.04.58-.098 1.218-.137 1.917.039-.08.059-.12.078-.2.432-.898.864-1.797 1.296-2.715.04-.12.04-.24.04-.36-.04-.818-.02-1.637.196-2.455.157-.62.392-1.258.844-1.717.53-.58 1.158-1.019 1.825-1.398.354-.24.707-.4 1.08-.579.06 0 .098.04.157.04-.02.3-.078.579-.098.878-.04 1.099-.294 2.197-.785 3.155Z"/>
@@ -94,7 +94,7 @@
<path d="M111.48 19.338c.609 1.258 1.689 1.917 2.886 2.396.138.08.275.2.334.32.452 1.018.883 2.076 1.315 3.074.157.38.275.739.452 1.198a58.068 58.068 0 0 0-1.414-1.757c-.824-.978-1.806-1.717-3.121-1.917-1.335-.22-2.67-.1-3.985.24-.04.04-.059.04-.138.08.334.499.628 1.018.942 1.477.688.899 1.512 1.637 2.612 2.037 1.57.499 3.18.619 4.79.359.157-.06.294-.08.451-.12a46.43 46.43 0 0 1 1.865 7.128c-.314-.46-.589-.978-.863-1.438-.688-1.178-1.551-2.116-2.867-2.575a9.088 9.088 0 0 0-3.082-.52c-.334 0-.687.04-1.099.04.196.48.333.9.49 1.298.511 1.098 1.139 2.057 2.16 2.696 1.217.818 2.591 1.218 4.025 1.357.451.04.942.08 1.413.12.412 2.416.648 4.872.707 7.367-.079-.08-.098-.2-.138-.319-.157-.46-.333-.938-.51-1.438-.55-1.437-1.472-2.535-2.866-3.194-.962-.44-1.983-.699-3.024-.858-.176 0-.353-.04-.549-.08v.24c.039.219.078.498.137.778.334 1.437.883 2.815 2.101 3.753 1.276 1.059 2.768 1.717 4.397 2.077.157.02.314.02.511.06a40.287 40.287 0 0 1-.589 7.527c-.177-.819-.314-1.597-.471-2.376-.256-1.098-.786-2.077-1.63-2.815-1.06-.899-2.297-1.478-3.593-1.957-.137 0-.274-.08-.49-.12.019.719.039 1.338.117 1.957.138 1.138.452 2.176 1.178 3.035 1.237 1.437 2.729 2.535 4.516 3.154.059 0 .118.04.196.08-.451 2.316-1.06 4.572-1.885 6.748-.039-.399 0-.778-.019-1.178-.02-1.317-.236-2.555-1.041-3.613a8.456 8.456 0 0 0-2.356-2.097c-.471-.32-.942-.599-1.472-.858-.059.22-.079.42-.118.579-.275 1.637-.275 3.234.55 4.712.687 1.218 1.629 2.236 2.729 3.094.412.32.824.58 1.256.859-.805 2.096-1.727 4.133-2.827 6.07 0-.12 0-.2.02-.28.059-.54.137-1.138.196-1.677a5.274 5.274 0 0 0-.589-2.895c-.569-1.038-1.335-1.937-2.238-2.716a18.02 18.02 0 0 1-1.021-.858c-.491 1.178-.765 2.316-.805 3.474 0 .659.04 1.318.295 1.956a11.509 11.509 0 0 0 3.102 4.493c.157.12.137.2.059.36a55.375 55.375 0 0 1-3.004 4.471s.196.4 1.512-.459c.314-.459.628-.898.922-1.397a90.923 90.923 0 0 0 1.787-2.955c.118-.26.235-.34.51-.26 1.728.4 3.475.4 5.183-.08 1.217-.32 2.199-1.098 3.004-2.036.353-.42.667-.939 1.001-1.358.02-.08.059-.12.098-.2l-.118-.08c-1.374-.459-2.787-.698-4.22-.578-1.434.08-2.592.778-3.613 1.797-.235.24-.451.459-.726.658.019-.08.059-.16.098-.24a53.462 53.462 0 0 0 2.395-5.69c.059-.199.137-.239.334-.239 1.708.12 3.377-.2 4.947-.898 1.217-.54 2.062-1.478 2.709-2.616.315-.499.55-1.078.845-1.697-.57 0-1.08-.08-1.591-.08-.981-.04-1.963.04-2.925.3-1.315.399-2.238 1.218-3.023 2.296-.197.24-.354.479-.511.718.491-2.136.982-4.292 1.473-6.428.785-.2 1.629-.36 2.415-.62 1.217-.419 2.355-1.018 3.258-1.996.786-.858 1.591-2.735 1.689-3.893h-.039c-1.689.02-3.318.34-4.791 1.278-.903.539-1.472 1.437-1.943 2.375-.118.2-.216.4-.354.62.197-2.137.275-4.253.118-6.39 1.06-.319 2.022-.738 2.906-1.317 1.295-.859 2.414-1.877 2.886-3.434a9.297 9.297 0 0 0 .432-2.536c.019-.08 0-.16 0-.36-.746.28-1.473.48-2.16.7-.942.399-1.806.898-2.533 1.677-.628.678-.962 1.497-1.236 2.336-.118.399-.216.798-.373 1.177 0-.12-.02-.16-.02-.279a53.307 53.307 0 0 0-.864-6.11c-.039-.2-.019-.359.216-.439a9.506 9.506 0 0 0 3.868-3.434c.687-1.058.844-2.216.824-3.474 0-.459-.059-.898-.118-1.437-.589.32-1.158.559-1.649.858-1.099.64-2.061 1.418-2.689 2.536-.491.858-.609 1.837-.687 2.815-.04.3-.04.619-.118.898l-.059-.24c-.511-2.056-1.119-4.132-1.904-6.128-.079-.2-.079-.32.098-.42 1.354-.978 2.375-2.216 3.121-3.753.589-1.218.589-2.456.334-3.714-.079-.46-.196-.878-.314-1.338l-.039-.04c-.864.54-1.669 1.159-2.356 1.937-1.06 1.138-1.63 2.456-1.512 4.093.039.579.098 1.218.138 1.917a.829.829 0 0 1-.079-.2c-.432-.898-.864-1.797-1.296-2.715-.039-.12-.039-.24-.039-.36.039-.818.02-1.637-.196-2.455-.157-.62-.393-1.258-.845-1.717-.53-.58-1.158-1.019-1.825-1.398-.354-.24-.707-.4-1.08-.579-.059 0-.098.04-.157.04.019.3.078.579.098.878.039 1.099.295 2.197.785 3.155Z" stroke="#000" stroke-opacity=".16" stroke-width="2.15" stroke-linejoin="round" mask="url(#q)"/>
</g>
<path d="M112.771 18.478c.608 1.258 1.688 1.917 2.886 2.396.137.08.275.2.334.32.451 1.018.883 2.076 1.315 3.074.157.38.275.739.451 1.198a58.114 58.114 0 0 0-1.413-1.757c-.825-.978-1.806-1.717-3.122-1.917-1.335-.22-2.67-.1-3.985.24-.039.04-.059.04-.137.08.333.499.628 1.018.942 1.477.687.899 1.512 1.637 2.611 2.037 1.571.499 3.18.619 4.79.359.157-.06.295-.08.452-.12a46.546 46.546 0 0 1 1.865 7.128c-.314-.46-.589-.978-.864-1.438-.687-1.178-1.551-2.116-2.866-2.575a9.092 9.092 0 0 0-3.082-.52c-.334 0-.688.04-1.1.04.196.48.334.9.491 1.298.51 1.099 1.139 2.057 2.159 2.696 1.218.818 2.592 1.218 4.025 1.357.452.04.942.08 1.414.12.412 2.416.647 4.872.706 7.368-.078-.08-.098-.2-.137-.32-.157-.46-.334-.938-.511-1.438-.549-1.437-1.472-2.535-2.866-3.194-.962-.44-1.983-.699-3.023-.858-.177 0-.354-.04-.55-.08v.24c.039.219.079.498.138.778.333 1.437.883 2.815 2.1 3.753 1.276 1.059 2.768 1.718 4.398 2.077.157.02.314.02.51.06a40.203 40.203 0 0 1-.589 7.527c-.176-.819-.314-1.598-.471-2.376-.255-1.098-.785-2.077-1.629-2.815-1.061-.899-2.297-1.478-3.593-1.957-.137 0-.275-.08-.491-.12.02.719.039 1.338.118 1.957.137 1.138.451 2.176 1.178 3.035 1.237 1.437 2.729 2.535 4.515 3.154.059 0 .118.04.197.08-.452 2.316-1.061 4.572-1.885 6.748-.039-.399 0-.778-.02-1.178-.019-1.317-.235-2.555-1.04-3.613a8.47 8.47 0 0 0-2.356-2.097c-.471-.32-.942-.599-1.473-.858-.058.22-.078.42-.117.579-.275 1.637-.275 3.234.549 4.712.688 1.218 1.63 2.236 2.729 3.094.413.32.825.58 1.257.859-.805 2.096-1.728 4.133-2.827 6.07 0-.12 0-.2.019-.28.059-.54.138-1.138.197-1.677a5.283 5.283 0 0 0-.589-2.895c-.57-1.038-1.335-1.937-2.238-2.716-.334-.26-.668-.539-1.021-.858-.491 1.178-.766 2.316-.805 3.474 0 .659.039 1.318.294 1.956a11.53 11.53 0 0 0 3.102 4.493c.157.12.138.2.059.36a55.357 55.357 0 0 1-3.004 4.471s.197.4 1.512-.459c.314-.459.628-.898.923-1.397.608-.979 1.217-1.957 1.786-2.955.118-.26.236-.34.511-.26 1.727.4 3.475.4 5.183-.08 1.217-.32 2.198-1.098 3.003-2.036.354-.42.668-.939 1.002-1.358.019-.08.058-.12.098-.2l-.118-.08c-1.374-.459-2.788-.698-4.221-.578-1.433.08-2.591.778-3.612 1.797-.236.24-.452.459-.727.658.02-.08.059-.16.098-.24a53.469 53.469 0 0 0 2.396-5.69c.059-.199.137-.239.333-.239 1.708.12 3.377-.2 4.948-.898 1.217-.54 2.061-1.478 2.709-2.616.314-.499.55-1.078.844-1.697-.569 0-1.08-.08-1.59-.08-.982-.04-1.963.04-2.925.3-1.316.399-2.238 1.218-3.024 2.296-.196.24-.353.479-.51.718.491-2.136.981-4.292 1.472-6.428.786-.2 1.63-.36 2.415-.62 1.217-.419 2.356-1.018 3.259-1.996.785-.858 1.59-2.735 1.688-3.893h-.039c-1.688.02-3.318.34-4.79 1.278-.903.539-1.473 1.437-1.944 2.376-.118.2-.216.399-.353.618.196-2.136.275-4.252.118-6.388 1.06-.32 2.022-.74 2.905-1.318 1.296-.859 2.415-1.877 2.886-3.434a9.297 9.297 0 0 0 .432-2.536c.02-.08 0-.16 0-.36-.746.28-1.472.48-2.159.7-.943.399-1.807.898-2.533 1.677-.628.678-.962 1.497-1.237 2.336-.118.399-.216.798-.373 1.177 0-.12-.019-.16-.019-.279a53.305 53.305 0 0 0-.864-6.11c-.04-.2-.02-.359.216-.439a9.498 9.498 0 0 0 3.867-3.434c.687-1.058.844-2.216.825-3.474 0-.459-.059-.898-.118-1.437-.589.32-1.158.559-1.649.858-1.1.64-2.062 1.418-2.69 2.536-.491.858-.608 1.837-.687 2.815-.039.3-.039.619-.118.898a20.4 20.4 0 0 0-.059-.24c-.51-2.056-1.119-4.132-1.904-6.128-.078-.2-.078-.32.098-.42 1.355-.978 2.376-2.216 3.122-3.753.589-1.218.589-2.456.334-3.714-.079-.46-.197-.878-.315-1.338l-.039-.04c-.864.54-1.669 1.159-2.356 1.937-1.06 1.138-1.629 2.456-1.511 4.093.039.58.098 1.218.137 1.917-.039-.08-.059-.12-.078-.2-.432-.898-.864-1.797-1.296-2.715-.039-.12-.039-.24-.039-.36.039-.818.019-1.637-.197-2.455-.157-.62-.392-1.258-.844-1.717-.53-.58-1.158-1.019-1.826-1.398-.353-.24-.707-.4-1.08-.579-.058 0-.098.04-.157.04.02.3.079.579.099.878.039 1.099.294 2.197.785 3.155Z" fill="#FFD57C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M113.118 50.048c1.261 3.725 2.24 5.92 4.306 8.903l.623-1.432a.86.86 0 0 0 .006.071c.071-.188.141-.376.209-.566l.068-.157.043-.157a41.54 41.54 0 0 0 1.435-5.228l.027-.097.015-.104c.03-.146.059-.292.087-.44a.407.407 0 0 0-.023-.011l.161-1.128.039.182c.432-2.496.628-4.992.589-7.527a2.003 2.003 0 0 0-.132-.023l-.064-1.314c.009.026.016.051.023.077.027.092.053.179.114.241a50.783 50.783 0 0 0-.707-7.367l-.045-.004-.278-1.197c.048.075.097.15.147.223a46.543 46.543 0 0 0-1.865-7.128l-.139.033c-.104.023-.204.045-.313.087-1.61.26-3.22.14-4.79-.36-1.1-.399-1.924-1.137-2.611-2.036a19.248 19.248 0 0 1-.532-.833c2.923 1.732 5.053 2.57 8.135 3.108l-.42-1.077c.171.216.348.44.532.679-.073-.19-.136-.363-.195-.527a16.808 16.808 0 0 0-.256-.671c-.177-.409-.354-.828-.532-1.25-.257-.608-.517-1.223-.784-1.825a.707.707 0 0 0-.203-.23h.266c.264.562.529 1.118.794 1.67.583 1.313 1.279 3.001 1.881 4.729a56.425 56.425 0 0 1 1.11 3.914l.059.24.005-.018c.785 3.807 1.116 7.948 1.336 10.698l.046.568c.045 1.655-.037 3.303-.189 4.963l.089-.148a48.93 48.93 0 0 1-.342 2.46c-.24 1.043-.479 2.09-.719 3.139l-.736 3.214.072-.11c-.215.752-.44 1.46-.67 2.1-.095.025-.146.086-.188.227-.34.96-.71 1.916-1.107 2.86a111.02 111.02 0 0 1-1.277 2.809l-.011.02-.054.114c-.367.77-.713 1.456-1.049 2.073a.752.752 0 0 0-.114.19c-.242.425-.492.847-.746 1.266-.33.51-.653 1.042-.951 1.544l-.089.144c-.241.408-.494.775-.75 1.146l-.173.252c-1.315.859-1.512.46-1.512.46a55.355 55.355 0 0 0 3.004-4.473c.07-.143.093-.222-.015-.323l1.016-1.816v.003c-.019.08-.019.16-.019.28 1.099-1.938 2.022-3.974 2.827-6.07l-.14-.09a15.39 15.39 0 0 1-1.117-.769c-1.099-.858-2.042-1.877-2.729-3.094-.824-1.478-.824-3.075-.549-4.712.016-.069.029-.144.044-.225l.027-.15Zm-2.019 6.74c.755 4.362 1.306 6.716 2.54 9.8a11.523 11.523 0 0 1-3.027-4.426c-.255-.639-.294-1.297-.294-1.956.038-1.14.305-2.26.781-3.417Zm4.635 9.679c3.288-.513 5.542-1.555 8.849-3.39-.114.151-.226.312-.339.473-.18.258-.363.518-.557.749-.805.938-1.786 1.717-3.004 2.036-1.631.458-3.297.478-4.949.132Zm3.407-8.086c2.815-1.036 4.77-2.366 8.195-5.008l-.12.26c-.202.44-.391.853-.623 1.222-.648 1.138-1.492 2.076-2.709 2.616-1.508.67-3.107.992-4.743.91Zm2.105-8.512c2.841-1.502 4.333-3.052 6.77-6.411.056-.002.111-.003.167-.003h.039c-.098 1.158-.903 3.035-1.688 3.893-.903.978-2.042 1.577-3.259 1.996-.533.177-1.094.307-1.645.435l-.384.09Zm.312-8.64c2.329-1.938 3.623-3.769 5.679-7.464l.189-.07.011.028c.001.064.003.115.006.157.003.075.006.123-.006.17a9.296 9.296 0 0 1-.432 2.537c-.471 1.557-1.59 2.575-2.886 3.434-.787.515-1.636.904-2.561 1.209Zm-1.045-8.498c1.973-2.34 3.043-4.093 4.543-8.196l.013.117c.049.431.091.805.091 1.193.019 1.258-.138 2.416-.825 3.474a9.494 9.494 0 0 1-3.822 3.412Zm-2.598-7.9-.013.001c1.854-3.366 2.529-5.368 3.279-8.885l.054.21c.097.37.188.723.253 1.103.256 1.258.256 2.496-.333 3.713-.746 1.538-1.767 2.776-3.122 3.754a.315.315 0 0 0-.118.104Zm-5.989-10.03c.983 2.305 1.839 3.828 3.643 6.037-1.162-.476-2.204-1.133-2.797-2.36-.491-.959-.746-2.057-.786-3.155-.009-.15-.029-.294-.049-.439l-.011-.083Zm.103 14.16c2.761 2.514 4.659 3.892 7.418 4.969l-.923-.079c-1.433-.14-2.807-.539-4.025-1.357-1.021-.64-1.649-1.598-2.159-2.696-.066-.168-.129-.34-.194-.517l-.117-.32Zm1.53 6.739c2.63 3.116 4.3 4.831 6.994 6.632a4.18 4.18 0 0 0-.193-.019 3.78 3.78 0 0 1-.167-.016c-1.63-.36-3.122-1.019-4.398-2.077-1.217-.938-1.767-2.316-2.101-3.753-.039-.187-.069-.373-.097-.541l-.038-.226Zm.38 7.236c2.142 3.5 3.57 5.612 5.658 7.775-1.723-.628-3.168-1.705-4.371-3.103-.727-.859-1.041-1.897-1.178-3.035a16.932 16.932 0 0 1-.109-1.637Z" fill="#E1910E"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M113.118 50.048c1.261 3.725 2.24 5.92 4.306 8.903l.623-1.432a.86.86 0 0 0 .006.071c.071-.188.141-.376.209-.566l.068-.157.043-.157a41.54 41.54 0 0 0 1.435-5.228l.027-.097.015-.104c.03-.146.059-.292.087-.44a.407.407 0 0 0-.023-.011l.161-1.128.039.182c.432-2.496.628-4.992.589-7.527a2.003 2.003 0 0 0-.132-.023l-.064-1.314c.009.026.016.051.023.077a.551.551 0 0 0 .114.241 50.783 50.783 0 0 0-.707-7.367l-.045-.004-.278-1.197c.048.075.097.15.147.223a46.543 46.543 0 0 0-1.865-7.128l-.139.033c-.104.023-.204.045-.313.087-1.61.26-3.22.14-4.79-.36-1.1-.399-1.924-1.137-2.611-2.036a19.248 19.248 0 0 1-.532-.833c2.923 1.732 5.053 2.57 8.135 3.108l-.42-1.077c.171.216.348.44.532.679-.073-.19-.136-.363-.195-.527a16.808 16.808 0 0 0-.256-.671 147.49 147.49 0 0 1-.532-1.25 113.8 113.8 0 0 0-.784-1.825.707.707 0 0 0-.203-.23h.266c.264.562.529 1.118.794 1.67a63.425 63.425 0 0 1 1.881 4.729 56.425 56.425 0 0 1 1.11 3.914l.059.24.005-.018c.785 3.807 1.116 7.948 1.336 10.698l.046.568c.045 1.655-.037 3.303-.189 4.963l.089-.148a48.93 48.93 0 0 1-.342 2.46c-.24 1.043-.479 2.09-.719 3.139l-.736 3.214.072-.11c-.215.752-.44 1.46-.67 2.1-.095.025-.146.086-.188.227-.34.96-.71 1.916-1.107 2.86a111.02 111.02 0 0 1-1.277 2.809l-.011.02-.054.114c-.367.77-.713 1.456-1.049 2.073a.752.752 0 0 0-.114.19c-.242.425-.492.847-.746 1.266-.33.51-.653 1.042-.951 1.544l-.089.144a19.06 19.06 0 0 1-.75 1.146l-.173.252c-1.315.859-1.512.46-1.512.46a55.355 55.355 0 0 0 3.004-4.473c.07-.143.093-.222-.015-.323l1.016-1.816v.003c-.019.08-.019.16-.019.28 1.099-1.938 2.022-3.974 2.827-6.07l-.14-.09a15.39 15.39 0 0 1-1.117-.769c-1.099-.858-2.042-1.877-2.729-3.094-.824-1.478-.824-3.075-.549-4.712.016-.069.029-.144.044-.225l.027-.15Zm-2.019 6.74c.755 4.362 1.306 6.716 2.54 9.8a11.523 11.523 0 0 1-3.027-4.426c-.255-.639-.294-1.297-.294-1.956.038-1.14.305-2.26.781-3.417Zm4.635 9.679c3.288-.513 5.542-1.555 8.849-3.39-.114.151-.226.312-.339.473-.18.258-.363.518-.557.749-.805.938-1.786 1.717-3.004 2.036-1.631.458-3.297.478-4.949.132Zm3.407-8.086c2.815-1.036 4.77-2.366 8.195-5.008l-.12.26c-.202.44-.391.853-.623 1.222-.648 1.138-1.492 2.076-2.709 2.616-1.508.67-3.107.992-4.743.91Zm2.105-8.512c2.841-1.502 4.333-3.052 6.77-6.411a4.65 4.65 0 0 1 .167-.003h.039c-.098 1.158-.903 3.035-1.688 3.893-.903.978-2.042 1.577-3.259 1.996-.533.177-1.094.307-1.645.435l-.384.09Zm.312-8.64c2.329-1.938 3.623-3.769 5.679-7.464l.189-.07.011.028c.001.064.003.115.006.157.003.075.006.123-.006.17a9.296 9.296 0 0 1-.432 2.537c-.471 1.557-1.59 2.575-2.886 3.434a10.79 10.79 0 0 1-2.561 1.209Zm-1.045-8.498c1.973-2.34 3.043-4.093 4.543-8.196l.013.117c.049.431.091.805.091 1.193.019 1.258-.138 2.416-.825 3.474a9.494 9.494 0 0 1-3.822 3.412Zm-2.598-7.9-.013.001c1.854-3.366 2.529-5.368 3.279-8.885l.054.21c.097.37.188.723.253 1.103.256 1.258.256 2.496-.333 3.713-.746 1.538-1.767 2.776-3.122 3.754a.315.315 0 0 0-.118.104Zm-5.989-10.03c.983 2.305 1.839 3.828 3.643 6.037-1.162-.476-2.204-1.133-2.797-2.36-.491-.959-.746-2.057-.786-3.155-.009-.15-.029-.294-.049-.439l-.011-.083Zm.103 14.16c2.761 2.514 4.659 3.892 7.418 4.969l-.923-.079c-1.433-.14-2.807-.539-4.025-1.357-1.021-.64-1.649-1.598-2.159-2.696-.066-.168-.129-.34-.194-.517l-.117-.32Zm1.53 6.739c2.63 3.116 4.3 4.831 6.994 6.632a4.18 4.18 0 0 0-.193-.019 3.78 3.78 0 0 1-.167-.016c-1.63-.36-3.122-1.019-4.398-2.077-1.217-.938-1.767-2.316-2.101-3.753-.039-.187-.069-.373-.097-.541l-.038-.226Zm.38 7.236c2.142 3.5 3.57 5.612 5.658 7.775-1.723-.628-3.168-1.705-4.371-3.103-.727-.859-1.041-1.897-1.178-3.035a16.932 16.932 0 0 1-.109-1.637Z" fill="#E1910E"/>
<mask id="r" maskUnits="userSpaceOnUse" x="107.1" y="12.405" width="23" height="61" fill="#000">
<path fill="#fff" d="M107.1 12.405h23v61h-23z"/>
<path d="M112.771 18.478c.608 1.258 1.688 1.917 2.886 2.396.137.08.275.2.334.32.451 1.018.883 2.076 1.315 3.074.157.38.275.739.451 1.198a58.114 58.114 0 0 0-1.413-1.757c-.825-.978-1.806-1.717-3.122-1.917-1.335-.22-2.67-.1-3.985.24-.039.04-.059.04-.137.08.333.499.628 1.018.942 1.477.687.899 1.512 1.637 2.611 2.037 1.571.499 3.18.619 4.79.359.157-.06.295-.08.452-.12a46.546 46.546 0 0 1 1.865 7.128c-.314-.46-.589-.978-.864-1.438-.687-1.178-1.551-2.116-2.866-2.575a9.092 9.092 0 0 0-3.082-.52c-.334 0-.688.04-1.1.04.196.48.334.9.491 1.298.51 1.099 1.139 2.057 2.159 2.696 1.218.818 2.592 1.218 4.025 1.357.452.04.942.08 1.414.12.412 2.416.647 4.872.706 7.368-.078-.08-.098-.2-.137-.32-.157-.46-.334-.938-.511-1.438-.549-1.437-1.472-2.535-2.866-3.194-.962-.44-1.983-.699-3.023-.858-.177 0-.354-.04-.55-.08v.24c.039.219.079.498.138.778.333 1.437.883 2.815 2.1 3.753 1.276 1.059 2.768 1.718 4.398 2.077.157.02.314.02.51.06a40.203 40.203 0 0 1-.589 7.527c-.176-.819-.314-1.598-.471-2.376-.255-1.098-.785-2.077-1.629-2.815-1.061-.899-2.297-1.478-3.593-1.957-.137 0-.275-.08-.491-.12.02.719.039 1.338.118 1.957.137 1.138.451 2.176 1.178 3.035 1.237 1.437 2.729 2.535 4.515 3.154.059 0 .118.04.197.08-.452 2.316-1.061 4.572-1.885 6.748-.039-.399 0-.778-.02-1.178-.019-1.317-.235-2.555-1.04-3.613a8.47 8.47 0 0 0-2.356-2.097c-.471-.32-.942-.599-1.473-.858-.058.22-.078.42-.117.579-.275 1.637-.275 3.234.549 4.712.688 1.218 1.63 2.236 2.729 3.094.413.32.825.58 1.257.859-.805 2.096-1.728 4.133-2.827 6.07 0-.12 0-.2.019-.28.059-.54.138-1.138.197-1.677a5.283 5.283 0 0 0-.589-2.895c-.57-1.038-1.335-1.937-2.238-2.716-.334-.26-.668-.539-1.021-.858-.491 1.178-.766 2.316-.805 3.474 0 .659.039 1.318.294 1.956a11.53 11.53 0 0 0 3.102 4.493c.157.12.138.2.059.36a55.357 55.357 0 0 1-3.004 4.471s.197.4 1.512-.459c.314-.459.628-.898.923-1.397.608-.979 1.217-1.957 1.786-2.955.118-.26.236-.34.511-.26 1.727.4 3.475.4 5.183-.08 1.217-.32 2.198-1.098 3.003-2.036.354-.42.668-.939 1.002-1.358.019-.08.058-.12.098-.2l-.118-.08c-1.374-.459-2.788-.698-4.221-.578-1.433.08-2.591.778-3.612 1.797-.236.24-.452.459-.727.658.02-.08.059-.16.098-.24a53.469 53.469 0 0 0 2.396-5.69c.059-.199.137-.239.333-.239 1.708.12 3.377-.2 4.948-.898 1.217-.54 2.061-1.478 2.709-2.616.314-.499.55-1.078.844-1.697-.569 0-1.08-.08-1.59-.08-.982-.04-1.963.04-2.925.3-1.316.399-2.238 1.218-3.024 2.296-.196.24-.353.479-.51.718.491-2.136.981-4.292 1.472-6.428.786-.2 1.63-.36 2.415-.62 1.217-.419 2.356-1.018 3.259-1.996.785-.858 1.59-2.735 1.688-3.893h-.039c-1.688.02-3.318.34-4.79 1.278-.903.539-1.473 1.437-1.944 2.376-.118.2-.216.399-.353.618.196-2.136.275-4.252.118-6.388 1.06-.32 2.022-.74 2.905-1.318 1.296-.859 2.415-1.877 2.886-3.434a9.297 9.297 0 0 0 .432-2.536c.02-.08 0-.16 0-.36-.746.28-1.472.48-2.159.7-.943.399-1.807.898-2.533 1.677-.628.678-.962 1.497-1.237 2.336-.118.399-.216.798-.373 1.177 0-.12-.019-.16-.019-.279a53.305 53.305 0 0 0-.864-6.11c-.04-.2-.02-.359.216-.439a9.498 9.498 0 0 0 3.867-3.434c.687-1.058.844-2.216.825-3.474 0-.459-.059-.898-.118-1.437-.589.32-1.158.559-1.649.858-1.1.64-2.062 1.418-2.69 2.536-.491.858-.608 1.837-.687 2.815-.039.3-.039.619-.118.898a20.4 20.4 0 0 0-.059-.24c-.51-2.056-1.119-4.132-1.904-6.128-.078-.2-.078-.32.098-.42 1.355-.978 2.376-2.216 3.122-3.753.589-1.218.589-2.456.334-3.714-.079-.46-.197-.878-.315-1.338l-.039-.04c-.864.54-1.669 1.159-2.356 1.937-1.06 1.138-1.629 2.456-1.511 4.093.039.58.098 1.218.137 1.917-.039-.08-.059-.12-.078-.2-.432-.898-.864-1.797-1.296-2.715-.039-.12-.039-.24-.039-.36.039-.818.019-1.637-.197-2.455-.157-.62-.392-1.258-.844-1.717-.53-.58-1.158-1.019-1.826-1.398-.353-.24-.707-.4-1.08-.579-.058 0-.098.04-.157.04.02.3.079.579.099.878.039 1.099.294 2.197.785 3.155Z"/>

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

-2
View File
@@ -1,2 +0,0 @@
/node_modules
/dist
-43
View File
@@ -1,43 +0,0 @@
import type { AlertProps } from '@chakra-ui/react';
import { Alert, AlertIcon, AlertTitle } from '@chakra-ui/react';
import React from 'react';
import { test, expect } from 'playwright/lib';
test.use({ viewport: { width: 400, height: 720 } });
const TEST_CASES: Array<AlertProps> = [
{
status: 'info',
},
{
status: 'warning',
},
{
status: 'success',
},
{
status: 'error',
},
{
status: 'info',
colorScheme: 'gray',
},
];
TEST_CASES.forEach((props) => {
const testName = Object.entries(props).map(([ key, value ]) => `${ key }=${ value }`).join(', ');
test(`${ testName } +@dark-mode`, async({ render }) => {
const component = await render(
<Alert { ...props }>
<AlertIcon/>
<AlertTitle>
This is alert text
</AlertTitle>
</Alert>,
);
await expect(component).toHaveScreenshot();
});
});
-97
View File
@@ -1,97 +0,0 @@
import { alertAnatomy as parts } from '@chakra-ui/anatomy';
import type { StyleFunctionProps } from '@chakra-ui/styled-system';
import { createMultiStyleConfigHelpers, cssVar } from '@chakra-ui/styled-system';
import { transparentize } from '@chakra-ui/theme-tools';
const { definePartsStyle, defineMultiStyleConfig } =
createMultiStyleConfigHelpers(parts.keys);
const $fg = cssVar('alert-fg');
const $bg = cssVar('alert-bg');
function getBg(props: StyleFunctionProps) {
const { theme, colorScheme: c } = props;
const darkBg = transparentize(`${ c }.200`, 0.16)(theme);
return {
light: `colors.${ c }.100`,
dark: darkBg,
};
}
const baseStyle = definePartsStyle({
container: {
bg: $bg.reference,
borderRadius: 'md',
px: 6,
py: 3,
},
title: {
fontWeight: 'bold',
lineHeight: '6',
marginEnd: '2',
},
description: {
lineHeight: '6',
},
icon: {
color: $fg.reference,
flexShrink: 0,
marginEnd: '3',
w: '5',
h: '6',
},
spinner: {
color: $fg.reference,
flexShrink: 0,
marginEnd: '3',
w: '5',
h: '5',
},
});
const variantSubtle = definePartsStyle((props) => {
const { colorScheme } = props;
const bg = getBg(props);
return {
container: {
[$fg.variable]: colorScheme === 'gray' ? 'colors.blackAlpha.800' : `colors.${ colorScheme }.500`,
[$bg.variable]: colorScheme === 'gray' ? 'colors.blackAlpha.100' : bg.light,
_dark: {
[$fg.variable]: colorScheme === 'gray' ? 'colors.whiteAlpha.800' : `colors.${ colorScheme }.200`,
[$bg.variable]: colorScheme === 'gray' ? 'colors.whiteAlpha.200' : bg.dark,
},
},
};
});
const variantSolid = definePartsStyle((props) => {
const { colorScheme: c } = props;
return {
container: {
[$fg.variable]: `colors.white`,
[$bg.variable]: `colors.${ c }.500`,
_dark: {
[$fg.variable]: `colors.gray.900`,
[$bg.variable]: `colors.${ c }.200`,
},
color: $fg.reference,
},
};
});
const variants = {
subtle: variantSubtle,
solid: variantSolid,
};
const Alert = defineMultiStyleConfig({
baseStyle,
variants,
defaultProps: {
variant: 'subtle',
colorScheme: 'blue',
},
});
export default Alert;
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

-63
View File
@@ -1,63 +0,0 @@
import { defineStyle, defineStyleConfig } from '@chakra-ui/styled-system';
import { mode } from '@chakra-ui/theme-tools';
const baseStyle = defineStyle({
fontSize: 'xs',
borderRadius: 'sm',
fontWeight: 'bold',
});
const variantSubtle = defineStyle((props) => {
const { colorScheme: c } = props;
if (c === 'gray') {
return {
bg: mode('blackAlpha.50', 'whiteAlpha.100')(props),
color: mode('blackAlpha.800', 'whiteAlpha.800')(props),
};
}
if (c === 'gray-blue') {
return {
bg: mode('gray.100', 'gray.800')(props),
color: mode('blackAlpha.800', 'whiteAlpha.800')(props),
_hover: {
opacity: 0.76,
},
};
}
if (c === 'black-blue') {
return {
bg: mode('blue.50', 'blue.800')(props),
color: mode('blackAlpha.800', 'whiteAlpha.800')(props),
};
}
if (c === 'black-purple') {
return {
bg: mode('purple.100', 'purple.800')(props),
color: mode('blackAlpha.800', 'whiteAlpha.800')(props),
};
}
return {
bg: mode(`${ c }.50`, `${ c }.800`)(props),
color: mode(`${ c }.500`, `${ c }.100`)(props),
};
});
const variants = {
subtle: variantSubtle,
};
const Badge = defineStyleConfig({
baseStyle,
variants,
defaultProps: {
variant: 'subtle',
colorScheme: 'gray',
},
});
export default Badge;
-78
View File
@@ -1,78 +0,0 @@
import { Box, Button, Flex } from '@chakra-ui/react';
import React from 'react';
import { test, expect } from 'playwright/lib';
test.use({ viewport: { width: 150, height: 350 } });
[
{ variant: 'solid', states: [ 'default', 'disabled', 'hovered', 'active' ] },
{ variant: 'outline', colorScheme: 'gray', withDarkMode: true, states: [ 'default', 'disabled', 'hovered', 'active', 'selected' ] },
{ variant: 'outline', colorScheme: 'blue', withDarkMode: true, states: [ 'default', 'disabled', 'hovered', 'active', 'selected' ] },
{ variant: 'simple', withDarkMode: true, states: [ 'default', 'hovered' ] },
{ variant: 'ghost', withDarkMode: true, states: [ 'default', 'hovered', 'active' ] },
{ variant: 'subtle', states: [ 'default', 'hovered' ] },
{ variant: 'subtle', colorScheme: 'gray', states: [ 'default', 'hovered' ], withDarkMode: true },
{ variant: 'hero', states: [ 'default', 'hovered' ], withDarkMode: true },
{ variant: 'header', states: [ 'default', 'hovered', 'selected' ], withDarkMode: true },
{ variant: 'radio_group', states: [ 'default', 'hovered', 'selected' ], withDarkMode: true },
].forEach(({ variant, colorScheme, withDarkMode, states }) => {
test.describe(`variant ${ variant }${ colorScheme ? ` with ${ colorScheme } color scheme` : '' }${ withDarkMode ? ' +@dark-mode' : '' }`, () => {
test('base view', async({ render }) => {
const component = await render(
<Flex p={ 2 } flexDir="column" rowGap={ 3 }>
{ states?.map((state) => {
switch (state) {
case 'default': {
return (
<Box>
<Box color="text_secondary" fontSize="sm">Default:</Box>
<Button variant={ variant } colorScheme={ colorScheme }>Click me</Button>
</Box>
);
}
case 'disabled': {
return (
<Box>
<Box color="text_secondary" fontSize="sm">Disabled:</Box>
<Button variant={ variant } colorScheme={ colorScheme } isDisabled>Click me</Button>
</Box>
);
}
case 'active': {
return (
<Box>
<Box color="text_secondary" fontSize="sm">Active:</Box>
<Button variant={ variant } colorScheme={ colorScheme } isActive>Click me</Button>
</Box>
);
}
case 'hovered': {
return (
<Box>
<Box color="text_secondary" fontSize="sm">Hovered:</Box>
<Button variant={ variant } colorScheme={ colorScheme }>Hover me</Button>
</Box>
);
}
case 'selected': {
return (
<Box>
<Box color="text_secondary" fontSize="sm">Selected:</Box>
<Button variant={ variant } colorScheme={ colorScheme } data-selected="true">Click me</Button>
</Box>
);
}
default: {
return null;
}
}
}) }
</Flex>,
);
await component.getByText('Hover me').hover();
await expect(component).toHaveScreenshot();
});
});
});
-315
View File
@@ -1,315 +0,0 @@
import { defineStyle, defineStyleConfig } from '@chakra-ui/styled-system';
import { mode } from '@chakra-ui/theme-tools';
import { runIfFn } from '@chakra-ui/utils';
import config from 'configs/app';
const variantSolid = defineStyle((props) => {
const { colorScheme: c } = props;
const bg = `${ c }.600`;
const color = 'white';
const hoverBg = `${ c }.400`;
const activeBg = hoverBg;
return {
bg,
color,
_hover: {
bg: hoverBg,
_disabled: {
bg,
},
},
_disabled: {
opacity: 0.2,
},
// According to design there is no "active" or "pressed" state
// It is simply should be the same as the "hover" state
_active: { bg: activeBg },
fontWeight: 600,
};
});
const variantOutline = defineStyle((props) => {
const { colorScheme: c } = props;
const isGrayTheme = c === 'gray';
const bg = 'transparent';
const color = isGrayTheme ? mode('blackAlpha.800', 'whiteAlpha.800')(props) : mode(`${ c }.600`, `${ c }.300`)(props);
const borderColor = isGrayTheme ? mode('gray.200', 'gray.600')(props) : mode(`${ c }.600`, `${ c }.300`)(props);
const selectedBg = isGrayTheme ? mode('blue.50', 'gray.600')(props) : mode(`${ c }.50`, 'gray.600')(props);
const selectedColor = mode('blue.600', 'gray.50')(props);
return {
color,
fontWeight: props.fontWeight || 600,
borderWidth: props.borderWidth || '2px',
borderStyle: 'solid',
borderColor,
bg,
_hover: {
color: 'link_hovered',
borderColor: 'link_hovered',
bg,
span: {
color: 'link_hovered',
},
_disabled: {
color,
borderColor,
},
},
_disabled: {
opacity: 0.2,
},
// According to design there is no "active" or "pressed" state
// It is simply should be the same as the "hover" state
_active: {
color: 'link_hovered',
borderColor: 'link_hovered',
bg,
span: {
color: 'link_hovered',
},
_disabled: {
color: 'link_hovered',
borderColor: 'link_hovered',
},
},
// We have a special state for this button variant that serves as a popover trigger.
// When any items (filters) are selected in the popover, the button should change its background and text color.
// The last CSS selector is for redefining styles for the TabList component.
[`
&[data-selected=true],
&[data-selected=true][aria-selected=true]
`]: {
bg: selectedBg,
color: selectedColor,
borderColor: selectedBg,
},
};
});
const variantRadioGroup = defineStyle((props) => {
const outline = runIfFn(variantOutline, props);
const bgColor = mode('blue.50', 'gray.800')(props);
const selectedTextColor = mode('blue.700', 'gray.50')(props);
return {
...outline,
fontWeight: 500,
cursor: 'pointer',
bgColor: 'none',
borderColor: bgColor,
_hover: {
borderColor: bgColor,
color: 'link_hovered',
},
_active: {
bgColor: 'none',
},
_notFirst: {
borderLeftWidth: 0,
},
// We have a special state for this button variant that serves as a popover trigger.
// When any items (filters) are selected in the popover, the button should change its background and text color.
// The last CSS selector is for redefining styles for the TabList component.
[`
&[data-selected=true],
&[data-selected=true][aria-selected=true]
`]: {
cursor: 'initial',
bgColor,
borderColor: bgColor,
color: selectedTextColor,
_hover: {
color: selectedTextColor,
},
},
};
});
const variantSimple = defineStyle((props) => {
const outline = runIfFn(variantOutline, props);
return {
color: outline.color,
_hover: {
color: outline._hover.color,
},
};
});
const variantGhost = defineStyle((props) => {
const { colorScheme: c } = props;
const activeBg = mode(`${ c }.50`, 'gray.800')(props);
return {
bg: 'transparent',
color: mode(`${ c }.700`, 'gray.400')(props),
_active: {
color: mode(`${ c }.700`, 'gray.50')(props),
bg: mode(`${ c }.50`, 'gray.800')(props),
},
_hover: {
color: `${ c }.400`,
_active: {
bg: props.isActive ? activeBg : 'transparent',
color: mode(`${ c }.700`, 'gray.50')(props),
},
},
};
});
const variantSubtle = defineStyle((props) => {
const { colorScheme: c } = props;
if (c === 'gray') {
return {
bg: mode('blackAlpha.200', 'whiteAlpha.200')(props),
color: mode('blackAlpha.800', 'whiteAlpha.800')(props),
_hover: {
color: 'link_hovered',
_disabled: {
color: mode('blackAlpha.800', 'whiteAlpha.800')(props),
bg: mode('blackAlpha.200', 'whiteAlpha.200')(props),
},
},
};
}
return {
bg: `${ c }.100`,
color: `${ c }.600`,
_hover: {
color: 'link_hovered',
},
};
});
// for buttons in the hero banner
const variantHero = defineStyle((props) => {
const buttonConfig = config.UI.homepage.heroBanner?.button;
return {
bg: mode(
buttonConfig?._default?.background?.[0] || 'blue.600',
buttonConfig?._default?.background?.[1] || buttonConfig?._default?.background?.[0] || 'blue.600',
)(props),
color: mode(
buttonConfig?._default?.text_color?.[0] || 'white',
buttonConfig?._default?.text_color?.[1] || buttonConfig?._default?.text_color?.[0] || 'white',
)(props),
_hover: {
bg: mode(
buttonConfig?._hover?.background?.[0] || 'blue.400',
buttonConfig?._hover?.background?.[1] || buttonConfig?._hover?.background?.[0] || 'blue.400',
)(props),
color: mode(
buttonConfig?._hover?.text_color?.[0] || 'white',
buttonConfig?._hover?.text_color?.[1] || buttonConfig?._hover?.text_color?.[0] || 'white',
)(props),
},
'&[data-selected=true]': {
bg: mode(
buttonConfig?._selected?.background?.[0] || 'blue.50',
buttonConfig?._selected?.background?.[1] || buttonConfig?._selected?.background?.[0] || 'blue.50',
)(props),
color: mode(
buttonConfig?._selected?.text_color?.[0] || 'blackAlpha.800',
buttonConfig?._selected?.text_color?.[1] || buttonConfig?._selected?.text_color?.[0] || 'blackAlpha.800',
)(props),
},
};
});
// for buttons in the page header
const variantHeader = defineStyle((props) => {
return {
bgColor: 'transparent',
color: mode('blackAlpha.800', 'gray.400')(props),
borderColor: mode('gray.300', 'gray.600')(props),
borderWidth: props.borderWidth || '2px',
borderStyle: 'solid',
_hover: {
color: 'link_hovered',
borderColor: 'link_hovered',
},
'&[data-selected=true]': {
bgColor: mode('blackAlpha.50', 'whiteAlpha.100')(props),
color: mode('blackAlpha.800', 'whiteAlpha.800')(props),
borderColor: 'transparent',
borderWidth: props.borderWidth || '0px',
},
'&[data-selected=true][data-warning=true]': {
bgColor: mode('orange.100', 'orange.900')(props),
color: mode('blackAlpha.800', 'whiteAlpha.800')(props),
borderColor: 'transparent',
borderWidth: props.borderWidth || '0px',
},
};
});
const variants = {
solid: variantSolid,
outline: variantOutline,
simple: variantSimple,
ghost: variantGhost,
subtle: variantSubtle,
hero: variantHero,
header: variantHeader,
radio_group: variantRadioGroup,
};
const baseStyle = defineStyle({
fontWeight: 600,
borderRadius: 'base',
overflow: 'hidden',
_focusVisible: {
boxShadow: { base: 'none', lg: 'outline' },
},
});
const sizes = {
lg: defineStyle({
h: 12,
minW: 'unset',
fontSize: 'lg',
px: 6,
}),
md: defineStyle({
h: 10,
minW: 'unset',
fontSize: 'md',
px: 4,
}),
sm: defineStyle({
h: 8,
minW: 'unset',
fontSize: 'sm',
px: 3,
}),
xs: defineStyle({
h: 6,
minW: 'unset',
fontSize: 'xs',
px: 2,
}),
};
const Button = defineStyleConfig({
baseStyle,
variants,
sizes,
defaultProps: {
variant: 'solid',
size: 'md',
colorScheme: 'blue',
},
});
export default Button;
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

-66
View File
@@ -1,66 +0,0 @@
import { checkboxAnatomy as parts } from '@chakra-ui/anatomy';
import {
createMultiStyleConfigHelpers,
defineStyle,
cssVar,
} from '@chakra-ui/styled-system';
import { mode } from '@chakra-ui/theme-tools';
import { runIfFn } from '@chakra-ui/utils';
const { definePartsStyle, defineMultiStyleConfig } =
createMultiStyleConfigHelpers(parts.keys);
const $size = cssVar('checkbox-size');
const baseStyleControl = defineStyle((props) => {
const { colorScheme: c } = props;
return {
_checked: {
bg: mode(`${ c }.500`, `${ c }.300`)(props),
borderColor: mode(`${ c }.500`, `${ c }.300`)(props),
_hover: {
bg: mode(`${ c }.600`, `${ c }.400`)(props),
borderColor: mode(`${ c }.600`, `${ c }.400`)(props),
},
},
_indeterminate: {
bg: mode(`${ c }.500`, `${ c }.300`)(props),
borderColor: mode(`${ c }.500`, `${ c }.300`)(props),
},
};
});
const sizes = {
sm: definePartsStyle({
control: { [$size.variable]: 'sizes.3' },
label: { fontSize: 'sm' },
icon: { fontSize: '3xs' },
}),
md: definePartsStyle({
control: { [$size.variable]: 'sizes.4' },
label: { fontSize: 'md' },
icon: { fontSize: '2xs' },
}),
lg: definePartsStyle({
control: { [$size.variable]: 'sizes.5' },
label: { fontSize: 'md' },
icon: { fontSize: '2xs' },
}),
};
const baseStyleLabel = defineStyle({
_disabled: { opacity: 0.2 },
});
const baseStyle = definePartsStyle((props) => ({
label: baseStyleLabel,
control: runIfFn(baseStyleControl, props),
}));
const Checkbox = defineMultiStyleConfig({
baseStyle,
sizes,
});
export default Checkbox;
-45
View File
@@ -1,45 +0,0 @@
import { drawerAnatomy as parts } from '@chakra-ui/anatomy';
import {
createMultiStyleConfigHelpers,
defineStyle,
} from '@chakra-ui/styled-system';
import { mode } from '@chakra-ui/theme-tools';
import { runIfFn } from '@chakra-ui/utils';
const { definePartsStyle, defineMultiStyleConfig } =
createMultiStyleConfigHelpers(parts.keys);
import getDefaultTransitionProps from '../utils/getDefaultTransitionProps';
const transitionProps = getDefaultTransitionProps();
const baseStyleOverlay = defineStyle({
...transitionProps,
bg: 'blackAlpha.800',
zIndex: 'overlay',
});
const baseStyleDialog = defineStyle((props) => {
const { isFullHeight } = props;
return {
...(isFullHeight && { height: '100vh' }),
...transitionProps,
zIndex: 'modal',
maxH: '100vh',
bg: mode('white', 'gray.900')(props),
color: 'inherit',
boxShadow: mode('lg', 'dark-lg')(props),
};
});
const baseStyle = definePartsStyle((props) => ({
overlay: baseStyleOverlay,
dialog: runIfFn(baseStyleDialog, props),
}));
const Drawer = defineMultiStyleConfig({
baseStyle,
});
export default Drawer;
-26
View File
@@ -1,26 +0,0 @@
const sizes = {
sm: {
field: {
px: '0',
height: '36px',
},
},
md: {
field: {
px: '0',
height: '56px',
},
},
lg: {
field: {
px: '0',
height: '76px',
},
},
};
const FancySelect = {
sizes,
};
export default FancySelect;
-167
View File
@@ -1,167 +0,0 @@
import { formAnatomy as parts } from '@chakra-ui/anatomy';
import { createMultiStyleConfigHelpers } from '@chakra-ui/styled-system';
import type { StyleFunctionProps } from '@chakra-ui/theme-tools';
import getFormStyles from '../utils/getFormStyles';
import FancySelect from './FancySelect';
import FormLabel from './FormLabel';
import Input from './Input';
import Textarea from './Textarea';
const { definePartsStyle, defineMultiStyleConfig } =
createMultiStyleConfigHelpers(parts.keys);
function getFloatingVariantStylesForSize(size: 'md' | 'lg', props: StyleFunctionProps) {
const formStyles = getFormStyles(props);
const activeLabelStyles = {
...FormLabel.variants?.floating?.(props)._focusWithin,
...FormLabel.sizes?.[size](props)._focusWithin,
};
const activeInputStyles = (() => {
switch (size) {
case 'md': {
return {
paddingTop: '26px',
paddingBottom: '10px',
};
}
case 'lg': {
return {
paddingTop: '38px',
paddingBottom: '18px',
};
}
}
})();
const inputPx = (() => {
switch (size) {
case 'md': {
return '16px';
}
case 'lg': {
return '24px';
}
}
})();
return {
container: {
// active styles
_focusWithin: {
label: activeLabelStyles,
'input, textarea': activeInputStyles,
},
'&[data-active=true] label': activeLabelStyles,
// label styles
label: FormLabel.sizes?.[size](props) || {},
'input:not(:placeholder-shown) + label, textarea:not(:placeholder-shown) + label': activeLabelStyles,
'textarea:not(:placeholder-shown) + label': {
bgColor: formStyles.input.filled.bgColor,
},
[`
input[readonly] + label,
textarea[readonly] + label,
&[aria-readonly=true] label
`]: {
bgColor: formStyles.input.readOnly.bgColor,
},
[`
input[aria-invalid=true] + label,
textarea[aria-invalid=true] + label,
&[aria-invalid=true] label
`]: {
color: formStyles.placeholder.error.color,
},
[`
input[disabled] + label,
textarea[disabled] + label,
&[aria-disabled=true] label
`]: {
color: formStyles.placeholder.disabled.color,
},
// input styles
input: Input.sizes?.[size].field,
'input[aria-autocomplete=list]': FancySelect.sizes[size].field,
textarea: Textarea.sizes?.[size],
'input, textarea': {
padding: inputPx,
},
'input:not(:placeholder-shown), textarea:not(:placeholder-shown)': activeInputStyles,
// indicator styles
'input:not(:placeholder-shown) + label .chakra-form__required-indicator, textarea:not(:placeholder-shown) + label .chakra-form__required-indicator': {
color: formStyles.placeholder.default.color,
},
[`
input[aria-invalid=true] + label .chakra-form__required-indicator,
textarea[aria-invalid=true] + label .chakra-form__required-indicator,
&[aria-invalid=true] .chakra-form__required-indicator
`]: {
color: formStyles.placeholder.error.color,
},
[`
input[disabled] + label .chakra-form__required-indicator,
textarea[disabled] + label .chakra-form__required-indicator,
&[aria-disabled=true] .chakra-form__required-indicator
`]: {
color: formStyles.placeholder.disabled.color,
},
},
};
}
const baseStyle = definePartsStyle(() => {
return {
requiredIndicator: {
marginStart: 0,
color: 'gray.500',
},
};
});
const variantFloating = definePartsStyle((props) => {
return {
container: {
label: FormLabel.variants?.floating(props) || {},
},
};
});
const sizes = {
lg: definePartsStyle((props) => {
if (props.variant === 'floating') {
return getFloatingVariantStylesForSize('lg', props);
}
return {};
}),
md: definePartsStyle((props) => {
if (props.variant === 'floating') {
return getFloatingVariantStylesForSize('md', props);
}
return {};
}),
};
const variants = {
floating: variantFloating,
};
const Form = defineMultiStyleConfig({
baseStyle,
variants,
sizes,
defaultProps: {
size: 'md',
},
});
export default Form;
-110
View File
@@ -1,110 +0,0 @@
import { FormControl, Input, FormLabel } from '@chakra-ui/react';
import React from 'react';
import { test, expect } from 'playwright/lib';
test.use({ viewport: { width: 500, height: 300 } });
test.describe('floating label size md +@dark-mode', () => {
test('empty', async({ render }) => {
const component = await render(
<FormControl variant="floating" id="name" isRequired size="md">
<Input required value=""/>
<FormLabel>Smart contract / Address (0x...)</FormLabel>
</FormControl>,
);
await expect(component).toHaveScreenshot();
await component.locator('input').focus();
await expect(component).toHaveScreenshot();
});
test('empty error', async({ render }) => {
const component = await render(
<FormControl variant="floating" id="name" isRequired size="md">
<Input required value="" isInvalid/>
<FormLabel>Smart contract / Address (0x...)</FormLabel>
</FormControl>,
);
await expect(component).toHaveScreenshot();
await component.locator('input').focus();
await expect(component).toHaveScreenshot();
});
test('filled', async({ render }) => {
const component = await render(
<FormControl variant="floating" id="name" isRequired size="md">
<Input required value="foo"/>
<FormLabel>Smart contract / Address (0x...)</FormLabel>
</FormControl>,
);
await expect(component).toHaveScreenshot();
});
test('filled disabled', async({ render }) => {
const component = await render(
<FormControl variant="floating" id="name" isRequired size="md">
<Input required value="foo" isDisabled/>
<FormLabel>Smart contract / Address (0x...)</FormLabel>
</FormControl>,
);
await expect(component).toHaveScreenshot();
});
test('filled read-only', async({ render }) => {
const component = await render(
<FormControl variant="floating" id="name" isRequired size="md">
<Input required value="foo" isReadOnly/>
<FormLabel>Smart contract / Address (0x...)</FormLabel>
</FormControl>,
);
await expect(component).toHaveScreenshot();
});
test('filled error', async({ render }) => {
const component = await render(
<FormControl variant="floating" id="name" isRequired size="md">
<Input required value="foo" isInvalid/>
<FormLabel>Smart contract / Address (0x...)</FormLabel>
</FormControl>,
);
await expect(component).toHaveScreenshot();
});
});
test.describe('floating label size lg +@dark-mode', () => {
test('empty', async({ render }) => {
const component = await render(
<FormControl variant="floating" id="name" isRequired size="lg">
<Input required value=""/>
<FormLabel>Smart contract / Address (0x...)</FormLabel>
</FormControl>,
);
await expect(component).toHaveScreenshot();
await component.locator('input').focus();
await expect(component).toHaveScreenshot();
});
test('filled', async({ render }) => {
const component = await render(
<FormControl variant="floating" id="name" isRequired size="lg">
<Input required value="foo"/>
<FormLabel>Smart contract / Address (0x...)</FormLabel>
</FormControl>,
);
await expect(component).toHaveScreenshot();
await component.locator('input').focus();
await expect(component).toHaveScreenshot();
});
});
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Some files were not shown because too many files have changed in this diff Show More