diff --git a/file_tree.json b/file_tree.json new file mode 100644 index 000000000..a27b4cd44 --- /dev/null +++ b/file_tree.json @@ -0,0 +1,2552 @@ +[ + { + "path": "docs/contracts/v1", + "title": "V1 Protocol", + "type": "folder" + }, + { + "path": "docs/contracts/v1/guides", + "title": "Guides", + "type": "folder" + }, + { + "path": "docs/contracts/v1/reference", + "title": "Technical Reference", + "type": "folder" + }, + { + "path": "docs/contracts/universal-router", + "title": "Universal Router", + "type": "folder" + }, + { + "path": "docs/contracts/uniswapx", + "title": "UniswapX", + "type": "folder" + }, + { + "path": "docs/contracts/uniswapx/guides", + "title": "Guides", + "type": "folder" + }, + { + "path": "docs/contracts/v2", + "title": "V2 Protocol", + "type": "folder" + }, + { + "path": "docs/contracts/v2/guides", + "title": "Guides", + "type": "folder" + }, + { + "path": "docs/contracts/v2/guides/smart-contract-integration", + "title": "Smart Contract Integration", + "type": "folder" + }, + { + "path": "docs/contracts/v2/guides/interface-integration", + "title": "Interface Integration", + "type": "folder" + }, + { + "path": "docs/contracts/v2/concepts", + "title": "Concepts", + "type": "folder" + }, + { + "path": "docs/contracts/v2/concepts/01-protocol-overview", + "title": "Protocol Overview", + "type": "folder" + }, + { + "path": "docs/contracts/v2/concepts/03-advanced-topics", + "title": "Advanced Topics", + "type": "folder" + }, + { + "path": "docs/contracts/v2/concepts/02-core-concepts", + "title": "Core Concepts", + "type": "folder" + }, + { + "path": "docs/contracts/v2/reference", + "title": "Technical Reference", + "type": "folder" + }, + { + "path": "docs/contracts/v2/reference/Governance", + "title": "Governance", + "type": "folder" + }, + { + "path": "docs/contracts/v2/reference/API", + "title": "API", + "type": "folder" + }, + { + "path": "docs/contracts/v2/reference/smart-contracts", + "title": "Smart Contracts", + "type": "folder" + }, + { + "path": "docs/contracts/v4", + "title": "V4 Protocol", + "type": "folder" + }, + { + "path": "docs/contracts/v4/quickstart", + "title": "Quickstart", + "type": "folder" + }, + { + "path": "docs/contracts/v4/quickstart/04-hooks", + "title": "Hooks", + "type": "folder" + }, + { + "path": "docs/contracts/v4/quickstart/02-manage-liquidity", + "title": "Manage Liquidity", + "type": "folder" + }, + { + "path": "docs/contracts/v4/guides", + "title": "Guides", + "type": "folder" + }, + { + "path": "docs/contracts/v4/guides/hooks", + "title": "Hooks", + "type": "folder" + }, + { + "path": "docs/contracts/v4/concepts", + "title": "Concepts", + "type": "folder" + }, + { + "path": "docs/contracts/v4/reference", + "title": "Technical Reference", + "type": "folder" + }, + { + "path": "docs/contracts/v4/reference/core", + "title": "Core", + "type": "folder" + }, + { + "path": "docs/contracts/v4/reference/core/types", + "title": "Types", + "type": "folder" + }, + { + "path": "docs/contracts/v4/reference/core/libraries", + "title": "Libraries", + "type": "folder" + }, + { + "path": "docs/contracts/v4/reference/periphery", + "title": "Periphery", + "type": "folder" + }, + { + "path": "docs/contracts/v3", + "title": "V3 Protocol", + "type": "folder" + }, + { + "path": "docs/contracts/v3/guides", + "title": "Guides", + "type": "folder" + }, + { + "path": "docs/contracts/v3/guides/swaps", + "title": "Implement A Swap", + "type": "folder" + }, + { + "path": "docs/contracts/v3/guides/providing-liquidity", + "title": "Providing Liquidity", + "type": "folder" + }, + { + "path": "docs/contracts/v3/guides/liquidity-mining", + "title": "Liquidity Mining", + "type": "folder" + }, + { + "path": "docs/contracts/v3/guides/governance", + "title": "Governance Proposals", + "type": "folder" + }, + { + "path": "docs/contracts/v3/guides/flash-integrations", + "title": "Implement Flash Swaps", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference", + "title": "Technical Reference", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/core", + "title": "Core", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/core/libraries", + "title": "Libraries", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces", + "title": "Interfaces", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/pool", + "title": "Pool", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/periphery", + "title": "Periphery", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/periphery/test", + "title": "Test", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries", + "title": "Libraries", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/periphery/lens", + "title": "Lens", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/periphery/staker", + "title": "Staker", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/periphery/staker/libraries", + "title": "Libraries", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/periphery/staker/interfaces", + "title": "Interfaces", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/periphery/base", + "title": "Base", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces", + "title": "Interfaces", + "type": "folder" + }, + { + "path": "docs/contracts/v3/reference/governance", + "title": "Governance", + "type": "folder" + }, + { + "path": "docs/contracts/permit2", + "title": "Permit2", + "type": "folder" + }, + { + "path": "docs/contracts/permit2/reference", + "title": "Technical Reference", + "type": "folder" + }, + { + "path": "docs/sdk/v1", + "title": "V1 SDK", + "type": "folder" + }, + { + "path": "docs/sdk/v1/guides", + "title": "Guides", + "type": "folder" + }, + { + "path": "docs/sdk/v1/reference", + "title": "Technical Reference", + "type": "folder" + }, + { + "path": "docs/sdk/swap-widget", + "title": "Swap Widget", + "type": "folder" + }, + { + "path": "docs/sdk/swap-widget/guides", + "title": "Guides", + "type": "folder" + }, + { + "path": "docs/sdk/swap-widget/reference", + "title": "Technical Reference", + "type": "folder" + }, + { + "path": "docs/sdk/core", + "title": "Core SDK", + "type": "folder" + }, + { + "path": "docs/sdk/core/reference", + "title": "Technical Reference", + "type": "folder" + }, + { + "path": "docs/sdk/v2", + "title": "V2 SDK", + "type": "folder" + }, + { + "path": "docs/sdk/v2/guides", + "title": "Guides", + "type": "folder" + }, + { + "path": "docs/sdk/v2/reference", + "title": "Technical Reference", + "type": "folder" + }, + { + "path": "docs/sdk/v3", + "title": "V3 SDK", + "type": "folder" + }, + { + "path": "docs/sdk/v3/guides", + "title": "Guides", + "type": "folder" + }, + { + "path": "docs/sdk/v3/guides/advanced", + "title": "Advanced", + "type": "folder" + }, + { + "path": "docs/sdk/v3/guides/swaps", + "title": "Swaps", + "type": "folder" + }, + { + "path": "docs/sdk/v3/guides/liquidity", + "title": "Pooling Liquidity", + "type": "folder" + }, + { + "path": "docs/sdk/v3/reference", + "title": "Technical Reference", + "type": "folder" + }, + { + "path": "docs/sdk/web3-react", + "title": "web3-react", + "type": "folder" + }, + { + "path": "docs/sdk/web3-react/guides", + "title": "Guides", + "type": "folder" + }, + { + "path": "docs/concepts/protocol", + "title": "Protocol Concepts", + "type": "folder" + }, + { + "path": "docs/concepts/governance", + "title": "Governance", + "type": "folder" + }, + { + "path": "docs/api/subgraph", + "title": "Subgraph", + "type": "folder" + }, + { + "path": "docs/api/subgraph/guides", + "title": "Guides", + "type": "folder" + }, + { + "path": "docs/contracts/v1/overview.md", + "title": "The Uniswap V1 Smart Contracts", + "type": "file" + }, + { + "path": "docs/contracts/v1/guides/04-custom-linking.md", + "title": "Query Parameters", + "type": "file" + }, + { + "path": "docs/contracts/v1/guides/06-token-listing.md", + "title": "06-token-listing", + "type": "file" + }, + { + "path": "docs/contracts/v1/guides/01-connect-to-uniswap.md", + "title": "Factory Contract", + "type": "file" + }, + { + "path": "docs/contracts/v1/guides/03-trade-tokens.md", + "title": "03-trade-tokens", + "type": "file" + }, + { + "path": "docs/contracts/v1/guides/05-iframe-integration.md", + "title": "Why You May Want This", + "type": "file" + }, + { + "path": "docs/contracts/v1/guides/02-pool-liquidity.md", + "title": "Formalized Model", + "type": "file" + }, + { + "path": "docs/contracts/v1/reference/03-interfaces.md", + "title": "Factory", + "type": "file" + }, + { + "path": "docs/contracts/v1/reference/01-factory.md", + "title": "initializeFactory", + "type": "file" + }, + { + "path": "docs/contracts/v1/reference/02-exchange.md", + "title": "setup", + "type": "file" + }, + { + "path": "docs/contracts/universal-router/02-technical-reference.md", + "title": "02-technical-reference", + "type": "file" + }, + { + "path": "docs/contracts/universal-router/01-overview.md", + "title": "01-overview", + "type": "file" + }, + { + "path": "docs/contracts/uniswapx/guides/createFiller.md", + "title": "Integrating as a Filler", + "type": "file" + }, + { + "path": "docs/contracts/uniswapx/guides/webhooks.md", + "title": "Signed Order Webhook Notifications", + "type": "file" + }, + { + "path": "docs/contracts/uniswapx/guides/priorityorderreactor.md", + "title": "What is the Priority Order Reactor?", + "type": "file" + }, + { + "path": "docs/contracts/uniswapx/guides/arbitrumfiller.md", + "title": "Arbitrum Pilot Overview", + "type": "file" + }, + { + "path": "docs/contracts/uniswapx/guides/becomeQuoter.md", + "title": "Quoting on UniswapX", + "type": "file" + }, + { + "path": "docs/contracts/uniswapx/01-overview.md", + "title": "UniswapX", + "type": "file" + }, + { + "path": "docs/contracts/v2/overview.md", + "title": "The Uniswap V2 Smart Contracts", + "type": "file" + }, + { + "path": "docs/contracts/v2/guides/smart-contract-integration/07-supporting-meta-transactions.md", + "title": "ERC-712", + "type": "file" + }, + { + "path": "docs/contracts/v2/guides/smart-contract-integration/05-using-flash-swaps.md", + "title": "Triggering a Flash Swap", + "type": "file" + }, + { + "path": "docs/contracts/v2/guides/smart-contract-integration/02-trading-from-a-smart-contract.md", + "title": "Using the Router", + "type": "file" + }, + { + "path": "docs/contracts/v2/guides/smart-contract-integration/01-quick-start.md", + "title": "01-quick-start", + "type": "file" + }, + { + "path": "docs/contracts/v2/guides/smart-contract-integration/04-building-an-oracle.md", + "title": "Understanding requirements", + "type": "file" + }, + { + "path": "docs/contracts/v2/guides/smart-contract-integration/06-getting-pair-addresses.md", + "title": "getPair", + "type": "file" + }, + { + "path": "docs/contracts/v2/guides/smart-contract-integration/03-providing-liquidity.md", + "title": "Providing Liquidity", + "type": "file" + }, + { + "path": "docs/contracts/v2/guides/interface-integration/01-using-the-api.md", + "title": "01-using-the-api", + "type": "file" + }, + { + "path": "docs/contracts/v2/guides/interface-integration/02-custom-interface-linking.md", + "title": "Query Parameters", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/01-protocol-overview/03-smart-contracts.md", + "title": "Core", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/01-protocol-overview/01-how-uniswap-works.md", + "title": "Further reading", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/01-protocol-overview/04-glossary.md", + "title": "04-glossary", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/01-protocol-overview/02-ecosystem-participants.md", + "title": "Liquidity Providers", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/03-advanced-topics/02-pricing.md", + "title": "How are prices determined?", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/03-advanced-topics/04-security.md", + "title": "Audit & Formal Verification", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/03-advanced-topics/01-fees.md", + "title": "01-fees", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/03-advanced-topics/03-understanding-returns.md", + "title": "Risks", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/03-advanced-topics/05-math.md", + "title": "05-math", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/03-advanced-topics/06-research.md", + "title": "Uniswap's Financial Alchemy", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/02-core-concepts/01-swaps.md", + "title": "Introduction", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/02-core-concepts/04-oracles.md", + "title": "Introduction", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/02-core-concepts/02-pools.md", + "title": "Introduction", + "type": "file" + }, + { + "path": "docs/contracts/v2/concepts/02-core-concepts/03-flash-swaps.md", + "title": "Examples", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/Governance/governance-reference.md", + "title": "Key Events", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/API/02-entities.md", + "title": "02-entities", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/API/03-queries.md", + "title": "03-queries", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/API/01-overview.md", + "title": "01-overview", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/smart-contracts/01-factory.md", + "title": "Factory", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/smart-contracts/06-router02.md", + "title": "Code", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/smart-contracts/02-pair.md", + "title": "Code", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/smart-contracts/04-library.md", + "title": "Library", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/smart-contracts/05-router01.md", + "title": "Code", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/smart-contracts/08-deployment-addresses.md", + "title": "Uniswap v2 Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/smart-contracts/07-common-errors.md", + "title": "UniswapV2: K", + "type": "file" + }, + { + "path": "docs/contracts/v2/reference/smart-contracts/03-pair-erc-20.md", + "title": "Code", + "type": "file" + }, + { + "path": "docs/contracts/v4/guides/hooks/01-your-first-hook.md", + "title": "Introduction", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/types/Slot0.md", + "title": "Slot0", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/types/PoolId.md", + "title": "PoolId", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/CustomCurveHook.md", + "title": "CustomCurveHook", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/DeltaReturningHook.md", + "title": "DeltaReturningHook", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/PoolNestedActionsTest.md", + "title": "NestedActionExecutor", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/SkipCallsTestHook.md", + "title": "SkipCallsTestHook", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/SwapRouterNoChecks.md", + "title": "SwapRouterNoChecks", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/PoolTestBase.md", + "title": "PoolTestBase", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/PoolClaimsTest.md", + "title": "PoolClaimsTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/PoolTakeTest.md", + "title": "PoolTakeTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/LPFeeTakingHook.md", + "title": "LPFeeTakingHook", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/ProxyPoolManager.md", + "title": "ProxyPoolManager", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/PoolSwapTest.md", + "title": "PoolSwapTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/HooksTest.md", + "title": "HooksTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/ProtocolFeeControllerTest.md", + "title": "RevertingProtocolFeeControllerTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/MockContract.md", + "title": "MockContract", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/PoolEmptyUnlockTest.md", + "title": "PoolEmptyUnlockTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/BaseTestHooks.md", + "title": "BaseTestHooks", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/TickOverflowSafetyEchidnaTest.md", + "title": "TickOverflowSafetyEchidnaTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/LiquidityMathTest.md", + "title": "LiquidityMathTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/Fuzzers.md", + "title": "Fuzzers", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/CurrencyTest.md", + "title": "CurrencyTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/NoDelegateCallTest.md", + "title": "NoDelegateCallTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/EmptyTestHooks.md", + "title": "EmptyTestHooks", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/DynamicFeesTestHook.md", + "title": "DynamicFeesTestHook", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/TestERC20.md", + "title": "TestERC20", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/ProtocolFeesImplementation.md", + "title": "ProtocolFeesImplementation", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/PoolModifyLiquidityTest.md", + "title": "PoolModifyLiquidityTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/EmptyRevertContract.md", + "title": "EmptyRevertContract", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/TickMathEchidnaTest.md", + "title": "TickMathEchidnaTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/TickMathTest.md", + "title": "TickMathTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/NativeERC20.md", + "title": "NativeERC20", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/PoolModifyLiquidityTestNoChecks.md", + "title": "PoolModifyLiquidityTestNoChecks", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/FeeTakingHook.md", + "title": "FeeTakingHook", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/MockHooks.md", + "title": "MockHooks", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/PoolDonateTest.md", + "title": "PoolDonateTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/TestInvalidERC20.md", + "title": "TestInvalidERC20", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/SqrtPriceMathEchidnaTest.md", + "title": "SqrtPriceMathEchidnaTest", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/DynamicReturnFeeTestHook.md", + "title": "DynamicReturnFeeTestHook", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/MockERC6909Claims.md", + "title": "MockERC6909Claims", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/test/ActionsRouter.md", + "title": "ActionsRouter", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/Exttload.md", + "title": "Exttload", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/ProtocolFees.md", + "title": "ProtocolFees", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/Lock.md", + "title": "Lock", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/UnsafeMath.md", + "title": "UnsafeMath", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/Position.md", + "title": "Position", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/FixedPoint96.md", + "title": "FixedPoint96", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/LiquidityMath.md", + "title": "LiquidityMath", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/FullMath.md", + "title": "FullMath", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/SwapMath.md", + "title": "SwapMath", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/SqrtPriceMath.md", + "title": "SqrtPriceMath", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/Pool.md", + "title": "Pool", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/SafeCast.md", + "title": "SafeCast", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/FixedPoint128.md", + "title": "FixedPoint128", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/CustomRevert.md", + "title": "CustomRevert", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/ParseBytes.md", + "title": "ParseBytes", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/TickMath.md", + "title": "TickMath", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/NonzeroDeltaCount.md", + "title": "NonzeroDeltaCount", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/Hooks.md", + "title": "Hooks", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/TransientStateLibrary.md", + "title": "TransientStateLibrary", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/BitMath.md", + "title": "BitMath", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/CurrencyDelta.md", + "title": "CurrencyDelta", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/StateLibrary.md", + "title": "StateLibrary", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/TickBitmap.md", + "title": "TickBitmap", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/LPFeeLibrary.md", + "title": "LPFeeLibrary", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/CurrencyReserves.md", + "title": "CurrencyReserves", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/ProtocolFeeLibrary.md", + "title": "ProtocolFeeLibrary", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/libraries/BipsLibrary.md", + "title": "BipsLibrary", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/Extsload.md", + "title": "Extsload", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/NoDelegateCall.md", + "title": "NoDelegateCall", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/ERC6909.md", + "title": "ERC6909", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/PoolManager.md", + "title": "PoolManager", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/ERC6909Claims.md", + "title": "ERC6909Claims", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/interfaces/IExttload.md", + "title": "IExttload", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/interfaces/IPoolManager.md", + "title": "IPoolManager", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/interfaces/IProtocolFeeController.md", + "title": "IProtocolFeeController", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/interfaces/IUnlockCallback.md", + "title": "IUnlockCallback", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/interfaces/IProtocolFees.md", + "title": "IProtocolFees", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/interfaces/IHooks.md", + "title": "IHooks", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/interfaces/IERC20Minimal.md", + "title": "IERC20Minimal", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/interfaces/IExtsload.md", + "title": "IExtsload", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/core/interfaces/IERC6909Claims.md", + "title": "IERC6909Claims", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/PositionManager.md", + "title": "PositionManager", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/libraries/PathKey.md", + "title": "PathKey", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/libraries/ERC721PermitHash.md", + "title": "ERC721PermitHash", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/libraries/PositionInfoLibrary.md", + "title": "PositionInfoLibrary", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/libraries/PositionConfigId.md", + "title": "PositionConfigId", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/libraries/PositionConfig.md", + "title": "PositionConfig", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/libraries/QuoterRevert.md", + "title": "QuoterRevert", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/libraries/ActionConstants.md", + "title": "ActionConstants", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/libraries/CalldataDecoder.md", + "title": "CalldataDecoder", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/libraries/Actions.md", + "title": "Actions", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/libraries/SlippageCheck.md", + "title": "SlippageCheck", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/libraries/Locker.md", + "title": "Locker", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/lens/Quoter.md", + "title": "Quoter", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/lens/StateView.md", + "title": "StateView", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/V4Router.md", + "title": "V4Router", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/BaseV4Quoter.md", + "title": "BaseV4Quoter", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/Multicall_v4.md", + "title": "Multicall_v4", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/SafeCallback.md", + "title": "SafeCallback", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/ImmutableState.md", + "title": "ImmutableState", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/DeltaResolver.md", + "title": "DeltaResolver", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/BaseHook.md", + "title": "BaseHook", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/EIP712_v4.md", + "title": "EIP712_v4", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/ReentrancyLock.md", + "title": "ReentrancyLock", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/Permit2Forwarder.md", + "title": "Permit2Forwarder", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/BaseActionsRouter.md", + "title": "BaseActionsRouter", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/PoolInitializer.md", + "title": "PoolInitializer", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/UnorderedNonce.md", + "title": "UnorderedNonce", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/ERC721Permit_v4.md", + "title": "ERC721Permit_v4", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/base/Notifier.md", + "title": "Notifier", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/interfaces/IPositionManager.md", + "title": "IPositionManager", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/interfaces/IMulticall_v4.md", + "title": "IMulticall_v4", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/interfaces/IEIP712_v4.md", + "title": "IEIP712_v4", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/interfaces/IQuoter.md", + "title": "IQuoter", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/interfaces/ISubscriber.md", + "title": "ISubscriber", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/interfaces/INotifier.md", + "title": "INotifier", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/interfaces/IERC721Permit_v4.md", + "title": "IERC721Permit_v4", + "type": "file" + }, + { + "path": "docs/contracts/v4/reference/periphery/interfaces/IV4Router.md", + "title": "IV4Router", + "type": "file" + }, + { + "path": "docs/contracts/v3/overview.md", + "title": "The Uniswap V3 Smart Contracts", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/swaps/multihop-swaps.md", + "title": "multihop-swaps", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/swaps/single-swaps.md", + "title": "single-swaps", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/providing-liquidity/setting-up-your-contract.md", + "title": "setting-up-your-contract", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/providing-liquidity/mint-a-new-position.md", + "title": "mint-a-new-position", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/providing-liquidity/decrease-liquidity.md", + "title": "decrease-liquidity", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/providing-liquidity/increase-liquidity.md", + "title": "increase-liquidity", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/providing-liquidity/the-full-contract.md", + "title": "the-full-contract", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/providing-liquidity/collect-fees.md", + "title": "collect-fees", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/liquidity-mining/overview.md", + "title": "overview", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/governance/license-modifications.md", + "title": "license-modifications", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/flash-integrations/calling-flash.md", + "title": "calling-flash", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/flash-integrations/Inheritance-constructors.md", + "title": "Inheritance-constructors", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/flash-integrations/final-contract.md", + "title": "final-contract", + "type": "file" + }, + { + "path": "docs/contracts/v3/guides/flash-integrations/flash-callback.md", + "title": "The full function", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/overview.md", + "title": "overview", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/UniswapV3Pool.md", + "title": "UniswapV3Pool", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/UniswapV3Factory.md", + "title": "UniswapV3Factory", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/UnsafeMath.md", + "title": "UnsafeMath", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/Position.md", + "title": "Position", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/FixedPoint96.md", + "title": "FixedPoint96", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/LiquidityMath.md", + "title": "LiquidityMath", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/Tick.md", + "title": "Tick", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/FullMath.md", + "title": "FullMath", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/SwapMath.md", + "title": "SwapMath", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/LowGasSafeMath.md", + "title": "LowGasSafeMath", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/SqrtPriceMath.md", + "title": "SqrtPriceMath", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/Oracle.md", + "title": "Oracle", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/SafeCast.md", + "title": "SafeCast", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/FixedPoint128.md", + "title": "FixedPoint128", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/TickMath.md", + "title": "TickMath", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/BitMath.md", + "title": "BitMath", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/TransferHelper.md", + "title": "TransferHelper", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/TickBitmap.md", + "title": "TickBitmap", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/libraries/SecondsOutside.md", + "title": "SecondsOutside", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/UniswapV3PoolDeployer.md", + "title": "UniswapV3PoolDeployer", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/IUniswapV3Pool.md", + "title": "IUniswapV3Pool", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/IUniswapV3Factory.md", + "title": "IUniswapV3Factory", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/IUniswapV3PoolDeployer.md", + "title": "IUniswapV3PoolDeployer", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/IERC20Minimal.md", + "title": "IERC20Minimal", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/callback/IUniswapV3SwapCallback.md", + "title": "IUniswapV3SwapCallback", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/callback/IUniswapV3MintCallback.md", + "title": "IUniswapV3MintCallback", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/callback/IUniswapV3FlashCallback.md", + "title": "IUniswapV3FlashCallback", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/pool/IUniswapV3PoolState.md", + "title": "IUniswapV3PoolState", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/pool/IUniswapV3PoolEvents.md", + "title": "IUniswapV3PoolEvents", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/pool/IUniswapV3PoolImmutables.md", + "title": "IUniswapV3PoolImmutables", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/pool/IUniswapV3PoolOwnerActions.md", + "title": "IUniswapV3PoolOwnerActions", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/pool/IUniswapV3PoolActions.md", + "title": "IUniswapV3PoolActions", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/core/interfaces/pool/IUniswapV3PoolDerivedState.md", + "title": "IUniswapV3PoolDerivedState", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/NonfungibleTokenPositionDescriptor.md", + "title": "NonfungibleTokenPositionDescriptor", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/TestUniswapV3Callee.md", + "title": "TestUniswapV3Callee", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/NFTDescriptorTest.md", + "title": "NFTDescriptorTest", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/Base64Test.md", + "title": "Base64Test", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/TickLensTest.md", + "title": "TickLensTest", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/LiquidityAmountsTest.md", + "title": "LiquidityAmountsTest", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/TestERC20PermitAllowed.md", + "title": "TestERC20PermitAllowed", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/MockTimeSwapRouter.md", + "title": "MockTimeSwapRouter", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/TestPositionNFTOwner.md", + "title": "TestPositionNFTOwner", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/MockTimeNonfungiblePositionManager.md", + "title": "MockTimeNonfungiblePositionManager", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/PoolAddressTest.md", + "title": "PoolAddressTest", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/TestERC20.md", + "title": "TestERC20", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/TestCallbackValidation.md", + "title": "TestCallbackValidation", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/PeripheryImmutableStateTest.md", + "title": "PeripheryImmutableStateTest", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/TestERC20Metadata.md", + "title": "TestERC20Metadata", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/TestMulticall.md", + "title": "TestMulticall", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/PathTest.md", + "title": "PathTest", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/test/SelfPermitTest.md", + "title": "SelfPermitTest", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/V3Migrator.md", + "title": "V3Migrator", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/WeightedOracleLibrary.md", + "title": "WeightedOracleLibrary", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/LiquidityAmounts.md", + "title": "LiquidityAmounts", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/CallbackValidation.md", + "title": "CallbackValidation", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/NFTDescriptor.md", + "title": "NFTDescriptor", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/BytesLib.md", + "title": "BytesLib", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/PoolAddress.md", + "title": "PoolAddress", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/OracleLibrary.md", + "title": "OracleLibrary", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/NFTSVG.md", + "title": "NFTSVG", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/HexStrings.md", + "title": "HexStrings", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/Path.md", + "title": "Path", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/PositionKey.md", + "title": "PositionKey", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/Base64.md", + "title": "Base64", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/PoolTicksCounter.md", + "title": "PoolTicksCounter", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/TransferHelper.md", + "title": "TransferHelper", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/TokenRatioSortOrder.md", + "title": "TokenRatioSortOrder", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/libraries/ChainId.md", + "title": "ChainId", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/SwapRouter.md", + "title": "SwapRouter", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/lens/Quoter.md", + "title": "Quoter", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/lens/TickLens.md", + "title": "TickLens", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/lens/QuoterV2.md", + "title": "QuoterV2", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/NonfungiblePositionManager.md", + "title": "NonfungiblePositionManager", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/staker/UniswapV3Staker.md", + "title": "Uniswap V3 Staker Contract", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/staker/libraries/NFTPositionInfo.md", + "title": "NFTPositionInfo", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/staker/libraries/RewardMath.md", + "title": "RewardMath", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/staker/libraries/IncentiveId.md", + "title": "IncentiveId", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/staker/Design.md", + "title": "Uniswap V3 Staker Design", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/staker/interfaces/IUniswapV3Staker.md", + "title": "IUniswapV3Staker", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/base/PeripheryPayments.md", + "title": "PeripheryPayments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/base/ERC721Permit.md", + "title": "ERC721Permit", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/base/SelfPermit.md", + "title": "SelfPermit", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/base/PeripheryImmutableState.md", + "title": "PeripheryImmutableState", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/base/Multicall.md", + "title": "Multicall", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/base/PeripheryPaymentsWithFee.md", + "title": "PeripheryPaymentsWithFee", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/base/LiquidityManagement.md", + "title": "LiquidityManagement", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/base/PoolInitializer.md", + "title": "PoolInitializer", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/base/BlockTimestamp.md", + "title": "BlockTimestamp", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/ISwapRouter.md", + "title": "ISwapRouter", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/IV3Migrator.md", + "title": "IV3Migrator", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/ITickLens.md", + "title": "ITickLens", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/IMulticall.md", + "title": "IMulticall", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/ISelfPermit.md", + "title": "ISelfPermit", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/IERC721Permit.md", + "title": "IERC721Permit", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/IQuoter.md", + "title": "IQuoter", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/IERC20Metadata.md", + "title": "IERC20Metadata", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/IQuoterV2.md", + "title": "IQuoterV2", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/IPeripheryImmutableState.md", + "title": "IPeripheryImmutableState", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/IPeripheryPayments.md", + "title": "IPeripheryPayments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/IPeripheryPaymentsWithFee.md", + "title": "IPeripheryPaymentsWithFee", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/external/IERC1271.md", + "title": "IERC1271", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/external/IERC20PermitAllowed.md", + "title": "IERC20PermitAllowed", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/external/IWETH9.md", + "title": "IWETH9", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/INonfungiblePositionManager.md", + "title": "INonfungiblePositionManager", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/INonfungibleTokenPositionDescriptor.md", + "title": "INonfungibleTokenPositionDescriptor", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/periphery/interfaces/IPoolInitializer.md", + "title": "IPoolInitializer", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/governance/overview.md", + "title": "Key Events", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/error-codes.md", + "title": "error-codes", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/deployments.md", + "title": "Uniswap Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/Celo-Deployments.md", + "title": "Uniswap Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/Arbitrum-Deployments.md", + "title": "Uniswap Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/ZKsync-Deployments.md", + "title": "Uniswap Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/Zora-Deployments.md", + "title": "Uniswap Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/Base-Deployments.md", + "title": "Uniswap Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/BNB-Binance-Deployments.md", + "title": "Uniswap Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/Optimism-Deployments.md", + "title": "Uniswap Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/Ethereum-Deployments.md", + "title": "Uniswap Ethereum Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/Blast-Deployments.md", + "title": "Uniswap Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/Polygon-Deployments.md", + "title": "Uniswap Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/v3/reference/deployments/AVAX-Deployments.md", + "title": "Uniswap Contract Deployments", + "type": "file" + }, + { + "path": "docs/contracts/permit2/overview.md", + "title": "overview", + "type": "file" + }, + { + "path": "docs/contracts/permit2/reference/signature-transfer.md", + "title": "signature-transfer", + "type": "file" + }, + { + "path": "docs/contracts/permit2/reference/allowance-transfer.md", + "title": "allowance-transfer", + "type": "file" + }, + { + "path": "docs/sdk/v1/overview.md", + "title": "The Uniswap V1 SDK", + "type": "file" + }, + { + "path": "docs/sdk/v1/guides/getting-started.md", + "title": "Overview", + "type": "file" + }, + { + "path": "docs/sdk/v1/reference/02-data.md", + "title": "getTokenReserves", + "type": "file" + }, + { + "path": "docs/sdk/v1/reference/08-types.md", + "title": "08-types", + "type": "file" + }, + { + "path": "docs/sdk/v1/reference/04-format.md", + "title": "formatSignificant", + "type": "file" + }, + { + "path": "docs/sdk/v1/reference/05-orchestration.md", + "title": "tradeExactEthForTokensWithData", + "type": "file" + }, + { + "path": "docs/sdk/v1/reference/06-transact.md", + "title": "getExecutionDetails", + "type": "file" + }, + { + "path": "docs/sdk/v1/reference/03-computation.md", + "title": "getMarketDetails", + "type": "file" + }, + { + "path": "docs/sdk/v1/reference/07-constants.md", + "title": "07-constants", + "type": "file" + }, + { + "path": "docs/sdk/swap-widget/overview.md", + "title": "The Uniswap Swap Widget", + "type": "file" + }, + { + "path": "docs/sdk/swap-widget/reference/v2.md", + "title": "Swap Widget API V2 Reference", + "type": "file" + }, + { + "path": "docs/sdk/swap-widget/reference/v1.md", + "title": "Swap Widget API V1 Reference (Deprecated)", + "type": "file" + }, + { + "path": "docs/sdk/core/overview.md", + "title": "The Uniswap Core SDK", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/overview.md", + "title": "overview", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/classes/NativeCurrency.md", + "title": "Class: NativeCurrency", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/classes/Price.md", + "title": "Class: Price", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/classes/Fraction.md", + "title": "Class: Fraction", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/classes/Token.md", + "title": "Class: Token", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/classes/Ether.md", + "title": "Class: Ether", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/classes/CurrencyAmount.md", + "title": "Class: CurrencyAmount", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/classes/Percent.md", + "title": "Class: Percent", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/enums/NativeCurrencyName.md", + "title": "Enumeration: NativeCurrencyName", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/enums/TradeType.md", + "title": "Enumeration: TradeType", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/enums/Rounding.md", + "title": "Enumeration: Rounding", + "type": "file" + }, + { + "path": "docs/sdk/core/reference/enums/ChainId.md", + "title": "Enumeration: ChainId", + "type": "file" + }, + { + "path": "docs/sdk/v2/overview.md", + "title": "The Uniswap V2 SDK", + "type": "file" + }, + { + "path": "docs/sdk/v2/guides/05-getting-pair-addresses.md", + "title": "getPair", + "type": "file" + }, + { + "path": "docs/sdk/v2/guides/04-trading.md", + "title": "Sending a Transaction to the Router", + "type": "file" + }, + { + "path": "docs/sdk/v2/guides/02-fetching-data.md", + "title": "Case 1: Tokens", + "type": "file" + }, + { + "path": "docs/sdk/v2/guides/01-quick-start.md", + "title": "Installation", + "type": "file" + }, + { + "path": "docs/sdk/v2/guides/03-pricing.md", + "title": "Mid Price", + "type": "file" + }, + { + "path": "docs/sdk/v2/reference/03-route.md", + "title": "Example", + "type": "file" + }, + { + "path": "docs/sdk/v2/reference/04-trade.md", + "title": "Example", + "type": "file" + }, + { + "path": "docs/sdk/v2/reference/02-pair.md", + "title": "Example", + "type": "file" + }, + { + "path": "docs/sdk/v2/reference/01-getting-started.md", + "title": "01-getting-started", + "type": "file" + }, + { + "path": "docs/sdk/v2/reference/05-other-exports.md", + "title": "FACTORY_ADDRESS", + "type": "file" + }, + { + "path": "docs/sdk/v3/overview.md", + "title": "The Uniswap V3 SDK", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/advanced/02-pool-data.md", + "title": "02-pool-data", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/advanced/05-range-orders.md", + "title": "05-range-orders", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/advanced/04-price-oracle.md", + "title": "04-price-oracle", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/advanced/01-introduction.md", + "title": "01-introduction", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/advanced/03-active-liquidity.md", + "title": "03-active-liquidity", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/03-web3-development-basics.md", + "title": "03-web3-development-basics", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/swaps/03-routing.md", + "title": "03-routing", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/swaps/01-quoting.md", + "title": "01-quoting", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/swaps/02-trading.md", + "title": "02-trading", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/02-local-development.md", + "title": "02-local-development", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/01-background.md", + "title": "01-background", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/liquidity/06-swap-and-add-liquidity.md", + "title": "06-swap-and-add-liquidity", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/liquidity/05-collecting-fees.md", + "title": "05-collecting-fees", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/liquidity/03-fetching-positions.md", + "title": "03-fetching-positions", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/liquidity/04-modifying-position.md", + "title": "04-modifying-position", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/liquidity/02-minting-position.md", + "title": "02-minting-position", + "type": "file" + }, + { + "path": "docs/sdk/v3/guides/liquidity/01-position-data.md", + "title": "01-position-data", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/overview.md", + "title": "overview", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/Staker.md", + "title": "Class: Staker", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/Position.md", + "title": "Class: Position", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/LiquidityMath.md", + "title": "Class: LiquidityMath", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/Tick.md", + "title": "Class: Tick", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/SelfPermit.md", + "title": "Class: SelfPermit", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/FullMath.md", + "title": "Class: FullMath", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/SwapMath.md", + "title": "Class: SwapMath", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/SqrtPriceMath.md", + "title": "Class: SqrtPriceMath", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/SwapQuoter.md", + "title": "Class: SwapQuoter", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/TickList.md", + "title": "Class: TickList", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/TickLibrary.md", + "title": "Class: TickLibrary", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/TickListDataProvider.md", + "title": "Class: TickListDataProvider", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/Pool.md", + "title": "Class: Pool", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/SwapRouter.md", + "title": "Class: SwapRouter", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/NoTickDataProvider.md", + "title": "Class: NoTickDataProvider", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/Payments.md", + "title": "Class: Payments", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/Trade.md", + "title": "Class: Trade", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/NonfungiblePositionManager.md", + "title": "Class: NonfungiblePositionManager", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/TickMath.md", + "title": "Class: TickMath", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/Multicall.md", + "title": "Class: Multicall", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/PositionLibrary.md", + "title": "Class: PositionLibrary", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/classes/Route.md", + "title": "Class: Route", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/enums/FeeAmount.md", + "title": "Enumeration: FeeAmount", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/TickConstructorArgs.md", + "title": "Interface: TickConstructorArgs", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/WithdrawOptions.md", + "title": "Interface: WithdrawOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/ClaimOptions.md", + "title": "Interface: ClaimOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/TickDataProvider.md", + "title": "Interface: TickDataProvider", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/SwapOptions.md", + "title": "Interface: SwapOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/RemoveLiquidityOptions.md", + "title": "Interface: RemoveLiquidityOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/NFTPermitOptions.md", + "title": "Interface: NFTPermitOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/CollectOptions.md", + "title": "Interface: CollectOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/IncreaseSpecificOptions.md", + "title": "Interface: IncreaseSpecificOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/AllowedPermitArguments.md", + "title": "Interface: AllowedPermitArguments", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/BestTradeOptions.md", + "title": "Interface: BestTradeOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/SafeTransferOptions.md", + "title": "Interface: SafeTransferOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/FeeOptions.md", + "title": "Interface: FeeOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/StandardPermitArguments.md", + "title": "Interface: StandardPermitArguments", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/MintSpecificOptions.md", + "title": "Interface: MintSpecificOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/QuoteOptions.md", + "title": "Interface: QuoteOptions", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/IncentiveKey.md", + "title": "Interface: IncentiveKey", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/MethodParameters.md", + "title": "Interface: MethodParameters", + "type": "file" + }, + { + "path": "docs/sdk/v3/reference/interfaces/CommonAddLiquidityOptions.md", + "title": "Interface: CommonAddLiquidityOptions", + "type": "file" + }, + { + "path": "docs/sdk/web3-react/overview.md", + "title": "`web3-react`", + "type": "file" + }, + { + "path": "docs/sdk/web3-react/guides/01-connect-wallet.md", + "title": "01-connect-wallet", + "type": "file" + }, + { + "path": "docs/sdk/web3-react/guides/03-switch-chains.md", + "title": "03-switch-chains", + "type": "file" + }, + { + "path": "docs/sdk/web3-react/guides/02-connectors.md", + "title": "02-connectors", + "type": "file" + }, + { + "path": "docs/concepts/resources.md", + "title": "resources", + "type": "file" + }, + { + "path": "docs/concepts/glossary.md", + "title": "glossary", + "type": "file" + }, + { + "path": "docs/concepts/uniswap-protocol.md", + "title": "uniswap-protocol", + "type": "file" + }, + { + "path": "docs/concepts/protocol/concentrated-liquidity.md", + "title": "concentrated-liquidity", + "type": "file" + }, + { + "path": "docs/concepts/protocol/oracle.md", + "title": "oracle", + "type": "file" + }, + { + "path": "docs/concepts/protocol/swaps.md", + "title": "swaps", + "type": "file" + }, + { + "path": "docs/concepts/protocol/integration-issues.md", + "title": "integration-issues", + "type": "file" + }, + { + "path": "docs/concepts/protocol/fees.md", + "title": "fees", + "type": "file" + }, + { + "path": "docs/concepts/protocol/range-orders.md", + "title": "range-orders", + "type": "file" + }, + { + "path": "docs/concepts/research.md", + "title": "Uniswap's Financial Alchemy", + "type": "file" + }, + { + "path": "docs/concepts/what-is-uniswap.md", + "title": "what-is-uniswap", + "type": "file" + }, + { + "path": "docs/concepts/governance/03-guide-to-voting.md", + "title": "03-guide-to-voting", + "type": "file" + }, + { + "path": "docs/concepts/governance/05-adversarial-circumstances.md", + "title": "05-adversarial-circumstances", + "type": "file" + }, + { + "path": "docs/concepts/governance/02-process.md", + "title": "02-process", + "type": "file" + }, + { + "path": "docs/concepts/governance/07-changelog.md", + "title": "07-changelog", + "type": "file" + }, + { + "path": "docs/concepts/governance/01-overview.md", + "title": "01-overview", + "type": "file" + }, + { + "path": "docs/concepts/governance/04-glossary.md", + "title": "04-glossary", + "type": "file" + }, + { + "path": "docs/api/subgraph/overview.md", + "title": "The Uniswap Subgraph", + "type": "file" + }, + { + "path": "docs/api/subgraph/guides/subgraph-example.md", + "title": "Subgraph Query Examples", + "type": "file" + } +] diff --git a/generate_file_tree.sh b/generate_file_tree.sh new file mode 100644 index 000000000..f7d5be7ec --- /dev/null +++ b/generate_file_tree.sh @@ -0,0 +1,43 @@ +TARGET_FOLDER="docs" + +# Initialize an empty JSON array +echo "[]" > file_tree.json + +# Traverse all files and folders in the target folder +find "$TARGET_FOLDER" -type d | while read -r dir; do + # Check for _category_.json in the folder + if [ -f "$dir/_category_.json" ]; then + # Extract the 'label' field from the _category_.json + label=$(jq -r '.label' "$dir/_category_.json") + + # If label is null or empty, default to folder name + [ -z "$label" ] && label=$(basename "$dir") + + # Add folder to the JSON array + jq --arg path "$dir" --arg title "$label" \ + '. += [{"path": $path, "title": $title, "type": "folder"}]' \ + file_tree.json > tmp.json && mv tmp.json file_tree.json + fi +done + +# Traverse all Markdown files in the target folder +find "$TARGET_FOLDER" -type f -name "*.md" | while read -r file; do + # Extract file path relative to the folder + relative_path="${file#"$TARGET_FOLDER/"}" + + # Extract the title from the Markdown file (e.g., first-level heading) + title=$(grep -m 1 "^# " "$file" | sed 's/^# //') + + # If no title is found, use the filename without extension + if [ -z "$title" ]; then + title=$(basename "$file" .md) + fi + + # Add a JSON object for the file + jq --arg path "$relative_path" --arg title "$title" \ + '. += [{"path": $path, "title": $title, "type": "file"}]' \ + file_tree.json > tmp.json && mv tmp.json file_tree.json +done + +# Output the generated JSON +cat file_tree.json \ No newline at end of file diff --git a/src/css/custom.css b/src/css/custom.css index 3f14cd5e0..5fc976aa8 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -119,3 +119,9 @@ .col.docItemCol_src-theme-DocItem-Layout-styles-module { @apply sm:!max-w-full md:!max-w-[75%]; } +.container { + @apply !mt-nav-h; +} +.theme-doc-footer-edit-meta-row { + @apply !hidden; +} diff --git a/src/theme/DocItem/Content/index.js b/src/theme/DocItem/Content/index.js deleted file mode 100644 index c165e1444..000000000 --- a/src/theme/DocItem/Content/index.js +++ /dev/null @@ -1,37 +0,0 @@ -import React from 'react' -import clsx from 'clsx' -import { ThemeClassNames } from '@docusaurus/theme-common' -import { useDoc } from '@docusaurus/theme-common/internal' -import Heading from '@theme/Heading' -import MDXContent from '@theme/MDXContent' -/** - Title can be declared inside md content or declared through - front matter and added manually. To make both cases consistent, - the added title is added under the same div.markdown block - See https://github.com/facebook/docusaurus/pull/4882#issuecomment-853021120 - - We render a "synthetic title" if: - - user doesn't ask to hide it with front matter - - the markdown content does not already contain a top-level h1 heading -*/ -function useSyntheticTitle() { - const { metadata, frontMatter, contentTitle } = useDoc() - const shouldRender = !frontMatter.hide_title && typeof contentTitle === 'undefined' - if (!shouldRender) { - return null - } - return metadata.title -} -export default function DocItemContent({ children }) { - const syntheticTitle = useSyntheticTitle() - return ( -
- {syntheticTitle && ( -
- {syntheticTitle} -
- )} - {children} -
- ) -} diff --git a/src/theme/DocItem/Footer/index.js b/src/theme/DocItem/Footer/index.js deleted file mode 100644 index a183d620d..000000000 --- a/src/theme/DocItem/Footer/index.js +++ /dev/null @@ -1,54 +0,0 @@ -import React from 'react' -import clsx from 'clsx' -import { ThemeClassNames } from '@docusaurus/theme-common' -import { useDoc } from '@docusaurus/theme-common/internal' -import LastUpdated from '@theme/LastUpdated' -import TagsListInline from '@theme/TagsListInline' -import styles from './styles.module.css' -function TagsRow(props) { - return ( -
-
- -
-
- ) -} -function EditMetaRow({ editUrl, lastUpdatedAt, lastUpdatedBy, formattedLastUpdatedAt }) { - return ( -
-
- {(lastUpdatedAt || lastUpdatedBy) && ( - - )} -
-
- ) -} -export default function DocItemFooter() { - const { metadata } = useDoc() - const { editUrl, lastUpdatedAt, formattedLastUpdatedAt, lastUpdatedBy, tags } = metadata - const canDisplayTagsRow = tags.length > 0 - const canDisplayEditMetaRow = !!(editUrl || lastUpdatedAt || lastUpdatedBy) - const canDisplayFooter = canDisplayTagsRow || canDisplayEditMetaRow - if (!canDisplayFooter) { - return null - } - return ( -
- {canDisplayTagsRow && } - {canDisplayEditMetaRow && ( - - )} -
- ) -} diff --git a/src/theme/DocItem/Footer/styles.module.css b/src/theme/DocItem/Footer/styles.module.css deleted file mode 100644 index 7c1e96441..000000000 --- a/src/theme/DocItem/Footer/styles.module.css +++ /dev/null @@ -1,11 +0,0 @@ -.lastUpdated { - margin-top: 0.2rem; - font-style: italic; - font-size: smaller; -} - -@media (min-width: 997px) { - .lastUpdated { - text-align: right; - } -} diff --git a/src/theme/DocItem/Metadata/index.js b/src/theme/DocItem/Metadata/index.js deleted file mode 100644 index 93e5583c6..000000000 --- a/src/theme/DocItem/Metadata/index.js +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react' -import { PageMetadata } from '@docusaurus/theme-common' -import { useDoc } from '@docusaurus/theme-common/internal' -export default function DocItemMetadata() { - const { metadata, frontMatter, assets } = useDoc() - return ( - - ) -} diff --git a/src/theme/DocItem/Paginator/index.js b/src/theme/DocItem/Paginator/index.js deleted file mode 100644 index 204fc26f0..000000000 --- a/src/theme/DocItem/Paginator/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react' -import { useDoc } from '@docusaurus/theme-common/internal' -import DocPaginator from '@theme/DocPaginator' -/** - * This extra component is needed, because should remain generic. - * DocPaginator is used in non-docs contexts too: generated-index pages... - */ -export default function DocItemPaginator() { - const { metadata } = useDoc() - return -} diff --git a/src/theme/DocItem/TOC/Desktop/index.js b/src/theme/DocItem/TOC/Desktop/index.js deleted file mode 100644 index a96acf1ed..000000000 --- a/src/theme/DocItem/TOC/Desktop/index.js +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react' -import { ThemeClassNames } from '@docusaurus/theme-common' -import { useDoc } from '@docusaurus/theme-common/internal' -import TOC from '@theme/TOC' -export default function DocItemTOCDesktop() { - const { toc, frontMatter } = useDoc() - return ( - - ) -} diff --git a/src/theme/DocItem/TOC/Mobile/index.js b/src/theme/DocItem/TOC/Mobile/index.js deleted file mode 100644 index 997bdb628..000000000 --- a/src/theme/DocItem/TOC/Mobile/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react' -import clsx from 'clsx' -import { ThemeClassNames } from '@docusaurus/theme-common' -import { useDoc } from '@docusaurus/theme-common/internal' -import TOCCollapsible from '@theme/TOCCollapsible' -import styles from './styles.module.css' -export default function DocItemTOCMobile() { - const { toc, frontMatter } = useDoc() - return ( - - ) -} diff --git a/src/theme/DocItem/TOC/Mobile/styles.module.css b/src/theme/DocItem/TOC/Mobile/styles.module.css deleted file mode 100644 index f0c287b8c..000000000 --- a/src/theme/DocItem/TOC/Mobile/styles.module.css +++ /dev/null @@ -1,12 +0,0 @@ -@media (min-width: 997px) { - /* Prevent hydration FOUC, as the mobile TOC needs to be server-rendered */ - .tocMobile { - display: none; - } -} - -@media print { - .tocMobile { - display: none; - } -} diff --git a/src/theme/DocItem/index.js b/src/theme/DocItem/index.js deleted file mode 100644 index e92734f67..000000000 --- a/src/theme/DocItem/index.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react' -import { HtmlClassNameProvider } from '@docusaurus/theme-common' -import { DocProvider } from '@docusaurus/theme-common/internal' -import DocItemMetadata from '@theme/DocItem/Metadata' -import DocItemLayout from '@theme/DocItem/Layout' -export default function DocItem(props) { - const docHtmlClassName = `docs-doc-id-${props.content.metadata.unversionedId}` - const MDXComponent = props.content - return ( - - - - - - - - - ) -} diff --git a/src/theme/DocPage/Layout/Main/index.js b/src/theme/DocPage/Layout/Main/index.js deleted file mode 100644 index 5b32bd176..000000000 --- a/src/theme/DocPage/Layout/Main/index.js +++ /dev/null @@ -1,26 +0,0 @@ -import React from 'react' -import clsx from 'clsx' -import { useDocsSidebar } from '@docusaurus/theme-common/internal' -import styles from './styles.module.css' -export default function DocPageLayoutMain({ hiddenSidebarContainer, children }) { - const sidebar = useDocsSidebar() - return ( -
-
- {children} -
-
- ) -} diff --git a/src/theme/DocPage/Layout/Main/styles.module.css b/src/theme/DocPage/Layout/Main/styles.module.css deleted file mode 100644 index b0319384e..000000000 --- a/src/theme/DocPage/Layout/Main/styles.module.css +++ /dev/null @@ -1,19 +0,0 @@ -.docMainContainer { - display: flex; - width: 100%; -} - -@media (min-width: 997px) { - .docMainContainer { - flex-grow: 1; - max-width: calc(100% - var(--doc-sidebar-width)); - } - - .docMainContainerEnhanced { - max-width: calc(100% - var(--doc-sidebar-hidden-width)); - } - - .docItemWrapperEnhanced { - max-width: calc(var(--ifm-container-width) + var(--doc-sidebar-width)) !important; - } -} diff --git a/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.js b/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.js deleted file mode 100644 index 2d5702801..000000000 --- a/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.js +++ /dev/null @@ -1,27 +0,0 @@ -import React from 'react' -import { translate } from '@docusaurus/Translate' -import IconArrow from '@theme/Icon/Arrow' -import styles from './styles.module.css' -export default function DocPageLayoutSidebarExpandButton({ toggleSidebar }) { - return ( -
- -
- ) -} diff --git a/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css b/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css deleted file mode 100644 index f4cd944d8..000000000 --- a/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +++ /dev/null @@ -1,27 +0,0 @@ -@media (min-width: 997px) { - .expandButton { - position: absolute; - top: 0; - right: 0; - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - transition: background-color var(--ifm-transition-fast) ease; - background-color: var(--docusaurus-collapse-button-bg); - } - - .expandButton:hover, - .expandButton:focus { - background-color: var(--docusaurus-collapse-button-bg-hover); - } - - .expandButtonIcon { - transform: rotate(0); - } - - [dir='rtl'] .expandButtonIcon { - transform: rotate(180deg); - } -} diff --git a/src/theme/DocPage/Layout/Sidebar/index.js b/src/theme/DocPage/Layout/Sidebar/index.js deleted file mode 100644 index 1b8a93680..000000000 --- a/src/theme/DocPage/Layout/Sidebar/index.js +++ /dev/null @@ -1,54 +0,0 @@ -import React, { useState, useCallback } from 'react' -import clsx from 'clsx' -import { prefersReducedMotion, ThemeClassNames } from '@docusaurus/theme-common' -import { useDocsSidebar } from '@docusaurus/theme-common/internal' -import { useLocation } from '@docusaurus/router' -import DocSidebar from '@theme/DocSidebar' -import ExpandButton from '@theme/DocPage/Layout/Sidebar/ExpandButton' -import styles from './styles.module.css' -// Reset sidebar state when sidebar changes -// Use React key to unmount/remount the children -// See https://github.com/facebook/docusaurus/issues/3414 -function ResetOnSidebarChange({ children }) { - const sidebar = useDocsSidebar() - return {children} -} -export default function DocPageLayoutSidebar({ sidebar, hiddenSidebarContainer, setHiddenSidebarContainer }) { - const { pathname } = useLocation() - const [hiddenSidebar, setHiddenSidebar] = useState(false) - const toggleSidebar = useCallback(() => { - if (hiddenSidebar) { - setHiddenSidebar(false) - } - // onTransitionEnd won't fire when sidebar animation is disabled - // fixes https://github.com/facebook/docusaurus/issues/8918 - if (!hiddenSidebar && prefersReducedMotion()) { - setHiddenSidebar(true) - } - setHiddenSidebarContainer((value) => !value) - }, [setHiddenSidebarContainer, hiddenSidebar]) - return ( - - ) -} diff --git a/src/theme/DocPage/Layout/Sidebar/styles.module.css b/src/theme/DocPage/Layout/Sidebar/styles.module.css deleted file mode 100644 index 221aabf56..000000000 --- a/src/theme/DocPage/Layout/Sidebar/styles.module.css +++ /dev/null @@ -1,32 +0,0 @@ -:root { - --doc-sidebar-width: 300px; - --doc-sidebar-hidden-width: 30px; -} - -.docSidebarContainer { - display: none; -} - -@media (min-width: 997px) { - .docSidebarContainer { - display: block; - width: var(--doc-sidebar-width); - margin-top: calc(-1 * var(--ifm-navbar-height)); - border-right: 1px solid var(--ifm-toc-border-color); - will-change: width; - transition: width var(--ifm-transition-fast) ease; - clip-path: inset(0); - } - - .docSidebarContainerHidden { - width: var(--doc-sidebar-hidden-width); - cursor: pointer; - } - - .sidebarViewport { - top: 0; - position: sticky; - height: 100%; - max-height: 100vh; - } -} diff --git a/src/theme/DocPage/Layout/index.js b/src/theme/DocPage/Layout/index.js deleted file mode 100644 index 09be56033..000000000 --- a/src/theme/DocPage/Layout/index.js +++ /dev/null @@ -1,26 +0,0 @@ -import React, { useState } from 'react' -import { useDocsSidebar } from '@docusaurus/theme-common/internal' -import Layout from '@theme/Layout' -import BackToTopButton from '@theme/BackToTopButton' -import DocPageLayoutSidebar from '@theme/DocPage/Layout/Sidebar' -import DocPageLayoutMain from '@theme/DocPage/Layout/Main' -import styles from './styles.module.css' -export default function DocPageLayout({ children }) { - const sidebar = useDocsSidebar() - const [hiddenSidebarContainer, setHiddenSidebarContainer] = useState(false) - return ( - - -
- {sidebar && ( - - )} - {children} -
-
- ) -} diff --git a/src/theme/DocPage/Layout/styles.module.css b/src/theme/DocPage/Layout/styles.module.css deleted file mode 100644 index 008456fec..000000000 --- a/src/theme/DocPage/Layout/styles.module.css +++ /dev/null @@ -1,18 +0,0 @@ -.docPage { - display: flex; - width: 100%; - flex: 1 0; -} - -.docsWrapper { - display: flex; - flex: 1 0 auto; -} - -/* -JS disabled??? Show light version by default => better than showing nothing -TODO bad, but we currently always show light mode when there's no data-theme - */ -html:not([data-theme]) .themedComponent--light { - display: initial; -} diff --git a/src/theme/DocPage/index.js b/src/theme/DocPage/index.js deleted file mode 100644 index 36aa4290e..000000000 --- a/src/theme/DocPage/index.js +++ /dev/null @@ -1,51 +0,0 @@ -import React from 'react' -import clsx from 'clsx' -import { HtmlClassNameProvider, ThemeClassNames, PageMetadata } from '@docusaurus/theme-common' -import { - docVersionSearchTag, - DocsSidebarProvider, - DocsVersionProvider, - useDocRouteMetadata, -} from '@docusaurus/theme-common/internal' -import DocPageLayout from '@theme/DocPage/Layout' -import NotFound from '@theme/NotFound' -import SearchMetadata from '@theme/SearchMetadata' -function DocPageMetadata(props) { - const { versionMetadata } = props - return ( - <> - - {versionMetadata.noIndex && } - - ) -} -export default function DocPage(props) { - const { versionMetadata } = props - const currentDocRouteMetadata = useDocRouteMetadata(props) - if (!currentDocRouteMetadata) { - return - } - const { docElement, sidebarName, sidebarItems } = currentDocRouteMetadata - return ( - <> - - - - - {docElement} - - - - - ) -}