From 14efc83c3ee0d96f3b685be0791b2ff1c62d178f Mon Sep 17 00:00:00 2001 From: viral-sangani Date: Sun, 16 Mar 2025 15:08:13 +0530 Subject: [PATCH 1/5] Update CLI documentation to include anchor links for commands across various sections. This change enhances navigation and accessibility for users by providing direct links to specific command descriptions. --- docs/cli/autocomplete.md | 2 +- docs/cli/commands.md | 2 +- docs/cli/config.md | 4 ++-- docs/cli/dkg.md | 12 +++++------ docs/cli/election.md | 14 ++++++------- docs/cli/epochs.md | 8 ++++---- docs/cli/exchange.md | 12 +++++------ docs/cli/governance.md | 42 +++++++++++++++++++------------------- docs/cli/help.md | 2 +- docs/cli/identity.md | 2 +- docs/cli/lockedgold.md | 18 ++++++++-------- docs/cli/multisig.md | 6 +++--- docs/cli/network.md | 12 +++++------ docs/cli/node.md | 6 +++--- docs/cli/oracle.md | 8 ++++---- docs/cli/plugins.md | 20 +++++++++--------- docs/cli/releasecelo.md | 30 +++++++++++++-------------- docs/cli/rewards.md | 2 +- docs/cli/transfer.md | 12 +++++------ docs/cli/validator.md | 30 +++++++++++++-------------- docs/cli/validatorgroup.md | 18 ++++++++-------- 21 files changed, 131 insertions(+), 131 deletions(-) diff --git a/docs/cli/autocomplete.md b/docs/cli/autocomplete.md index bf1fe98f3..c4417c646 100644 --- a/docs/cli/autocomplete.md +++ b/docs/cli/autocomplete.md @@ -5,7 +5,7 @@ Display autocomplete installation instructions. * [`celocli autocomplete [SHELL]`](#celocli-autocomplete-shell) -## `celocli autocomplete [SHELL]` +## `celocli autocomplete [SHELL]` {#celocli-autocomplete-shell} Display autocomplete installation instructions. diff --git a/docs/cli/commands.md b/docs/cli/commands.md index 035400ca2..1d9b9cae8 100644 --- a/docs/cli/commands.md +++ b/docs/cli/commands.md @@ -5,7 +5,7 @@ list all the commands * [`celocli commands`](#celocli-commands) -## `celocli commands` +## `celocli commands` {#celocli-commands} list all the commands diff --git a/docs/cli/config.md b/docs/cli/config.md index 9ea26cce8..82e37a554 100644 --- a/docs/cli/config.md +++ b/docs/cli/config.md @@ -6,7 +6,7 @@ Configure CLI options which persist across commands * [`celocli config:get`](#celocli-configget) * [`celocli config:set`](#celocli-configset) -## `celocli config:get` +## `celocli config:get` {#celocli-configget} Output network node configuration @@ -34,7 +34,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/config/get.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/config/get.ts)_ -## `celocli config:set` +## `celocli config:set` {#celocli-configset} Configure running node information for propagating transactions to network diff --git a/docs/cli/dkg.md b/docs/cli/dkg.md index ab4d3b1da..894f719b2 100644 --- a/docs/cli/dkg.md +++ b/docs/cli/dkg.md @@ -10,7 +10,7 @@ Publish your locally computed DKG results to the blockchain * [`celocli dkg:register`](#celocli-dkgregister) * [`celocli dkg:start`](#celocli-dkgstart) -## `celocli dkg:allowlist` +## `celocli dkg:allowlist` {#celocli-dkgallowlist} Allowlist an address in the DKG @@ -73,7 +73,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/dkg/allowlist.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/dkg/allowlist.ts)_ -## `celocli dkg:deploy` +## `celocli dkg:deploy` {#celocli-dkgdeploy} Deploys the DKG smart contract @@ -135,7 +135,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/dkg/deploy.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/dkg/deploy.ts)_ -## `celocli dkg:get` +## `celocli dkg:get` {#celocli-dkgget} Gets data from the contract to run the next phase @@ -196,7 +196,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/dkg/get.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/dkg/get.ts)_ -## `celocli dkg:publish` +## `celocli dkg:publish` {#celocli-dkgpublish} Publishes data for each phase of the DKG @@ -259,7 +259,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/dkg/publish.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/dkg/publish.ts)_ -## `celocli dkg:register` +## `celocli dkg:register` {#celocli-dkgregister} Register a public key in the DKG @@ -322,7 +322,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/dkg/register.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/dkg/register.ts)_ -## `celocli dkg:start` +## `celocli dkg:start` {#celocli-dkgstart} Starts the DKG diff --git a/docs/cli/election.md b/docs/cli/election.md index 6777712e4..678a6a1a7 100644 --- a/docs/cli/election.md +++ b/docs/cli/election.md @@ -11,7 +11,7 @@ Participate in and view the state of Validator Elections * [`celocli election:show ARG1`](#celocli-electionshow-arg1) * [`celocli election:vote`](#celocli-electionvote) -## `celocli election:activate` +## `celocli election:activate` {#celocli-electionactivate} Activate pending votes in validator elections to begin earning rewards. To earn rewards as a voter, it is required to activate your pending votes at some point after the end of the epoch in which they were made. @@ -83,7 +83,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/election/activate.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/election/activate.ts)_ -## `celocli election:current` +## `celocli election:current` {#celocli-electioncurrent} Outputs the set of validators currently participating in BFT to create blocks. An election is run to select the validator set at the end of every epoch. @@ -167,7 +167,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/election/current.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/election/current.ts)_ -## `celocli election:list` +## `celocli election:list` {#celocli-electionlist} Prints the list of validator groups, the number of votes they have received, the number of additional votes they are able to receive, and whether or not they are eligible to elect validators. @@ -211,7 +211,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/election/list.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/election/list.ts)_ -## `celocli election:revoke` +## `celocli election:revoke` {#celocli-electionrevoke} Revoke votes for a Validator Group in validator elections. @@ -276,7 +276,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/election/revoke.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/election/revoke.ts)_ -## `celocli election:run` +## `celocli election:run` {#celocli-electionrun} Runs a "mock" election and prints out the validators that would be elected if the epoch ended right now. @@ -316,7 +316,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/election/run.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/election/run.ts)_ -## `celocli election:show ARG1` +## `celocli election:show ARG1` {#celocli-electionshow-arg1} Show election information about a voter or registered Validator Group @@ -354,7 +354,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/election/show.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/election/show.ts)_ -## `celocli election:vote` +## `celocli election:vote` {#celocli-electionvote} Vote for a Validator Group in validator elections. diff --git a/docs/cli/epochs.md b/docs/cli/epochs.md index ae0381a83..a87b69c23 100644 --- a/docs/cli/epochs.md +++ b/docs/cli/epochs.md @@ -8,7 +8,7 @@ Finishes next epoch process. * [`celocli epochs:start`](#celocli-epochsstart) * [`celocli epochs:switch`](#celocli-epochsswitch) -## `celocli epochs:finish` +## `celocli epochs:finish` {#celocli-epochsfinish} Finishes next epoch process. @@ -67,7 +67,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/epochs/finish.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/epochs/finish.ts)_ -## `celocli epochs:send-validator-payment` +## `celocli epochs:send-validator-payment` {#celocli-epochssend-validator-payment} Sends the allocated epoch payment to a validator, their group, and delegation beneficiary. @@ -133,7 +133,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/epochs/send-validator-payment.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/epochs/send-validator-payment.ts)_ -## `celocli epochs:start` +## `celocli epochs:start` {#celocli-epochsstart} Starts next epoch process. @@ -192,7 +192,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/epochs/start.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/epochs/start.ts)_ -## `celocli epochs:switch` +## `celocli epochs:switch` {#celocli-epochsswitch} Finishes current epoch and starts a new one. diff --git a/docs/cli/exchange.md b/docs/cli/exchange.md index a674e8e98..ae7170f0d 100644 --- a/docs/cli/exchange.md +++ b/docs/cli/exchange.md @@ -10,7 +10,7 @@ Exchange Celo Dollars and CELO via Mento * [`celocli exchange:show`](#celocli-exchangeshow) * [`celocli exchange:stable`](#celocli-exchangestable) -## `celocli exchange:celo` +## `celocli exchange:celo` {#celocli-exchangecelo} Exchange CELO for StableTokens via Mento. (Note: this is the equivalent of the old exchange:gold) @@ -83,7 +83,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/exchange/celo.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/exchange/celo.ts)_ -## `celocli exchange:dollars` +## `celocli exchange:dollars` {#celocli-exchangedollars} Exchange Celo Dollars for CELO via Mento @@ -150,7 +150,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/exchange/dollars.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/exchange/dollars.ts)_ -## `celocli exchange:euros` +## `celocli exchange:euros` {#celocli-exchangeeuros} Exchange Celo Euros for CELO via Mento @@ -217,7 +217,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/exchange/euros.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/exchange/euros.ts)_ -## `celocli exchange:reals` +## `celocli exchange:reals` {#celocli-exchangereals} Exchange Celo Brazilian Real (cREAL) for CELO via Mento @@ -284,7 +284,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/exchange/reals.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/exchange/reals.ts)_ -## `celocli exchange:show` +## `celocli exchange:show` {#celocli-exchangeshow} Show the current exchange rates offered by the Broker @@ -343,7 +343,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/exchange/show.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/exchange/show.ts)_ -## `celocli exchange:stable` +## `celocli exchange:stable` {#celocli-exchangestable} Exchange Stable Token for CELO via Mento diff --git a/docs/cli/governance.md b/docs/cli/governance.md index 747b05c68..e16b2a899 100644 --- a/docs/cli/governance.md +++ b/docs/cli/governance.md @@ -25,7 +25,7 @@ Interact with on-chain governance proposals and hotfixes * [`celocli governance:whitelisthotfix`](#celocli-governancewhitelisthotfix) * [`celocli governance:withdraw`](#celocli-governancewithdraw) -## `celocli governance:approvehotfix` +## `celocli governance:approvehotfix` {#celocli-governanceapprovehotfix} Approve a dequeued governance proposal (or hotfix) @@ -109,7 +109,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli governance:build-proposal` +## `celocli governance:build-proposal` {#celocli-governancebuild-proposal} Interactively build a governance proposal @@ -174,7 +174,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/build-proposal.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/build-proposal.ts)_ -## `celocli governance:dequeue` +## `celocli governance:dequeue` {#celocli-governancedequeue} Try to dequeue governance proposal @@ -233,7 +233,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/dequeue.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/dequeue.ts)_ -## `celocli governance:execute` +## `celocli governance:execute` {#celocli-governanceexecute} Execute a passing governance proposal @@ -295,7 +295,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/execute.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/execute.ts)_ -## `celocli governance:executehotfix` +## `celocli governance:executehotfix` {#celocli-governanceexecutehotfix} Execute a governance hotfix prepared for the current epoch @@ -360,7 +360,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/executehotfix.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/executehotfix.ts)_ -## `celocli governance:hashhotfix` +## `celocli governance:hashhotfix` {#celocli-governancehashhotfix} Hash a governance hotfix specified by JSON and a salt @@ -425,7 +425,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/hashhotfix.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/hashhotfix.ts)_ -## `celocli governance:list` +## `celocli governance:list` {#celocli-governancelist} List live governance proposals (queued and ongoing) @@ -507,7 +507,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/list.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/list.ts)_ -## `celocli governance:preparehotfix` +## `celocli governance:preparehotfix` {#celocli-governancepreparehotfix} Prepare a governance hotfix for execution in the current epoch @@ -569,7 +569,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/preparehotfix.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/preparehotfix.ts)_ -## `celocli governance:propose` +## `celocli governance:propose` {#celocli-governancepropose} Submit a governance proposal @@ -667,7 +667,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/propose.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/propose.ts)_ -## `celocli governance:revokeupvote` +## `celocli governance:revokeupvote` {#celocli-governancerevokeupvote} Revoke upvotes for queued governance proposals @@ -726,7 +726,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/revokeupvote.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/revokeupvote.ts)_ -## `celocli governance:show` +## `celocli governance:show` {#celocli-governanceshow} Show information about a governance proposal, hotfix, or account. @@ -797,7 +797,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/show.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/show.ts)_ -## `celocli governance:showaccount` +## `celocli governance:showaccount` {#celocli-governanceshowaccount} Show information about a governance proposal, hotfix, or account. @@ -866,7 +866,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli governance:showhotfix` +## `celocli governance:showhotfix` {#celocli-governanceshowhotfix} Show information about a governance proposal, hotfix, or account. @@ -935,7 +935,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli governance:upvote` +## `celocli governance:upvote` {#celocli-governanceupvote} Upvote a queued governance proposal @@ -997,7 +997,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/upvote.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/upvote.ts)_ -## `celocli governance:view` +## `celocli governance:view` {#celocli-governanceview} Show information about a governance proposal, hotfix, or account. @@ -1066,7 +1066,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli governance:viewaccount` +## `celocli governance:viewaccount` {#celocli-governanceviewaccount} Show information about a governance proposal, hotfix, or account. @@ -1135,7 +1135,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli governance:viewhotfix` +## `celocli governance:viewhotfix` {#celocli-governanceviewhotfix} Show information about a governance proposal, hotfix, or account. @@ -1204,7 +1204,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli governance:vote` +## `celocli governance:vote` {#celocli-governancevote} Vote on an approved governance proposal @@ -1270,7 +1270,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/vote.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/vote.ts)_ -## `celocli governance:votePartially` +## `celocli governance:votePartially` {#celocli-governancevotepartially} Vote partially on an approved governance proposal @@ -1342,7 +1342,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/votePartially.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/votePartially.ts)_ -## `celocli governance:whitelisthotfix` +## `celocli governance:whitelisthotfix` {#celocli-governancewhitelisthotfix} Whitelist a governance hotfix @@ -1404,7 +1404,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/governance/whitelisthotfix.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/governance/whitelisthotfix.ts)_ -## `celocli governance:withdraw` +## `celocli governance:withdraw` {#celocli-governancewithdraw} Withdraw refunded governance proposal deposits. diff --git a/docs/cli/help.md b/docs/cli/help.md index 2644bad57..1de5e1e72 100644 --- a/docs/cli/help.md +++ b/docs/cli/help.md @@ -5,7 +5,7 @@ Display help for celocli. * [`celocli help [COMMAND]`](#celocli-help-command) -## `celocli help [COMMAND]` +## `celocli help [COMMAND]` {#celocli-help-command} Display help for celocli. diff --git a/docs/cli/identity.md b/docs/cli/identity.md index d26d663b0..1b46ccbbc 100644 --- a/docs/cli/identity.md +++ b/docs/cli/identity.md @@ -5,7 +5,7 @@ Interact with ODIS and the attestations service * [`celocli identity:withdraw-attestation-rewards`](#celocli-identitywithdraw-attestation-rewards) -## `celocli identity:withdraw-attestation-rewards` +## `celocli identity:withdraw-attestation-rewards` {#celocli-identitywithdraw-attestation-rewards} Withdraw accumulated attestation rewards for a given currency diff --git a/docs/cli/lockedgold.md b/docs/cli/lockedgold.md index 72413086c..417d89fd5 100644 --- a/docs/cli/lockedgold.md +++ b/docs/cli/lockedgold.md @@ -13,7 +13,7 @@ View and manage locked CELO * [`celocli lockedgold:update-delegated-amount`](#celocli-lockedgoldupdate-delegated-amount) * [`celocli lockedgold:withdraw`](#celocli-lockedgoldwithdraw) -## `celocli lockedgold:delegate` +## `celocli lockedgold:delegate` {#celocli-lockedgolddelegate} Delegate locked celo. @@ -79,7 +79,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/lockedgold/delegate.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/lockedgold/delegate.ts)_ -## `celocli lockedgold:delegate-info` +## `celocli lockedgold:delegate-info` {#celocli-lockedgolddelegate-info} Delegate info about account. @@ -138,7 +138,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/lockedgold/delegate-info.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/lockedgold/delegate-info.ts)_ -## `celocli lockedgold:lock` +## `celocli lockedgold:lock` {#celocli-lockedgoldlock} Locks CELO to be used in governance and validator elections. @@ -200,7 +200,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/lockedgold/lock.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/lockedgold/lock.ts)_ -## `celocli lockedgold:max-delegatees-count` +## `celocli lockedgold:max-delegatees-count` {#celocli-lockedgoldmax-delegatees-count} Returns the maximum number of delegates allowed per account. @@ -255,7 +255,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/lockedgold/max-delegatees-count.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/lockedgold/max-delegatees-count.ts)_ -## `celocli lockedgold:revoke-delegate` +## `celocli lockedgold:revoke-delegate` {#celocli-lockedgoldrevoke-delegate} Revoke delegated locked celo. @@ -321,7 +321,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/lockedgold/revoke-delegate.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/lockedgold/revoke-delegate.ts)_ -## `celocli lockedgold:show ARG1` +## `celocli lockedgold:show ARG1` {#celocli-lockedgoldshow-arg1} Show Locked Gold information for a given account. This includes the total amount of locked celo, the amount being used for voting in Validator Elections, the Locked Gold balance this account is required to maintain due to a registered Validator or Validator Group, and any pending withdrawals that have been initiated via "lockedgold:unlock". @@ -356,7 +356,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/lockedgold/show.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/lockedgold/show.ts)_ -## `celocli lockedgold:unlock` +## `celocli lockedgold:unlock` {#celocli-lockedgoldunlock} Unlocks CELO, which can be withdrawn after the unlocking period. Unlocked celo will appear as a "pending withdrawal" until the unlocking period is over, after which it can be withdrawn via "lockedgold:withdraw". @@ -420,7 +420,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/lockedgold/unlock.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/lockedgold/unlock.ts)_ -## `celocli lockedgold:update-delegated-amount` +## `celocli lockedgold:update-delegated-amount` {#celocli-lockedgoldupdate-delegated-amount} Updates the amount of delegated locked celo. There might be discrepancy between the amount of locked celo and the amount of delegated locked celo because of received rewards. @@ -484,7 +484,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/lockedgold/update-delegated-amount.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/lockedgold/update-delegated-amount.ts)_ -## `celocli lockedgold:withdraw` +## `celocli lockedgold:withdraw` {#celocli-lockedgoldwithdraw} Withdraw any pending withdrawals created via "lockedgold:unlock" that have become available. diff --git a/docs/cli/multisig.md b/docs/cli/multisig.md index 49b1b6046..6d1d44d00 100644 --- a/docs/cli/multisig.md +++ b/docs/cli/multisig.md @@ -7,7 +7,7 @@ Approves an existing transaction on a multi-sig contract * [`celocli multisig:show ARG1`](#celocli-multisigshow-arg1) * [`celocli multisig:transfer ARG1`](#celocli-multisigtransfer-arg1) -## `celocli multisig:approve` +## `celocli multisig:approve` {#celocli-multisigapprove} Approves an existing transaction on a multi-sig contract @@ -72,7 +72,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/multisig/approve.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/multisig/approve.ts)_ -## `celocli multisig:show ARG1` +## `celocli multisig:show ARG1` {#celocli-multisigshow-arg1} Shows information about multi-sig contract @@ -111,7 +111,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/multisig/show.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/multisig/show.ts)_ -## `celocli multisig:transfer ARG1` +## `celocli multisig:transfer ARG1` {#celocli-multisigtransfer-arg1} Ability to approve CELO transfers to and from multisig. Submit transaction or approve a matching existing transaction diff --git a/docs/cli/network.md b/docs/cli/network.md index 8951bdd7b..0db993e40 100644 --- a/docs/cli/network.md +++ b/docs/cli/network.md @@ -10,7 +10,7 @@ View details about the network, like contracts and parameters * [`celocli network:rpc-urls`](#celocli-networkrpc-urls) * [`celocli network:whitelist`](#celocli-networkwhitelist) -## `celocli network:community-rpc-nodes` +## `celocli network:community-rpc-nodes` {#celocli-networkcommunity-rpc-nodes} Displays a list of community RPC nodes for the currently elected validator groups @@ -57,7 +57,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli network:contracts` +## `celocli network:contracts` {#celocli-networkcontracts} Lists Celo core contracts and their addresses. @@ -96,7 +96,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/network/contracts.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/network/contracts.ts)_ -## `celocli network:info` +## `celocli network:info` {#celocli-networkinfo} View general network information such as the current block number @@ -125,7 +125,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/network/info.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/network/info.ts)_ -## `celocli network:parameters` +## `celocli network:parameters` {#celocli-networkparameters} View parameters of the network, including but not limited to configuration for the various Celo core smart contracts. @@ -155,7 +155,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/network/parameters.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/network/parameters.ts)_ -## `celocli network:rpc-urls` +## `celocli network:rpc-urls` {#celocli-networkrpc-urls} Displays a list of community RPC nodes for the currently elected validator groups @@ -202,7 +202,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli network:whitelist` +## `celocli network:whitelist` {#celocli-networkwhitelist} List the whitelisted fee currencies diff --git a/docs/cli/node.md b/docs/cli/node.md index e84cf73fb..54f2f64aa 100644 --- a/docs/cli/node.md +++ b/docs/cli/node.md @@ -7,7 +7,7 @@ Manage your Celo node * [`celocli node:list`](#celocli-nodelist) * [`celocli node:synced`](#celocli-nodesynced) -## `celocli node:accounts` +## `celocli node:accounts` {#celocli-nodeaccounts} List the addresses that this node has the private keys for. @@ -59,7 +59,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/node/accounts.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/node/accounts.ts)_ -## `celocli node:list` +## `celocli node:list` {#celocli-nodelist} Displays a list of community RPC nodes for the currently elected validator groups @@ -106,7 +106,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli node:synced` +## `celocli node:synced` {#celocli-nodesynced} Check if the node is synced diff --git a/docs/cli/oracle.md b/docs/cli/oracle.md index e93bc4d70..0404ca3db 100644 --- a/docs/cli/oracle.md +++ b/docs/cli/oracle.md @@ -8,7 +8,7 @@ List oracle addresses for a given token * [`celocli oracle:report ARG1`](#celocli-oraclereport-arg1) * [`celocli oracle:reports ARG1`](#celocli-oraclereports-arg1) -## `celocli oracle:list ARG1` +## `celocli oracle:list ARG1` {#celocli-oraclelist-arg1} List oracle addresses for a given token @@ -46,7 +46,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/oracle/list.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/oracle/list.ts)_ -## `celocli oracle:remove-expired-reports ARG1` +## `celocli oracle:remove-expired-reports ARG1` {#celocli-oracleremove-expired-reports-arg1} Remove expired oracle reports for a specified token @@ -112,7 +112,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/oracle/remove-expired-reports.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/oracle/remove-expired-reports.ts)_ -## `celocli oracle:report ARG1` +## `celocli oracle:report ARG1` {#celocli-oraclereport-arg1} Report the price of CELO in a specified token @@ -181,7 +181,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/oracle/report.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/oracle/report.ts)_ -## `celocli oracle:reports ARG1` +## `celocli oracle:reports ARG1` {#celocli-oraclereports-arg1} List oracle reports for a given token diff --git a/docs/cli/plugins.md b/docs/cli/plugins.md index 78f5054b7..7e0449bcf 100644 --- a/docs/cli/plugins.md +++ b/docs/cli/plugins.md @@ -14,7 +14,7 @@ List installed plugins. * [`celocli plugins:uninstall PLUGIN...`](#celocli-pluginsuninstall-plugin) * [`celocli plugins:update`](#celocli-pluginsupdate) -## `celocli plugins` +## `celocli plugins` {#celocli-plugins} List installed plugins. @@ -37,7 +37,7 @@ EXAMPLES _See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v4.3.10/src/commands/plugins/index.ts)_ -## `celocli plugins:install PLUGIN...` +## `celocli plugins:install PLUGIN...` {#celocli-pluginsinstall-plugin} Installs a plugin into the CLI. @@ -80,7 +80,7 @@ EXAMPLES $ celocli plugins:add someuser/someplugin ``` -## `celocli plugins:inspect PLUGIN...` +## `celocli plugins:inspect PLUGIN...` {#celocli-pluginsinspect-plugin} Displays installation properties of a plugin. @@ -107,7 +107,7 @@ EXAMPLES _See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v4.3.10/src/commands/plugins/inspect.ts)_ -## `celocli plugins:install PLUGIN...` +## `celocli plugins:install PLUGIN...` {#celocli-pluginsinstall-plugin-1} Installs a plugin into the CLI. @@ -152,7 +152,7 @@ EXAMPLES _See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v4.3.10/src/commands/plugins/install.ts)_ -## `celocli plugins:link PLUGIN` +## `celocli plugins:link PLUGIN` {#celocli-pluginslink-plugin} Links a plugin into the CLI for development. @@ -183,7 +183,7 @@ EXAMPLES _See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v4.3.10/src/commands/plugins/link.ts)_ -## `celocli plugins:uninstall PLUGIN...` +## `celocli plugins:uninstall PLUGIN...` {#celocli-pluginsuninstall-plugin} Removes a plugin from the CLI. @@ -209,7 +209,7 @@ EXAMPLES $ celocli plugins:remove myplugin ``` -## `celocli plugins:reset` +## `celocli plugins:reset` {#celocli-pluginsreset} Remove all user-installed and linked plugins. @@ -225,7 +225,7 @@ FLAGS _See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v4.3.10/src/commands/plugins/reset.ts)_ -## `celocli plugins:uninstall PLUGIN...` +## `celocli plugins:uninstall PLUGIN...` {#celocli-pluginsuninstall-plugin-1} Removes a plugin from the CLI. @@ -253,7 +253,7 @@ EXAMPLES _See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v4.3.10/src/commands/plugins/uninstall.ts)_ -## `celocli plugins:uninstall PLUGIN...` +## `celocli plugins:uninstall PLUGIN...` {#celocli-pluginsuninstall-plugin-2} Removes a plugin from the CLI. @@ -279,7 +279,7 @@ EXAMPLES $ celocli plugins:unlink myplugin ``` -## `celocli plugins:update` +## `celocli plugins:update` {#celocli-pluginsupdate} Update installed plugins. diff --git a/docs/cli/releasecelo.md b/docs/cli/releasecelo.md index c1cb8cd52..00165d272 100644 --- a/docs/cli/releasecelo.md +++ b/docs/cli/releasecelo.md @@ -19,7 +19,7 @@ View and manage ReleaseGold contracts * [`celocli releasecelo:transfer-dollars`](#celocli-releasecelotransfer-dollars) * [`celocli releasecelo:withdraw`](#celocli-releasecelowithdraw) -## `celocli releasecelo:authorize` +## `celocli releasecelo:authorize` {#celocli-releaseceloauthorize} Authorize an alternative key to be used for a given action (Vote, Validate, Attest) on behalf of the ReleaseGold instance contract. @@ -104,7 +104,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/authorize.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/authorize.ts)_ -## `celocli releasecelo:create-account` +## `celocli releasecelo:create-account` {#celocli-releasecelocreate-account} Creates a new account for the ReleaseGold instance @@ -163,7 +163,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/create-account.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/create-account.ts)_ -## `celocli releasecelo:locked-gold` +## `celocli releasecelo:locked-gold` {#celocli-releasecelolocked-gold} Perform actions [lock, unlock, withdraw] on CELO that has been locked via the provided ReleaseGold contract. @@ -237,7 +237,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/locked-gold.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/locked-gold.ts)_ -## `celocli releasecelo:refund-and-finalize` +## `celocli releasecelo:refund-and-finalize` {#celocli-releasecelorefund-and-finalize} Refund the given contract's balance to the appropriate parties and destroy the contact. Can only be called by the release owner of revocable ReleaseGold instances. @@ -297,7 +297,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/refund-and-finalize.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/refund-and-finalize.ts)_ -## `celocli releasecelo:revoke` +## `celocli releasecelo:revoke` {#celocli-releasecelorevoke} Revoke the given contract instance. Once revoked, any Locked Gold can be unlocked by the release owner. The beneficiary will then be able to withdraw any released Gold that had yet to be withdrawn, and the remainder can be transferred by the release owner to the refund address. Note that not all ReleaseGold instances are revokable. @@ -362,7 +362,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/revoke.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/revoke.ts)_ -## `celocli releasecelo:revoke-votes` +## `celocli releasecelo:revoke-votes` {#celocli-releasecelorevoke-votes} Revokes `votes` for the given contract's account from the given group's account @@ -437,7 +437,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/revoke-votes.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/revoke-votes.ts)_ -## `celocli releasecelo:set-account` +## `celocli releasecelo:set-account` {#celocli-releaseceloset-account} Set account properties of the ReleaseGold instance account such as name, data encryption key, and the metadata URL @@ -508,7 +508,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/set-account.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/set-account.ts)_ -## `celocli releasecelo:set-account-wallet-address` +## `celocli releasecelo:set-account-wallet-address` {#celocli-releaseceloset-account-wallet-address} Set the ReleaseGold contract account's wallet address @@ -574,7 +574,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/set-account-wallet-address.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/set-account-wallet-address.ts)_ -## `celocli releasecelo:set-beneficiary` +## `celocli releasecelo:set-beneficiary` {#celocli-releaseceloset-beneficiary} Set the beneficiary of the ReleaseGold contract. This command is gated via a multi-sig, so this is expected to be called twice: once by the contract's beneficiary and once by the contract's releaseOwner. Once both addresses call this command with the same parameters, the tx will execute. @@ -646,7 +646,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/set-beneficiary.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/set-beneficiary.ts)_ -## `celocli releasecelo:set-can-expire` +## `celocli releasecelo:set-can-expire` {#celocli-releaseceloset-can-expire} Set the canExpire flag for the given ReleaseGold contract @@ -712,7 +712,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/set-can-expire.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/set-can-expire.ts)_ -## `celocli releasecelo:set-liquidity-provision` +## `celocli releasecelo:set-liquidity-provision` {#celocli-releaseceloset-liquidity-provision} Set the liquidity provision to true, allowing the beneficiary to withdraw released gold. @@ -775,7 +775,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/set-liquidity-provision.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/set-liquidity-provision.ts)_ -## `celocli releasecelo:set-max-distribution` +## `celocli releasecelo:set-max-distribution` {#celocli-releaseceloset-max-distribution} Set the maximum distribution of celo for the given contract @@ -841,7 +841,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/set-max-distribution.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/set-max-distribution.ts)_ -## `celocli releasecelo:show` +## `celocli releasecelo:show` {#celocli-releaseceloshow} Show info on a ReleaseGold instance contract. @@ -878,7 +878,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/show.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/show.ts)_ -## `celocli releasecelo:transfer-dollars` +## `celocli releasecelo:transfer-dollars` {#celocli-releasecelotransfer-dollars} Transfer Celo Dollars from the given contract address. Dollars may be accrued to the ReleaseGold contract via validator epoch rewards. @@ -945,7 +945,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/releasecelo/transfer-dollars.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/releasecelo/transfer-dollars.ts)_ -## `celocli releasecelo:withdraw` +## `celocli releasecelo:withdraw` {#celocli-releasecelowithdraw} Withdraws `value` released celo to the beneficiary address. Fails if `value` worth of celo has not been released yet. diff --git a/docs/cli/rewards.md b/docs/cli/rewards.md index 1a4bcfd60..0b1084cef 100644 --- a/docs/cli/rewards.md +++ b/docs/cli/rewards.md @@ -5,7 +5,7 @@ Show rewards information about a voter, registered Validator, or Validator Group * [`celocli rewards:show`](#celocli-rewardsshow) -## `celocli rewards:show` +## `celocli rewards:show` {#celocli-rewardsshow} Show rewards information about a voter, registered Validator, or Validator Group diff --git a/docs/cli/transfer.md b/docs/cli/transfer.md index 44c2717cc..580508191 100644 --- a/docs/cli/transfer.md +++ b/docs/cli/transfer.md @@ -10,7 +10,7 @@ Transfer CELO and Celo Dollars * [`celocli transfer:reals`](#celocli-transferreals) * [`celocli transfer:stable`](#celocli-transferstable) -## `celocli transfer:celo` +## `celocli transfer:celo` {#celocli-transfercelo} Transfer CELO to a specified address. (Note: this is the equivalent of the old transfer:gold) @@ -79,7 +79,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/transfer/celo.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/transfer/celo.ts)_ -## `celocli transfer:dollars` +## `celocli transfer:dollars` {#celocli-transferdollars} Transfer Celo Dollars (cUSD) to a specified address. @@ -147,7 +147,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/transfer/dollars.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/transfer/dollars.ts)_ -## `celocli transfer:erc20` +## `celocli transfer:erc20` {#celocli-transfererc20} Transfer ERC20 to a specified address @@ -216,7 +216,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/transfer/erc20.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/transfer/erc20.ts)_ -## `celocli transfer:euros` +## `celocli transfer:euros` {#celocli-transfereuros} Transfer Celo Euros (cEUR) to a specified address. @@ -284,7 +284,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/transfer/euros.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/transfer/euros.ts)_ -## `celocli transfer:reals` +## `celocli transfer:reals` {#celocli-transferreals} Transfer Celo Brazilian Real (cREAL) to a specified address. @@ -352,7 +352,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/transfer/reals.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/transfer/reals.ts)_ -## `celocli transfer:stable` +## `celocli transfer:stable` {#celocli-transferstable} Transfer a stable token to a specified address. diff --git a/docs/cli/validator.md b/docs/cli/validator.md index d05359270..95392656c 100644 --- a/docs/cli/validator.md +++ b/docs/cli/validator.md @@ -19,7 +19,7 @@ View and manage Validators * [`celocli validator:status`](#celocli-validatorstatus) * [`celocli validator:update-bls-public-key`](#celocli-validatorupdate-bls-public-key) -## `celocli validator:affiliate ARG1` +## `celocli validator:affiliate ARG1` {#celocli-validatoraffiliate-arg1} Affiliate a Validator with a Validator Group. This allows the Validator Group to add that Validator as a member. If the Validator is already a member of a Validator Group, affiliating with a different Group will remove the Validator from the first group's members. @@ -87,7 +87,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validator/affiliate.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validator/affiliate.ts)_ -## `celocli validator:community-rpc-nodes` +## `celocli validator:community-rpc-nodes` {#celocli-validatorcommunity-rpc-nodes} Displays a list of community RPC nodes for the currently elected validator groups @@ -134,7 +134,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli validator:deaffiliate` +## `celocli validator:deaffiliate` {#celocli-validatordeaffiliate} Deaffiliate a Validator from a Validator Group, and remove it from the Group if it is also a member. @@ -194,7 +194,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validator/deaffiliate.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validator/deaffiliate.ts)_ -## `celocli validator:deregister` +## `celocli validator:deregister` {#celocli-validatorderegister} Deregister a Validator. Wait the require lock period after the validator is no longer part of any group, then it will be possible to deregister the validator and start unlocking the CELO. If you wish to deregister your validator, you must first remove it from it's group, such as by deaffiliating it, then wait the required days before running this command. @@ -257,7 +257,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validator/deregister.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validator/deregister.ts)_ -## `celocli validator:downtime-slash` +## `celocli validator:downtime-slash` {#celocli-validatordowntime-slash} Downtime slash a validator @@ -335,7 +335,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validator/downtime-slash.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validator/downtime-slash.ts)_ -## `celocli validator:list` +## `celocli validator:list` {#celocli-validatorlist} List registered Validators, their name (if provided), affiliation, uptime score, and public keys used for validating. @@ -378,7 +378,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validator/list.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validator/list.ts)_ -## `celocli validator:register` +## `celocli validator:register` {#celocli-validatorregister} Register a new Validator @@ -449,7 +449,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validator/register.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validator/register.ts)_ -## `celocli validator:requirements` +## `celocli validator:requirements` {#celocli-validatorrequirements} List the Locked Gold requirements for registering a Validator. This consists of a value, which is the amount of CELO that needs to be locked in order to register, and a duration, which is the amount of time that CELO must stay locked following the deregistration of the Validator. @@ -507,7 +507,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validator/requirements.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validator/requirements.ts)_ -## `celocli validator:rpc-urls` +## `celocli validator:rpc-urls` {#celocli-validatorrpc-urls} Displays a list of community RPC nodes for the currently elected validator groups @@ -554,7 +554,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli validator:send-payment` +## `celocli validator:send-payment` {#celocli-validatorsend-payment} Sends the allocated epoch payment to a validator, their group, and delegation beneficiary. @@ -618,7 +618,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli validator:set-bitmaps` +## `celocli validator:set-bitmaps` {#celocli-validatorset-bitmaps} Set validator signature bitmaps for provided intervals @@ -689,7 +689,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validator/set-bitmaps.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validator/set-bitmaps.ts)_ -## `celocli validator:show ARG1` +## `celocli validator:show ARG1` {#celocli-validatorshow-arg1} Show information about a registered Validator. @@ -723,7 +723,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validator/show.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validator/show.ts)_ -## `celocli validator:signed-blocks` +## `celocli validator:signed-blocks` {#celocli-validatorsigned-blocks} Display a graph of blocks and whether the given signer's signature is included in each. A green '.' indicates the signature is present in that block, a red '✘' indicates the signature is not present. A yellow '~' indicates the signer is not elected for that block. @@ -816,7 +816,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validator/signed-blocks.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validator/signed-blocks.ts)_ -## `celocli validator:status` +## `celocli validator:status` {#celocli-validatorstatus} Shows the consensus status of a validator. This command will show whether a validator is currently elected, would be elected if an election were to be run right now, and the percentage of blocks signed and number of blocks successfully proposed within a given window. @@ -924,7 +924,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validator/status.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validator/status.ts)_ -## `celocli validator:update-bls-public-key` +## `celocli validator:update-bls-public-key` {#celocli-validatorupdate-bls-public-key} Update the BLS public key for a Validator to be used in consensus. diff --git a/docs/cli/validatorgroup.md b/docs/cli/validatorgroup.md index 4db97023f..f3246feec 100644 --- a/docs/cli/validatorgroup.md +++ b/docs/cli/validatorgroup.md @@ -13,7 +13,7 @@ View and manage Validator Groups * [`celocli validatorgroup:rpc-urls`](#celocli-validatorgrouprpc-urls) * [`celocli validatorgroup:show ARG1`](#celocli-validatorgroupshow-arg1) -## `celocli validatorgroup:commission` +## `celocli validatorgroup:commission` {#celocli-validatorgroupcommission} Manage the commission for a registered Validator Group. This represents the share of the epoch rewards given to elected Validators that goes to the group they are a member of. Updates must be made in a two step process where the group owner first calls uses the queue-update option, then after the required update delay, the apply option. The commission update delay, in blocks, can be viewed with the network:parameters command. A groups next commission update block can be checked with validatorgroup:show @@ -85,7 +85,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validatorgroup/commission.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validatorgroup/commission.ts)_ -## `celocli validatorgroup:community-rpc-nodes` +## `celocli validatorgroup:community-rpc-nodes` {#celocli-validatorgroupcommunity-rpc-nodes} Displays a list of community RPC nodes for the currently elected validator groups @@ -132,7 +132,7 @@ FLAG DESCRIPTIONS mainnet, celo, forno => Celo Mainnet chain', ``` -## `celocli validatorgroup:deregister` +## `celocli validatorgroup:deregister` {#celocli-validatorgroupderegister} Deregister a Validator Group. After the group lock perioid has passed it will be possible to deregister it start unlocking the CELO. If you wish to deregister your validator group, you must first remove all members, then wait the required time before running this command. @@ -194,7 +194,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validatorgroup/deregister.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validatorgroup/deregister.ts)_ -## `celocli validatorgroup:list` +## `celocli validatorgroup:list` {#celocli-validatorgrouplist} List registered Validator Groups, their names (if provided), commission, and members. @@ -236,7 +236,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validatorgroup/list.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validatorgroup/list.ts)_ -## `celocli validatorgroup:member ARG1` +## `celocli validatorgroup:member ARG1` {#celocli-validatorgroupmember-arg1} Add or remove members from a Validator Group @@ -314,7 +314,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validatorgroup/member.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validatorgroup/member.ts)_ -## `celocli validatorgroup:register` +## `celocli validatorgroup:register` {#celocli-validatorgroupregister} Register a new Validator Group @@ -380,7 +380,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validatorgroup/register.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validatorgroup/register.ts)_ -## `celocli validatorgroup:reset-slashing-multiplier ARG1` +## `celocli validatorgroup:reset-slashing-multiplier ARG1` {#celocli-validatorgroupreset-slashing-multiplier-arg1} Reset validator group slashing multiplier. @@ -438,7 +438,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validatorgroup/reset-slashing-multiplier.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validatorgroup/reset-slashing-multiplier.ts)_ -## `celocli validatorgroup:rpc-urls` +## `celocli validatorgroup:rpc-urls` {#celocli-validatorgrouprpc-urls} Displays a list of community RPC nodes for the currently elected validator groups @@ -487,7 +487,7 @@ FLAG DESCRIPTIONS _See code: [src/commands/validatorgroup/rpc-urls.ts](https://github.com/celo-org/developer-tooling/tree/master/packages/cli/src/commands/validatorgroup/rpc-urls.ts)_ -## `celocli validatorgroup:show ARG1` +## `celocli validatorgroup:show ARG1` {#celocli-validatorgroupshow-arg1} Show information about an existing Validator Group From 5134935844c35cc1ef60153767f8a50ca565fdf9 Mon Sep 17 00:00:00 2001 From: viral-sangani Date: Sun, 16 Mar 2025 15:31:28 +0530 Subject: [PATCH 2/5] Refactor Docusaurus configuration and update dependencies - Updated import statements for `remark-math` and `rehype-katex` to use default exports. - Added Tailwind CSS configuration file and integrated it into the Docusaurus setup. - Removed inline Tailwind CSS plugin configuration from `tailwind.config.js`. - Updated various dependencies in `package.json` to their latest versions, including Docusaurus plugins and Tailwind CSS. - Introduced a new PostCSS configuration file for Tailwind CSS. - Modified CSS to ensure compatibility with Tailwind CSS v4 changes. - Adjusted event handling in Showcase components to use a new blur event. --- docusaurus.config.js | 20 +- package.json | 61 +- postcss.config.mjs | 5 + src/css/custom.css | 24 +- .../_components/ShowcaseTagSelect/index.tsx | 2 +- .../_components/ShowcaseTooltip/index.tsx | 10 +- .../_components/ShowcaseTagSelect/index.tsx | 2 +- .../_components/ShowcaseTooltip/index.tsx | 2 +- src/plugins/tailwind-config.js | 9 + tailwind.config.js | 13 - yarn.lock | 673 ++++++++++++------ 11 files changed, 526 insertions(+), 295 deletions(-) create mode 100644 postcss.config.mjs create mode 100644 src/plugins/tailwind-config.js diff --git a/docusaurus.config.js b/docusaurus.config.js index 0c451aa54..84f44da50 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -1,7 +1,7 @@ /** @type {import('@docusaurus/types').DocusaurusConfig} */ const path = require("path"); -const math = require("remark-math"); -const katex = require("rehype-katex"); +const math = require("remark-math").default; +const katex = require("rehype-katex").default; const DefaultLocale = "en"; module.exports = { @@ -50,6 +50,7 @@ module.exports = { require.resolve("docusaurus-plugin-fathom"), path.resolve(__dirname, "src/plugins/aliases.ts"), path.resolve(__dirname, "src/plugins/web3-polyfill.ts"), + "./src/plugins/tailwind-config.js", [ "@docusaurus/plugin-ideal-image", { @@ -61,17 +62,6 @@ module.exports = { disableInDev: true, }, ], - async function myPlugin(context, options) { - return { - name: "docusaurus-tailwindcss", - configurePostCss(postcssOptions) { - // Appends TailwindCSS and AutoPrefixer. - postcssOptions.plugins.push(require("tailwindcss")); - postcssOptions.plugins.push(require("autoprefixer")); - return postcssOptions; - }, - }; - }, ], themeConfig: { twitterImage: "img/preview.png", @@ -323,14 +313,10 @@ module.exports = { { docs: { sidebarPath: require.resolve("./sidebars.js"), - // Please change this to your repo. - editUrl: "https://github.com/celo-org/docs/edit/main/", editUrl: ({ locale, versionDocsDirPath, docPath }) => { - // Link to Crowdin for French docs if (locale !== DefaultLocale) { return `https://celo.crowdin.com/celo-docs/${locale}`; } - // Link to Github for English docs return `https://github.com/celo-org/docs/edit/main/docs/${docPath}`; }, routeBasePath: "/", diff --git a/package.json b/package.json index d3e221596..a070bf5ad 100644 --- a/package.json +++ b/package.json @@ -19,50 +19,51 @@ "crowdin:sync": "docusaurus write-translations && crowdin upload && crowdin download" }, "dependencies": { - "@algolia/client-search": "^5.0.0", - "@cookbookdev/docsbot": "^4.21.5", - "@crowdin/cli": "^4.0.0", - "@docusaurus/core": "^3.0.0", - "@docusaurus/plugin-client-redirects": "^3.0.0", - "@docusaurus/plugin-ideal-image": "^3.0.0", - "@docusaurus/preset-classic": "^3.0.0", - "@docusaurus/remark-plugin-npm2yarn": "^3.0.0", - "@docusaurus/theme-live-codeblock": "^3.0.0", - "@docusaurus/theme-mermaid": "^3.0.1", - "@mdx-js/react": "^3.0.0", - "@popperjs/core": "^2.11.5", + "@algolia/client-search": "^5.21.0", + "@cookbookdev/docsbot": "^4.24.14", + "@crowdin/cli": "^4.6.1", + "@docusaurus/core": "^3.7.0", + "@docusaurus/plugin-client-redirects": "^3.7.0", + "@docusaurus/plugin-ideal-image": "^3.7.0", + "@docusaurus/preset-classic": "^3.7.0", + "@docusaurus/remark-plugin-npm2yarn": "^3.7.0", + "@docusaurus/theme-live-codeblock": "^3.7.0", + "@docusaurus/theme-mermaid": "^3.7.0", + "@mdx-js/react": "^3.1.0", + "@popperjs/core": "^2.11.8", "@saucelabs/theme-github-codeblock": "^0.3.0", - "assert": "^2.0.0", - "autoprefixer": "^10.4.13", - "buffer": "^6.0.3", - "clsx": "^2.0.0", - "crypto-browserify": "^3.12.0", - "docusaurus-plugin-fathom": "^1.1.0", "@stackql/docusaurus-plugin-hubspot": "^1.1.0", + "@tailwindcss/postcss": "^4.0.14", + "assert": "^2.1.0", + "autoprefixer": "^10.4.21", + "buffer": "^6.0.3", + "clsx": "^2.1.1", + "crypto-browserify": "^3.12.1", + "docusaurus-plugin-fathom": "^1.2.0", "fs": "^0.0.1-security", "hast-util-is-element": "3.0.0", "https-browserify": "^1.0.0", - "mermaid": "^11.0.0", + "mermaid": "^11.5.0", "net": "^1.0.2", "os-browserify": "^0.3.0", - "postcss": "^8.4.20", - "prism-react-renderer": "^2.1.0", + "postcss": "^8.5.3", + "prism-react-renderer": "^2.4.1", "process": "^0.11.10", "prop-types": "^15", "react": "^19.0.0", "react-dom": "^19.0.0", - "react-lite-youtube-embed": "^2.2.2", + "react-lite-youtube-embed": "^2.4.0", "react-loadable": "^5.5.0", "react-popper": "^2.3.0", - "react-youtube": "^10.0.0", + "react-youtube": "^10.1.0", "rehype-katex": "7", "remark-math": "6", - "search-insights": "^2.13.0", + "search-insights": "^2.17.3", "stream-browserify": "^3.0.0", "stream-http": "^3.2.0", - "tailwindcss": "^3.2.4", + "tailwindcss": "^4.0.14", "unist-util-visit": "^5.0.0", - "url": "^0.11.0" + "url": "^0.11.4" }, "browserslist": { "production": [ @@ -79,10 +80,10 @@ "devDependencies": { "@docusaurus/module-type-aliases": "3.7.0", "@docusaurus/tsconfig": "3.7.0", - "@types/react": "^19.0.0", - "@types/react-helmet": "^6.1.1", - "@types/react-router-dom": "^5.1.7", + "@types/react": "^19.0.10", + "@types/react-helmet": "^6.1.11", + "@types/react-router-dom": "^5.3.3", "prettier": "3.5.3", - "typescript": "~5.7.0" + "typescript": "~5.8.2" } } diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 000000000..c2ddf7482 --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,5 @@ +export default { + plugins: { + "@tailwindcss/postcss": {}, + }, +}; diff --git a/src/css/custom.css b/src/css/custom.css index c29c217a0..e7d900152 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -1,6 +1,24 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import 'tailwindcss'; + +@config '../../tailwind.config.js'; + +/* + The default border color has changed to `currentColor` in Tailwind CSS v4, + so we've added these compatibility styles to make sure everything still + looks the same as it did with Tailwind CSS v3. + + If we ever want to remove these styles, we need to add an explicit border + color utility to any element that depends on these defaults. +*/ +@layer base { + *, + ::after, + ::before, + ::backdrop, + ::file-selector-button { + border-color: var(--color-gray-200, currentColor); + } +} /* stylelint-disable docusaurus/copyright-header */ /** diff --git a/src/pages/home/_components/ShowcaseTagSelect/index.tsx b/src/pages/home/_components/ShowcaseTagSelect/index.tsx index 8d753a290..834ea606c 100644 --- a/src/pages/home/_components/ShowcaseTagSelect/index.tsx +++ b/src/pages/home/_components/ShowcaseTagSelect/index.tsx @@ -79,7 +79,7 @@ function ShowcaseTagSelect( } }} onBlur={(e) => { - e.target.nextElementSibling?.dispatchEvent(new KeyboardEvent("blur")); + e.target.nextElementSibling?.dispatchEvent(new KeyboardEvent("blur-sm")); }} onChange={toggleTag} checked={selected} diff --git a/src/pages/home/_components/ShowcaseTooltip/index.tsx b/src/pages/home/_components/ShowcaseTooltip/index.tsx index 3d431505f..5a630fae9 100644 --- a/src/pages/home/_components/ShowcaseTooltip/index.tsx +++ b/src/pages/home/_components/ShowcaseTooltip/index.tsx @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import React, { useEffect, useState, useRef } from "react"; +import React, { useEffect, useRef, useState } from "react"; import ReactDOM from "react-dom"; import { usePopper } from "react-popper"; import styles from "./styles.module.css"; @@ -25,7 +25,7 @@ export default function Tooltip({ }: Props): JSX.Element { const [open, setOpen] = useState(false); const [referenceElement, setReferenceElement] = useState( - null + null, ); const [popperElement, setPopperElement] = useState(null); const [arrowElement, setArrowElement] = useState(null); @@ -48,7 +48,7 @@ export default function Tooltip({ }, }, ], - } + }, ); const timeout = useRef(null); @@ -68,7 +68,7 @@ export default function Tooltip({ useEffect(() => { const showEvents = ["mouseenter", "focus"]; - const hideEvents = ["mouseleave", "blur"]; + const hideEvents = ["mouseleave", "blur-sm"]; const handleOpen = () => { // There is no point in displaying an empty tooltip. @@ -138,7 +138,7 @@ export default function Tooltip({ /> ), - container + container, ) : container} diff --git a/src/pages/showcase/_components/ShowcaseTagSelect/index.tsx b/src/pages/showcase/_components/ShowcaseTagSelect/index.tsx index 027354215..b6318b359 100644 --- a/src/pages/showcase/_components/ShowcaseTagSelect/index.tsx +++ b/src/pages/showcase/_components/ShowcaseTagSelect/index.tsx @@ -79,7 +79,7 @@ function ShowcaseTagSelect( } }} onBlur={(e) => { - e.target.nextElementSibling?.dispatchEvent(new KeyboardEvent("blur")); + e.target.nextElementSibling?.dispatchEvent(new KeyboardEvent("blur-sm")); }} onChange={toggleTag} checked={selected} diff --git a/src/pages/showcase/_components/ShowcaseTooltip/index.tsx b/src/pages/showcase/_components/ShowcaseTooltip/index.tsx index 3d431505f..7bf256efa 100644 --- a/src/pages/showcase/_components/ShowcaseTooltip/index.tsx +++ b/src/pages/showcase/_components/ShowcaseTooltip/index.tsx @@ -68,7 +68,7 @@ export default function Tooltip({ useEffect(() => { const showEvents = ["mouseenter", "focus"]; - const hideEvents = ["mouseleave", "blur"]; + const hideEvents = ["mouseleave", "blur-sm"]; const handleOpen = () => { // There is no point in displaying an empty tooltip. diff --git a/src/plugins/tailwind-config.js b/src/plugins/tailwind-config.js new file mode 100644 index 000000000..b02f9541f --- /dev/null +++ b/src/plugins/tailwind-config.js @@ -0,0 +1,9 @@ +module.exports = function tailwindPlugin(context, options) { + return { + name: "tailwind-plugin", + configurePostCss(postcssOptions) { + postcssOptions.plugins = [require("@tailwindcss/postcss")]; + return postcssOptions; + }, + }; +}; diff --git a/tailwind.config.js b/tailwind.config.js index 23b0c6721..b1c9417cc 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -31,17 +31,4 @@ module.exports = { }, }, }, - plugins: [ - async function myPlugin(context, options) { - return { - name: "docusaurus-tailwindcss", - configurePostCss(postcssOptions) { - // Appends TailwindCSS and AutoPrefixer. - postcssOptions.plugins.push(require("tailwindcss")); - postcssOptions.plugins.push(require("autoprefixer")); - return postcssOptions; - }, - }; - }, - ], }; diff --git a/yarn.lock b/yarn.lock index 727eed6fa..8bc324030 100644 --- a/yarn.lock +++ b/yarn.lock @@ -59,10 +59,10 @@ resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.20.0.tgz#0b6b96c779d30afada68cf36f20f0c280e3f1273" integrity sha512-iSTFT3IU8KNpbAHcBUJw2HUrPnMXeXLyGajmCL7gIzWOsYM4GabZDHXOFx93WGiXMti1dymz8k8R+bfHv1YZmA== -"@algolia/client-common@5.20.4": - version "5.20.4" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.20.4.tgz#e7451f4f96802fcaf3043796c74748733b2fe973" - integrity sha512-OCGa8hKAP6kQKBwi+tu9flTXshz4qeCK5P8J6bI1qq8KYs+/TU1xSotT+E7hO+uyDanGU6dT6soiMSi4A38JgA== +"@algolia/client-common@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.21.0.tgz#f32c28d25ccaf2954aca5ae5954a810fdef5b85e" + integrity sha512-iHLgDQFyZNe9M16vipbx6FGOA8NoMswHrfom/QlCGoyh7ntjGvfMb+J2Ss8rRsAlOWluv8h923Ku3QVaB0oWDQ== "@algolia/client-insights@5.20.0": version "5.20.0" @@ -104,15 +104,15 @@ "@algolia/requester-fetch" "5.20.0" "@algolia/requester-node-http" "5.20.0" -"@algolia/client-search@^5.0.0": - version "5.20.4" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.20.4.tgz#4310cd622c821443a7f00e3445cdef254de90f28" - integrity sha512-hXM2LpwTzG5kGQSyq3feIijzzl6vkjYPP+LF3ru1relNUIh7fWJ4uYQay2NMNbWX5LWQzF8Vr9qlIA139doQXg== +"@algolia/client-search@^5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.21.0.tgz#37807d286a18e59b32af06dc62d4bd853d50121c" + integrity sha512-nZfgJH4njBK98tFCmCW1VX/ExH4bNOl9DSboxeXGgvhoL0fG1+4DDr/mrLe21OggVCQqHwXBMh6fFInvBeyhiQ== dependencies: - "@algolia/client-common" "5.20.4" - "@algolia/requester-browser-xhr" "5.20.4" - "@algolia/requester-fetch" "5.20.4" - "@algolia/requester-node-http" "5.20.4" + "@algolia/client-common" "5.21.0" + "@algolia/requester-browser-xhr" "5.21.0" + "@algolia/requester-fetch" "5.21.0" + "@algolia/requester-node-http" "5.21.0" "@algolia/events@^4.0.1": version "4.0.1" @@ -156,12 +156,12 @@ dependencies: "@algolia/client-common" "5.20.0" -"@algolia/requester-browser-xhr@5.20.4": - version "5.20.4" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.20.4.tgz#4ab94d44817a06fdc208fe5cf19ed6297588f62a" - integrity sha512-Y8GThjDVdhFUurZKKDdzAML/LNKOA/BOydEcaFeb/g4Iv4Iq0qQJs6aIbtdsngUU6cu74qH/2P84kr2h16uVvQ== +"@algolia/requester-browser-xhr@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.21.0.tgz#7840e52a45fd8a7b58340470c4700492d32fdf7d" + integrity sha512-Iw+Yj5hOmo/iixHS94vEAQ3zi5GPpJywhfxn1el/zWo4AvPIte/+1h9Ywgw/+3M7YBj4jgAkScxjxQCxzLBsjA== dependencies: - "@algolia/client-common" "5.20.4" + "@algolia/client-common" "5.21.0" "@algolia/requester-fetch@5.20.0": version "5.20.0" @@ -170,12 +170,12 @@ dependencies: "@algolia/client-common" "5.20.0" -"@algolia/requester-fetch@5.20.4": - version "5.20.4" - resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.20.4.tgz#d8d640735b7a80f3497ab200f4451ee16415af6e" - integrity sha512-OrAUSrvbFi46U7AxOXkyl9QQiaW21XWpixWmcx3D2S65P/DCIGOVE6K2741ZE+WiKIqp+RSYkyDFj3BiFHzLTg== +"@algolia/requester-fetch@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.21.0.tgz#8c4caf767995aaf24c8fc5f873e9075df98fbf44" + integrity sha512-Z00SRLlIFj3SjYVfsd9Yd3kB3dUwQFAkQG18NunWP7cix2ezXpJqA+xAoEf9vc4QZHdxU3Gm8gHAtRiM2iVaTQ== dependencies: - "@algolia/client-common" "5.20.4" + "@algolia/client-common" "5.21.0" "@algolia/requester-node-http@5.20.0": version "5.20.0" @@ -184,12 +184,12 @@ dependencies: "@algolia/client-common" "5.20.0" -"@algolia/requester-node-http@5.20.4": - version "5.20.4" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.20.4.tgz#fa493402a29af2a2197a62e8d2ecc37aa96f17e5" - integrity sha512-Jc/bofGBw4P9nBii4oCzCqqusv8DAFFORfUD2Ce1cZk3fvUPk+q/Qnu7i9JpTSHjMc0MWzqApLdq7Nwh1gelLg== +"@algolia/requester-node-http@5.21.0": + version "5.21.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.21.0.tgz#c1a8cd0f33e375c147bc5efda73f9677a47416c9" + integrity sha512-WqU0VumUILrIeVYCTGZlyyZoC/tbvhiyPxfGRRO1cSjxN558bnJLlR2BvS0SJ5b75dRNK7HDvtXo2QoP9eLfiA== dependencies: - "@algolia/client-common" "5.20.4" + "@algolia/client-common" "5.21.0" "@alloc/quick-lru@^5.2.0": version "5.2.0" @@ -212,11 +212,24 @@ package-manager-detector "^0.2.0" tinyexec "^0.3.0" +"@antfu/install-pkg@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-1.0.0.tgz#2912a150fc8b35ec912f583f90074ee98f64d66a" + integrity sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw== + dependencies: + package-manager-detector "^0.2.8" + tinyexec "^0.3.2" + "@antfu/utils@^0.7.10": version "0.7.10" resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d" integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== +"@antfu/utils@^8.1.0": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-8.1.1.tgz#95b1947d292a9a2efffba2081796dcaa05ecedfb" + integrity sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ== + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.2", "@babel/code-frame@^7.8.3": version "7.26.2" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" @@ -1105,7 +1118,7 @@ "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" -"@braintree/sanitize-url@^7.0.1": +"@braintree/sanitize-url@^7.0.1", "@braintree/sanitize-url@^7.0.4": version "7.1.1" resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz#15e19737d946559289b915e5dad3b4c28407735e" integrity sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw== @@ -1147,10 +1160,10 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cookbookdev/docsbot@^4.21.5": - version "4.24.10" - resolved "https://registry.yarnpkg.com/@cookbookdev/docsbot/-/docsbot-4.24.10.tgz#6f15d3d82abddb0fc0331a79368484433bac3d2d" - integrity sha512-QyDSoXs403fQmwkvBXtMxbVcRlrReFKzHMGHQ4XpcZnGFHVwzeBONxB9POfPL65ZVVw5UBhH9DC5AmNcKc0Mnw== +"@cookbookdev/docsbot@^4.24.14": + version "4.24.14" + resolved "https://registry.yarnpkg.com/@cookbookdev/docsbot/-/docsbot-4.24.14.tgz#fda7c16ea2ebcb90da1fba7810d972003e0718e5" + integrity sha512-aiSMpx6e2iF2s5RD0b38uN25G7rmlT0glMwpTfNvoibM3CurFzmyYYvTsV+iDV51OSkm9PRaW1RFzsoIcDMvIg== dependencies: "@cookbookdev/sonner" "1.5.1" "@headlessui/react" "^1.7.18" @@ -1218,16 +1231,16 @@ resolved "https://registry.yarnpkg.com/@cookbookdev/sonner/-/sonner-1.5.1.tgz#a50b53a1287d0a373e2fc1b2aea78cf1b45b82bb" integrity sha512-MqPxvFpWKRWuYpKv6ktnT+nGa2mk4jz+OVgunlpIxqfLgMvJ/PSg9OQv0+QlR6iAbThyjiedD6exULSgogPTmA== -"@crowdin/cli@^4.0.0": - version "4.5.2" - resolved "https://registry.yarnpkg.com/@crowdin/cli/-/cli-4.5.2.tgz#63bd3a1899af342bdaef5f9b36fb96978258eb1f" - integrity sha512-VOHAsDKL3Iug1sFjburOaJ8Z9H5coZtRcADlXfgW9GNFErXZiRSYEYfCyW4VzRpsvvr93kHfmBcFwCBq/1YqIQ== +"@crowdin/cli@^4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@crowdin/cli/-/cli-4.6.1.tgz#c7ebb385049b525c79d4f8e81adfacdcbb40ac64" + integrity sha512-deafwtmxV8rWQYJhKRVdtnunWwmKmPrPRcVZ+FqxoUivCkMJ2uvduQld5AfCpfQmripE0tI3VpuSBhgz7m40Cg== dependencies: command-exists-promise "^2.0.2" node-fetch "2.7.0" shelljs "^0.8.5" - tar "^6.2.0" - yauzl "^3.1.0" + tar "^7.4.3" + yauzl "^3.2.0" "@csstools/cascade-layer-name-parser@^2.0.4": version "2.0.4" @@ -1623,7 +1636,7 @@ webpack "^5.95.0" webpackbar "^6.0.1" -"@docusaurus/core@3.7.0", "@docusaurus/core@^3.0.0": +"@docusaurus/core@3.7.0", "@docusaurus/core@^3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.7.0.tgz#e871586d099093723dfe6de81c1ce610aeb20292" integrity sha512-b0fUmaL+JbzDIQaamzpAFpTviiaU4cX3Qz8cuo14+HGBCwa0evEK0UYCBFY3n4cLzL8Op1BueeroUD2LYAIHbQ== @@ -1743,7 +1756,7 @@ react-helmet-async "npm:@slorber/react-helmet-async@*" react-loadable "npm:@docusaurus/react-loadable@6.0.0" -"@docusaurus/plugin-client-redirects@^3.0.0": +"@docusaurus/plugin-client-redirects@^3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.7.0.tgz#b5cf92529768c457c01ad350bfc50862c6149463" integrity sha512-6B4XAtE5ZVKOyhPgpgMkb7LwCkN+Hgd4vOnlbwR8nCdTQhLjz8MHbGlwwvZ/cay2SPNRX5KssqKAlcHVZP2m8g== @@ -1862,7 +1875,7 @@ "@docusaurus/utils-validation" "3.7.0" tslib "^2.6.0" -"@docusaurus/plugin-ideal-image@^3.0.0": +"@docusaurus/plugin-ideal-image@^3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.7.0.tgz#85d44db4fda8a07ad8d6882f1ef5e478dd0c715c" integrity sha512-1IKmXJ6I7WKxfESdCMroechuoQEo1IZzIOhQlga8m7ioHzu+sb+Egnyrau2buCYh0QJ8gZoXtscSt5TBFlzMOQ== @@ -1908,7 +1921,7 @@ tslib "^2.6.0" webpack "^5.88.1" -"@docusaurus/preset-classic@^3.0.0": +"@docusaurus/preset-classic@^3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.7.0.tgz#f6656a04ae6a4877523dbd04f7c491632e4003b9" integrity sha512-nPHj8AxDLAaQXs+O6+BwILFuhiWbjfQWrdw2tifOClQoNfuXDjfjogee6zfx6NGHWqshR23LrcN115DmkHC91Q== @@ -1928,7 +1941,7 @@ "@docusaurus/theme-search-algolia" "3.7.0" "@docusaurus/types" "3.7.0" -"@docusaurus/remark-plugin-npm2yarn@^3.0.0": +"@docusaurus/remark-plugin-npm2yarn@^3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@docusaurus/remark-plugin-npm2yarn/-/remark-plugin-npm2yarn-3.7.0.tgz#ccbd81c0990dce2862240211897e45a1d63c6859" integrity sha512-2QkZh75vZzPefW5Ljt8gwc1i0ERuS0MRZTEwHsSXSi6vc2NpLVbcmfIuHhwR8o0PcGVTxmBEhQRP0NN1vHdOAA== @@ -1996,7 +2009,7 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-live-codeblock@^3.0.0": +"@docusaurus/theme-live-codeblock@^3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@docusaurus/theme-live-codeblock/-/theme-live-codeblock-3.7.0.tgz#efdd69d73ea38a2a6e5b83907c41847b689a7b0a" integrity sha512-peLs77sk+TuHjAnhyhT8IH3Qsr/zewpwHg5A4EOe/8K4Lj2T8fhro1/Dj66FS8784wwAoxhy5A9Ux9Rsp8h87w== @@ -2011,7 +2024,7 @@ react-live "^4.1.6" tslib "^2.6.0" -"@docusaurus/theme-mermaid@^3.0.1": +"@docusaurus/theme-mermaid@^3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@docusaurus/theme-mermaid/-/theme-mermaid-3.7.0.tgz#1bc4307e09886186ed6e51607bf43c5089f35de5" integrity sha512-7kNDvL7hm+tshjxSxIqYMtsLUPsEBYnkevej/ext6ru9xyLgCed+zkvTfGzTWNeq8rJIEe2YSS8/OV5gCVaPCw== @@ -2222,6 +2235,20 @@ local-pkg "^0.5.1" mlly "^1.7.3" +"@iconify/utils@^2.1.33": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.3.0.tgz#1bbbf8c477ebe9a7cacaea78b1b7e8937f9cbfba" + integrity sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA== + dependencies: + "@antfu/install-pkg" "^1.0.0" + "@antfu/utils" "^8.1.0" + "@iconify/types" "^2.0.0" + debug "^4.4.0" + globals "^15.14.0" + kolorist "^1.8.0" + local-pkg "^1.0.0" + mlly "^1.7.4" + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -2234,6 +2261,13 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" +"@isaacs/fs-minipass@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz#2d59ae3ab4b38fb4270bfa23d30f8e2e86c7fe32" + integrity sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w== + dependencies: + minipass "^7.0.4" + "@jest/schemas@^29.6.3": version "29.6.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" @@ -2399,7 +2433,7 @@ unist-util-visit "^5.0.0" vfile "^6.0.0" -"@mdx-js/react@^3.0.0": +"@mdx-js/react@^3.0.0", "@mdx-js/react@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.1.0.tgz#c4522e335b3897b9a845db1dbdd2f966ae8fb0ed" integrity sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ== @@ -2571,7 +2605,7 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73" integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw== -"@popperjs/core@^2.11.5": +"@popperjs/core@^2.11.8": version "2.11.8" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== @@ -3451,6 +3485,99 @@ resolved "https://registry.yarnpkg.com/@tailwindcss/line-clamp/-/line-clamp-0.4.4.tgz#767cf8e5d528a5d90c9740ca66eb079f5e87d423" integrity sha512-5U6SY5z8N42VtrCrKlsTAA35gy2VSyYtHWCsg1H87NU1SXnEfekTVlrga9fzUDrrHcGi2Lb5KenUWb4lRQT5/g== +"@tailwindcss/node@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/node/-/node-4.0.14.tgz#e3a86cd35d96ba02ff78b4d49a690705f3aad81f" + integrity sha512-Ux9NbFkKWYE4rfUFz6M5JFLs/GEYP6ysxT8uSyPn6aTbh2K3xDE1zz++eVK4Vwx799fzMF8CID9sdHn4j/Ab8w== + dependencies: + enhanced-resolve "^5.18.1" + jiti "^2.4.2" + tailwindcss "4.0.14" + +"@tailwindcss/oxide-android-arm64@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.14.tgz#fe72779aa283114e28fdc97043bb14ca8f33bc07" + integrity sha512-VBFKC2rFyfJ5J8lRwjy6ub3rgpY186kAcYgiUr8ArR8BAZzMruyeKJ6mlsD22Zp5ZLcPW/FXMasJiJBx0WsdQg== + +"@tailwindcss/oxide-darwin-arm64@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.14.tgz#8c1d4275f421e415e739ac93607e002d801e78d5" + integrity sha512-U3XOwLrefGr2YQZ9DXasDSNWGPZBCh8F62+AExBEDMLDfvLLgI/HDzY8Oq8p/JtqkAY38sWPOaNnRwEGKU5Zmg== + +"@tailwindcss/oxide-darwin-x64@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.14.tgz#e426c2a8e93b0b7ef20a6af8eceda3de8f3b4094" + integrity sha512-V5AjFuc3ndWGnOi1d379UsODb0TzAS2DYIP/lwEbfvafUaD2aNZIcbwJtYu2DQqO2+s/XBvDVA+w4yUyaewRwg== + +"@tailwindcss/oxide-freebsd-x64@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.14.tgz#becc732dec8d8e8d5c44503206838e3b760604d2" + integrity sha512-tXvtxbaZfcPfqBwW3f53lTcyH6EDT+1eT7yabwcfcxTs+8yTPqxsDUhrqe9MrnEzpNkd+R/QAjJapfd4tjWdLg== + +"@tailwindcss/oxide-linux-arm-gnueabihf@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.14.tgz#23dfed7a7f6f6734cd676b7345e7a68041be382b" + integrity sha512-cSeLNWWqIWeSTmBntQvyY2/2gcLX8rkPFfDDTQVF8qbRcRMVPLxBvFVJyfSAYRNch6ZyVH2GI6dtgALOBDpdNA== + +"@tailwindcss/oxide-linux-arm64-gnu@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.14.tgz#a310ef6d3f7ddb6df5b87775a3c55c51369c3296" + integrity sha512-bwDWLBalXFMDItcSXzFk6y7QKvj6oFlaY9vM+agTlwFL1n1OhDHYLZkSjaYsh6KCeG0VB0r7H8PUJVOM1LRZyg== + +"@tailwindcss/oxide-linux-arm64-musl@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.14.tgz#4732cbcf05e55119002c2a29fe62b22023262ece" + integrity sha512-gVkJdnR/L6iIcGYXx64HGJRmlme2FGr/aZH0W6u4A3RgPMAb+6ELRLi+UBiH83RXBm9vwCfkIC/q8T51h8vUJQ== + +"@tailwindcss/oxide-linux-x64-gnu@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.14.tgz#432ebdc0d6d9be1b1cdf7cc9c6a422fc6c8d4f85" + integrity sha512-EE+EQ+c6tTpzsg+LGO1uuusjXxYx0Q00JE5ubcIGfsogSKth8n8i2BcS2wYTQe4jXGs+BQs35l78BIPzgwLddw== + +"@tailwindcss/oxide-linux-x64-musl@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.14.tgz#041a872f534f5d0484dc39cf28ddbdbcc25b857b" + integrity sha512-KCCOzo+L6XPT0oUp2Jwh233ETRQ/F6cwUnMnR0FvMUCbkDAzHbcyOgpfuAtRa5HD0WbTbH4pVD+S0pn1EhNfbw== + +"@tailwindcss/oxide-win32-arm64-msvc@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.14.tgz#8867b3b0d61ca6e775e4a217a27da3fbe1c9620d" + integrity sha512-AHObFiFL9lNYcm3tZSPqa/cHGpM5wOrNmM2uOMoKppp+0Hom5uuyRh0QkOp7jftsHZdrZUpmoz0Mp6vhh2XtUg== + +"@tailwindcss/oxide-win32-x64-msvc@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.14.tgz#49e625d84cc5979ac490cbe3dfdbdfe080f95f9c" + integrity sha512-rNXXMDJfCJLw/ZaFTOLOHoGULxyXfh2iXTGiChFiYTSgKBKQHIGEpV0yn5N25WGzJJ+VBnRjHzlmDqRV+d//oQ== + +"@tailwindcss/oxide@4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide/-/oxide-4.0.14.tgz#6dc19e336b84a1a885349612c0b46ab7c9834cae" + integrity sha512-M8VCNyO/NBi5vJ2cRcI9u8w7Si+i76a7o1vveoGtbbjpEYJZYiyc7f2VGps/DqawO56l3tImIbq2OT/533jcrA== + optionalDependencies: + "@tailwindcss/oxide-android-arm64" "4.0.14" + "@tailwindcss/oxide-darwin-arm64" "4.0.14" + "@tailwindcss/oxide-darwin-x64" "4.0.14" + "@tailwindcss/oxide-freebsd-x64" "4.0.14" + "@tailwindcss/oxide-linux-arm-gnueabihf" "4.0.14" + "@tailwindcss/oxide-linux-arm64-gnu" "4.0.14" + "@tailwindcss/oxide-linux-arm64-musl" "4.0.14" + "@tailwindcss/oxide-linux-x64-gnu" "4.0.14" + "@tailwindcss/oxide-linux-x64-musl" "4.0.14" + "@tailwindcss/oxide-win32-arm64-msvc" "4.0.14" + "@tailwindcss/oxide-win32-x64-msvc" "4.0.14" + +"@tailwindcss/postcss@^4.0.14": + version "4.0.14" + resolved "https://registry.yarnpkg.com/@tailwindcss/postcss/-/postcss-4.0.14.tgz#ce571535f3959103135b7edda4f3c7a6be26a666" + integrity sha512-+uIR6KtKhla1XeIanF27KtrfYy+PX+R679v5LxbkmEZlhQe3g8rk+wKj7Xgt++rWGRuFLGMXY80Ek8JNn+kN/g== + dependencies: + "@alloc/quick-lru" "^5.2.0" + "@tailwindcss/node" "4.0.14" + "@tailwindcss/oxide" "4.0.14" + lightningcss "1.29.2" + postcss "^8.4.41" + tailwindcss "4.0.14" + "@tanstack/react-table@^8.11.7": version "8.20.6" resolved "https://registry.yarnpkg.com/@tanstack/react-table/-/react-table-8.20.6.tgz#a1f3103327aa59aa621931f4087a7604a21054d0" @@ -3943,7 +4070,7 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react-helmet@^6.1.1": +"@types/react-helmet@^6.1.11": version "6.1.11" resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.11.tgz#8cafcafff38f75361f451563ba7b406b0c5d3907" integrity sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g== @@ -3959,7 +4086,7 @@ "@types/react" "*" "@types/react-router" "^5.1.0" -"@types/react-router-dom@*", "@types/react-router-dom@^5.1.7": +"@types/react-router-dom@*", "@types/react-router-dom@^5.3.3": version "5.3.3" resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== @@ -3976,7 +4103,7 @@ "@types/history" "^4.7.11" "@types/react" "*" -"@types/react@*", "@types/react@^19.0.0": +"@types/react@*", "@types/react@^19.0.10": version "19.0.10" resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.10.tgz#d0c66dafd862474190fe95ce11a68de69ed2b0eb" integrity sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g== @@ -4395,7 +4522,7 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -arg@^5.0.0, arg@^5.0.2: +arg@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== @@ -4438,7 +4565,7 @@ asn1.js@^4.10.1: inherits "^2.0.1" minimalistic-assert "^1.0.0" -assert@^2.0.0: +assert@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== @@ -4459,7 +4586,7 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@^10.4.13, autoprefixer@^10.4.19: +autoprefixer@^10.4.19: version "10.4.20" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== @@ -4471,6 +4598,18 @@ autoprefixer@^10.4.13, autoprefixer@^10.4.19: picocolors "^1.0.1" postcss-value-parser "^4.2.0" +autoprefixer@^10.4.21: + version "10.4.21" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" + integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== + dependencies: + browserslist "^4.24.4" + caniuse-lite "^1.0.30001702" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.1.1" + postcss-value-parser "^4.2.0" + available-typed-arrays@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" @@ -4760,7 +4899,7 @@ browserify-sign@^4.2.3: readable-stream "^2.3.8" safe-buffer "^5.2.1" -browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.23.0, browserslist@^4.23.1, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.3: +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.23.0, browserslist@^4.23.1, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.3, browserslist@^4.24.4: version "4.24.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== @@ -4873,11 +5012,6 @@ camel-case@^4.1.2: pascal-case "^3.1.2" tslib "^2.0.3" -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" @@ -4947,6 +5081,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz#39dfedd8f94851132795fdf9b79d29659ad9c4d4" integrity sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw== +caniuse-lite@^1.0.30001702: + version "1.0.30001705" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001705.tgz#dc3510bcdef261444ca944b7be9c8d0bb7fafeef" + integrity sha512-S0uyMMiYvA7CxNgomYBwwwPUnWzFD83f3B1ce5jHUfHTH//QL6hHsreI8RVC5606R4ssqravelYO5TU6t8sEyg== + ccount@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" @@ -5058,7 +5197,7 @@ chevrotain@~11.0.3: "@chevrotain/utils" "11.0.3" lodash-es "4.17.21" -chokidar@^3.4.2, chokidar@^3.5.3, chokidar@^3.6.0: +chokidar@^3.4.2, chokidar@^3.5.3: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -5078,10 +5217,10 @@ chownr@^1.1.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +chownr@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4" + integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== chrome-trace-event@^1.0.2: version "1.0.4" @@ -5141,7 +5280,7 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" -clsx@^2.0.0, clsx@^2.1.0: +clsx@^2.0.0, clsx@^2.1.0, clsx@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== @@ -5306,6 +5445,11 @@ confbox@^0.1.8: resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== +confbox@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.2.1.tgz#ae39f2c99699afa451d00206479f15f9a1208a8b" + integrity sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg== + config-chain@^1.1.11: version "1.1.13" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" @@ -5486,7 +5630,7 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypto-browserify@^3.12.0: +crypto-browserify@^3.12.1: version "3.12.1" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.1.tgz#bb8921bec9acc81633379aa8f52d69b0b69e0dac" integrity sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ== @@ -5723,6 +5867,11 @@ cytoscape@^3.29.2: resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.31.0.tgz#cffbbb8ca51db01cbf360e0cf59088db6d429837" integrity sha512-zDGn1K/tfZwEnoGOcHc0H4XazqAAXAuDpcYw9mUnUjATjqljyCNGJv8uEvbvxGaGHaVshxMecyl6oc6uKzRfbw== +cytoscape@^3.29.3: + version "3.31.1" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.31.1.tgz#29b12cac715fbb2aacc50cdf5cf1467aadde9c00" + integrity sha512-Hx5Mtb1+hnmAKaZZ/7zL1Y5HTFYOjdDswZy/jD+1WINRU8KVi1B7+vlHdsTwY+VCFucTreoyu1RDzQJ9u0d2Hw== + "d3-array@1 - 2": version "2.12.1" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" @@ -6002,7 +6151,7 @@ dagre-d3-es@7.0.11: d3 "^7.9.0" lodash-es "^4.17.21" -dayjs@^1.11.10: +dayjs@^1.11.10, dayjs@^1.11.13: version "1.11.13" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== @@ -6139,7 +6288,7 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-libc@^2.0.0, detect-libc@^2.0.2: +detect-libc@^2.0.0, detect-libc@^2.0.2, detect-libc@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== @@ -6177,11 +6326,6 @@ devlop@^1.0.0, devlop@^1.1.0: dependencies: dequal "^2.0.0" -didyoumean@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" - integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - diffie-hellman@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -6198,11 +6342,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - dns-packet@^5.2.2: version "5.6.1" resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" @@ -6210,7 +6349,7 @@ dns-packet@^5.2.2: dependencies: "@leichtgewicht/ip-codec" "^2.0.1" -docusaurus-plugin-fathom@^1.1.0: +docusaurus-plugin-fathom@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/docusaurus-plugin-fathom/-/docusaurus-plugin-fathom-1.2.0.tgz#0e99df109be7da2c6fab83c0cbfdb6e59fc9d339" integrity sha512-F6ieKLOqYfaBTtaCRXzb/aLBjKfX8LOUN3L+6DSp4hcXqPbs41Lvqt/CkOAUujP+qViUajQ7oB5gfUi33CHmWw== @@ -6274,6 +6413,13 @@ dompurify@^3.2.1: optionalDependencies: "@types/trusted-types" "^2.0.7" +dompurify@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.2.4.tgz#af5a5a11407524431456cf18836c55d13441cd8e" + integrity sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg== + optionalDependencies: + "@types/trusted-types" "^2.0.7" + domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" @@ -6404,6 +6550,14 @@ enhanced-resolve@^5.17.1: graceful-fs "^4.2.4" tapable "^2.2.0" +enhanced-resolve@^5.18.1: + version "5.18.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz#728ab082f8b7b6836de51f1637aab5d3b9568faf" + integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" @@ -6682,6 +6836,11 @@ express@^4.17.3: utils-merge "1.0.1" vary "~1.1.2" +exsolve@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/exsolve/-/exsolve-1.0.4.tgz#7de5c75af82ecd15998328fbf5f2295883be3a39" + integrity sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw== + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -6709,7 +6868,7 @@ fast-fifo@^1.2.0, fast-fifo@^1.3.2: resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== -fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.2: +fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: version "3.3.3" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== @@ -6958,13 +7117,6 @@ fs-extra@^9.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - fs-monkey@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" @@ -7051,7 +7203,7 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1, glob-parent@^6.0.2: +glob-parent@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -7063,7 +7215,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^10.3.10: +glob@^10.3.10, glob@^10.3.7: version "10.4.5" resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== @@ -7120,6 +7272,11 @@ globals@^15.13.0: resolved "https://registry.yarnpkg.com/globals/-/globals-15.14.0.tgz#b8fd3a8941ff3b4d38f3319d433b61bbb482e73f" integrity sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig== +globals@^15.14.0: + version "15.15.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.15.0.tgz#7c4761299d41c32b075715a4ce1ede7897ff72a8" + integrity sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg== + globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -8151,11 +8308,16 @@ jest-worker@^29.4.3: merge-stream "^2.0.0" supports-color "^8.0.0" -jiti@^1.17.1, jiti@^1.20.0, jiti@^1.21.6: +jiti@^1.17.1, jiti@^1.20.0: version "1.21.7" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.7.tgz#9dd81043424a3d28458b193d965f0d18a2300ba9" integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== +jiti@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.4.2.tgz#d19b7732ebb6116b06e2038da74a55366faef560" + integrity sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A== + joi@^17.9.2: version "17.13.3" resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" @@ -8338,7 +8500,75 @@ lie@~3.3.0: dependencies: immediate "~3.0.5" -lilconfig@^3.0.0, lilconfig@^3.1.1, lilconfig@^3.1.3: +lightningcss-darwin-arm64@1.29.2: + version "1.29.2" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz#6ceff38b01134af48e859394e1ca21e5d49faae6" + integrity sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA== + +lightningcss-darwin-x64@1.29.2: + version "1.29.2" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz#891b6f9e57682d794223c33463ca66d3af3fb038" + integrity sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w== + +lightningcss-freebsd-x64@1.29.2: + version "1.29.2" + resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz#8a95f9ab73b2b2b0beefe1599fafa8b058938495" + integrity sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg== + +lightningcss-linux-arm-gnueabihf@1.29.2: + version "1.29.2" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz#5c60bbf92b39d7ed51e363f7b98a7111bf5914a1" + integrity sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg== + +lightningcss-linux-arm64-gnu@1.29.2: + version "1.29.2" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz#e73d7608c4cce034c3654e5e8b53be74846224de" + integrity sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ== + +lightningcss-linux-arm64-musl@1.29.2: + version "1.29.2" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz#a95a18d5a909831c092e0a8d2de4b9ac1a8db151" + integrity sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ== + +lightningcss-linux-x64-gnu@1.29.2: + version "1.29.2" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz#551ca07e565394928642edee92acc042e546cb78" + integrity sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg== + +lightningcss-linux-x64-musl@1.29.2: + version "1.29.2" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz#2fd164554340831bce50285b57101817850dd258" + integrity sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w== + +lightningcss-win32-arm64-msvc@1.29.2: + version "1.29.2" + resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz#da43ea49fafc5d2de38e016f1a8539d5eed98318" + integrity sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw== + +lightningcss-win32-x64-msvc@1.29.2: + version "1.29.2" + resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz#ddefaa099a39b725b2f5bbdcb9fc718435cc9797" + integrity sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA== + +lightningcss@1.29.2: + version "1.29.2" + resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.29.2.tgz#f5f0fd6e63292a232697e6fe709da5b47624def3" + integrity sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA== + dependencies: + detect-libc "^2.0.3" + optionalDependencies: + lightningcss-darwin-arm64 "1.29.2" + lightningcss-darwin-x64 "1.29.2" + lightningcss-freebsd-x64 "1.29.2" + lightningcss-linux-arm-gnueabihf "1.29.2" + lightningcss-linux-arm64-gnu "1.29.2" + lightningcss-linux-arm64-musl "1.29.2" + lightningcss-linux-x64-gnu "1.29.2" + lightningcss-linux-x64-musl "1.29.2" + lightningcss-win32-arm64-msvc "1.29.2" + lightningcss-win32-x64-msvc "1.29.2" + +lilconfig@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== @@ -8380,6 +8610,15 @@ local-pkg@^0.5.1: mlly "^1.7.3" pkg-types "^1.2.1" +local-pkg@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-1.1.1.tgz#f5fe74a97a3bd3c165788ee08ca9fbe998dc58dd" + integrity sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg== + dependencies: + mlly "^1.7.4" + pkg-types "^2.0.1" + quansync "^0.2.8" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -8497,6 +8736,11 @@ marked@^13.0.2: resolved "https://registry.yarnpkg.com/marked/-/marked-13.0.3.tgz#5c5b4a5d0198060c7c9bc6ef9420a7fed30f822d" integrity sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA== +marked@^15.0.7: + version "15.0.7" + resolved "https://registry.yarnpkg.com/marked/-/marked-15.0.7.tgz#f67d7e34d202ce087e6b879107b5efb04e743314" + integrity sha512-dgLIeKGLx5FwziAnsk4ONoGwHwGPJzselimvlVskE9XLN4Orv9u2VA3GWw/lYUqjfA0rUT/6fqKwfZJapP9BEg== + math-intrinsics@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" @@ -8826,7 +9070,7 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -mermaid@>=10.4, mermaid@^11.0.0: +mermaid@>=10.4: version "11.4.1" resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-11.4.1.tgz#577fad5c31a01a06d9f793e298d411f1379eecc8" integrity sha512-Mb01JT/x6CKDWaxigwfZYuYmDZ6xtrNwNlidKZwkSrDaY9n90tdrJTV5Umk+wP1fZscGptmKFXHsXMDEVZ+Q6A== @@ -8852,6 +9096,32 @@ mermaid@>=10.4, mermaid@^11.0.0: ts-dedent "^2.2.0" uuid "^9.0.1" +mermaid@^11.5.0: + version "11.5.0" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-11.5.0.tgz#67f1dae9ddcc700b079bae6a5a7b605ea66e7928" + integrity sha512-IYhyukID3zzDj1EihKiN1lp+PXNImoJ3Iyz73qeDAgnus4BNGsJV1n471P4PyeGxPVONerZxignwGxGTSwZnlg== + dependencies: + "@braintree/sanitize-url" "^7.0.4" + "@iconify/utils" "^2.1.33" + "@mermaid-js/parser" "^0.3.0" + "@types/d3" "^7.4.3" + cytoscape "^3.29.3" + cytoscape-cose-bilkent "^4.1.0" + cytoscape-fcose "^2.2.0" + d3 "^7.9.0" + d3-sankey "^0.12.3" + dagre-d3-es "7.0.11" + dayjs "^1.11.13" + dompurify "^3.2.4" + katex "^0.16.9" + khroma "^2.1.0" + lodash-es "^4.17.21" + marked "^15.0.7" + roughjs "^4.6.6" + stylis "^4.3.6" + ts-dedent "^2.2.0" + uuid "^11.1.0" + messageformat-parser@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz#b824787f57fcda7d50769f5b63e8d4fda68f5b9e" @@ -9403,40 +9673,28 @@ minimist@^1.2.0, minimist@^1.2.3: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4, minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== +minizlib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.0.1.tgz#46d5329d1eb3c83924eff1d3b858ca0a31581012" + integrity sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg== dependencies: - minipass "^3.0.0" - yallist "^4.0.0" + minipass "^7.0.4" + rimraf "^5.0.5" mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mkdirp@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" + integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== mlly@^1.7.3, mlly@^1.7.4: version "1.7.4" @@ -9619,11 +9877,6 @@ object-assign@^4.0.1, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - object-inspect@^1.13.3: version "1.13.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" @@ -9820,6 +10073,13 @@ package-manager-detector@^0.2.0: resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-0.2.8.tgz#f5ace2dbd37666af54e5acec11bc37c8450f72d0" integrity sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA== +package-manager-detector@^0.2.8: + version "0.2.11" + resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-0.2.11.tgz#3af0b34f99d86d24af0a0620603d2e1180d05c9c" + integrity sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ== + dependencies: + quansync "^0.2.7" + pako@~1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" @@ -9995,6 +10255,11 @@ pathe@^2.0.1: resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.2.tgz#5ed86644376915b3c7ee4d00ac8c348d671da3a5" integrity sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w== +pathe@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" + integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== + pbkdf2@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" @@ -10021,11 +10286,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - pirates@^4.0.1: version "4.0.6" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" @@ -10047,6 +10307,15 @@ pkg-types@^1.2.1, pkg-types@^1.3.0: mlly "^1.7.4" pathe "^2.0.1" +pkg-types@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-2.1.0.tgz#70c9e1b9c74b63fdde749876ee0aa007ea9edead" + integrity sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A== + dependencies: + confbox "^0.2.1" + exsolve "^1.0.1" + pathe "^2.0.3" + pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" @@ -10255,22 +10524,6 @@ postcss-image-set-function@^7.0.0: "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -postcss-import@^15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" - integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-js@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" - integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== - dependencies: - camelcase-css "^2.0.1" - postcss-lab-function@^7.0.7: version "7.0.7" resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-7.0.7.tgz#9c87c21ce5132c55824190b75d7d7adede9c2fac" @@ -10282,14 +10535,6 @@ postcss-lab-function@^7.0.7: "@csstools/postcss-progressive-custom-properties" "^4.0.0" "@csstools/utilities" "^2.0.0" -postcss-load-config@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" - integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== - dependencies: - lilconfig "^3.0.0" - yaml "^2.3.4" - postcss-loader@^7.3.3: version "7.3.4" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" @@ -10392,13 +10637,6 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-nested@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" - integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== - dependencies: - postcss-selector-parser "^6.1.1" - postcss-nesting@^13.0.1: version "13.0.1" resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-13.0.1.tgz#c405796d7245a3e4c267a9956cacfe9670b5d43e" @@ -10612,7 +10850,7 @@ postcss-selector-not@^8.0.1: dependencies: postcss-selector-parser "^7.0.0" -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16, postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2: +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16: version "6.1.2" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== @@ -10650,7 +10888,7 @@ postcss-unique-selectors@^6.0.4: dependencies: postcss-selector-parser "^6.0.16" -postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== @@ -10669,7 +10907,7 @@ postcss@8.4.38: picocolors "^1.0.0" source-map-js "^1.2.0" -postcss@^8.4.20, postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4.38, postcss@^8.4.47: +postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4.38, postcss@^8.4.41, postcss@^8.5.3: version "8.5.3" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== @@ -10738,7 +10976,7 @@ pretty-time@^1.1.0: resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== -prism-react-renderer@^2.1.0, prism-react-renderer@^2.3.0, prism-react-renderer@^2.4.0: +prism-react-renderer@^2.3.0, prism-react-renderer@^2.4.0, prism-react-renderer@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz#ac63b7f78e56c8f2b5e76e823a976d5ede77e35f" integrity sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig== @@ -10854,6 +11092,11 @@ qs@^6.12.3: dependencies: side-channel "^1.1.0" +quansync@^0.2.7, quansync@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/quansync/-/quansync-0.2.8.tgz#2e893d17bb754ba0988ea399ff0bc5f2a8467793" + integrity sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -11004,7 +11247,7 @@ react-json-view-lite@^1.2.0: resolved "https://registry.yarnpkg.com/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz#377cc302821717ac79a1b6d099e1891df54c8662" integrity sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw== -react-lite-youtube-embed@^2.2.2: +react-lite-youtube-embed@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/react-lite-youtube-embed/-/react-lite-youtube-embed-2.4.0.tgz#1f56a12be1061d50431444d52d836bd09a1283a2" integrity sha512-Xo6cM1zPlROvvM97JkqQIoXstlQDaC4+DawmM7BB7Hh1cXrkBHEGq1iJlQxBTUWAUklmpcC7ph7qg7CztXtABQ== @@ -11164,7 +11407,7 @@ react-waypoint@^10.3.0: prop-types "^15.0.0" react-is "^17.0.1 || ^18.0.0" -react-youtube@^10.0.0: +react-youtube@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/react-youtube/-/react-youtube-10.1.0.tgz#7e5670c764f12eb408166e8eb438d788dc64e8b5" integrity sha512-ZfGtcVpk0SSZtWCSTYOQKhfx5/1cfyEW1JN/mugGNfAxT3rmVJeMbGpA9+e78yG21ls5nc/5uZJETE3cm3knBg== @@ -11178,13 +11421,6 @@ react@^19.0.0: resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - dependencies: - pify "^2.3.0" - readable-stream@^2.0.1, readable-stream@^2.3.8, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -11611,7 +11847,7 @@ resolve-pathname@^3.0.0: resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.14.2, resolve@^1.22.8: +resolve@^1.1.6, resolve@^1.14.2: version "1.22.10" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== @@ -11644,6 +11880,13 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" +rimraf@^5.0.5: + version "5.0.10" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c" + integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== + dependencies: + glob "^10.3.7" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -11751,7 +11994,7 @@ schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.3.0: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -search-insights@^2.13.0: +search-insights@^2.17.3: version "2.17.3" resolved "https://registry.yarnpkg.com/search-insights/-/search-insights-2.17.3.tgz#8faea5d20507bf348caba0724e5386862847b661" integrity sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ== @@ -12388,6 +12631,11 @@ stylis@^4.3.1: resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.5.tgz#432cc99c81e28d7062c88d979d2163891e860489" integrity sha512-K7npNOKGRYuhAFFzkzMGfxFDpN6gDwf8hcMiE+uveTVbBgm93HrNP3ZDUpKqzZ4pG7TP6fmb+EMAQPjq9FqqvA== +stylis@^4.3.6: + version "4.3.6" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.6.tgz#7c7b97191cb4f195f03ecab7d52f7902ed378320" + integrity sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ== + sucrase@^3.35.0: version "3.35.0" resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" @@ -12463,33 +12711,10 @@ tailwindcss-animate@^1.0.7: resolved "https://registry.yarnpkg.com/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz#318b692c4c42676cc9e67b19b78775742388bef4" integrity sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA== -tailwindcss@^3.2.4: - version "3.4.17" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.17.tgz#ae8406c0f96696a631c790768ff319d46d5e5a63" - integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og== - dependencies: - "@alloc/quick-lru" "^5.2.0" - arg "^5.0.2" - chokidar "^3.6.0" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.3.2" - glob-parent "^6.0.2" - is-glob "^4.0.3" - jiti "^1.21.6" - lilconfig "^3.1.3" - micromatch "^4.0.8" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.1.1" - postcss "^8.4.47" - postcss-import "^15.1.0" - postcss-js "^4.0.1" - postcss-load-config "^4.0.2" - postcss-nested "^6.2.0" - postcss-selector-parser "^6.1.2" - resolve "^1.22.8" - sucrase "^3.35.0" +tailwindcss@4.0.14, tailwindcss@^4.0.14: + version "4.0.14" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-4.0.14.tgz#531548524eb422fb8b89a24ebdf267c6726a09c6" + integrity sha512-92YT2dpt671tFiHH/e1ok9D987N9fHD5VWoly1CdPD/Cd1HMglvZwP3nx2yTj2lbXDAHt8QssZkxTLCCTNL+xw== tapable@^1.0.0: version "1.1.3" @@ -12542,17 +12767,17 @@ tar-stream@^3.1.5: fast-fifo "^1.2.0" streamx "^2.15.0" -tar@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" - integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== +tar@^7.4.3: + version "7.4.3" + resolved "https://registry.yarnpkg.com/tar/-/tar-7.4.3.tgz#88bbe9286a3fcd900e94592cda7a22b192e80571" + integrity sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw== dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" + "@isaacs/fs-minipass" "^4.0.0" + chownr "^3.0.0" + minipass "^7.1.2" + minizlib "^3.0.1" + mkdirp "^3.0.1" + yallist "^5.0.0" terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.9: version "5.3.11" @@ -12616,7 +12841,7 @@ tiny-warning@^1.0.0: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== -tinyexec@^0.3.0: +tinyexec@^0.3.0, tinyexec@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== @@ -12722,10 +12947,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@~5.7.0: - version "5.7.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.3.tgz#919b44a7dbb8583a9b856d162be24a54bf80073e" - integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw== +typescript@~5.8.2: + version "5.8.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.2.tgz#8170b3702f74b79db2e5a96207c15e65807999e4" + integrity sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ== ufo@^1.5.4: version "1.5.4" @@ -12980,7 +13205,7 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" -url@^0.11.0: +url@^0.11.4: version "0.11.4" resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c" integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== @@ -13044,6 +13269,11 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +uuid@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" + integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== + uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -13487,22 +13717,17 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yallist@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-5.0.0.tgz#00e2de443639ed0d78fd87de0d27469fbcffb533" + integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.3.4: - version "2.7.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.0.tgz#aef9bb617a64c937a9a748803786ad8d3ffe1e98" - integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA== - -yauzl@^3.1.0: +yauzl@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-3.2.0.tgz#7b6cb548f09a48a6177ea0be8ece48deb7da45c0" integrity sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w== From bfc6c90ba3c390160a44aa47cb5d58f0cae6e089 Mon Sep 17 00:00:00 2001 From: viral-sangani Date: Sun, 16 Mar 2025 16:52:00 +0530 Subject: [PATCH 3/5] Enhance homepage layout and functionality - Introduced new components for the homepage including DevResources, DiscoverSection, ExploreSection, and Footer to improve user engagement. - Added a custom Button component with variant support for consistent styling across the site. - Integrated new SVG icons for enhanced visual representation of features and resources. - Updated Docusaurus configuration to include a custom CSS file for additional styling. - Added new font faces for "Advercase" and "Futura" to enhance typography. - Included images for various features to improve the visual appeal of the homepage. --- docusaurus.config.js | 4 + package.json | 1 + src/components/Homepage/Button.tsx | 47 ++ src/components/Homepage/DevResources.tsx | 77 ++ src/components/Homepage/DiscoverSection.tsx | 55 ++ src/components/Homepage/ExploreSection.tsx | 80 ++ src/components/Homepage/FeatureCard.tsx | 80 ++ src/components/Homepage/Footer.tsx | 143 ++++ src/components/Homepage/GridPattern.tsx | 29 + .../Homepage/Pattern/DiscoverPattern.tsx | 24 + .../Homepage/Pattern/DiscoverPatternAlt.tsx | 94 +++ src/components/Homepage/StartBuilding.tsx | 31 + src/components/Homepage/icons/CeloLogo.tsx | 46 ++ .../Homepage/icons/ComposerCliIcon.tsx | 19 + src/components/Homepage/icons/LearnIcon.tsx | 19 + src/components/Homepage/icons/NetworkIcon.tsx | 19 + .../Homepage/icons/SmartPhoneIcon.tsx | 19 + src/css/custom.css | 37 +- src/pages/index.tsx | 745 +----------------- src/utils/utils.ts | 6 + static/fonts/advercase-bold.woff2 | Bin 0 -> 26064 bytes static/fonts/advercase-regular.woff2 | Bin 0 -> 25088 bytes static/fonts/futura-bold-font.ttf | Bin 0 -> 39444 bytes static/fonts/futura-book-font.ttf | Bin 0 -> 37688 bytes static/fonts/futura-light-font.ttf | Bin 0 -> 27400 bytes static/img/build-for-minipay.png | Bin 0 -> 98408 bytes static/img/self-protocol.png | Bin 0 -> 86536 bytes static/img/smart-phone.png | Bin 0 -> 202947 bytes static/img/tap-into-stables.png | Bin 0 -> 467668 bytes tailwind.config.js | 6 + yarn.lock | 7 + 31 files changed, 883 insertions(+), 705 deletions(-) create mode 100644 src/components/Homepage/Button.tsx create mode 100644 src/components/Homepage/DevResources.tsx create mode 100644 src/components/Homepage/DiscoverSection.tsx create mode 100644 src/components/Homepage/ExploreSection.tsx create mode 100644 src/components/Homepage/FeatureCard.tsx create mode 100644 src/components/Homepage/Footer.tsx create mode 100644 src/components/Homepage/GridPattern.tsx create mode 100644 src/components/Homepage/Pattern/DiscoverPattern.tsx create mode 100644 src/components/Homepage/Pattern/DiscoverPatternAlt.tsx create mode 100644 src/components/Homepage/StartBuilding.tsx create mode 100644 src/components/Homepage/icons/CeloLogo.tsx create mode 100644 src/components/Homepage/icons/ComposerCliIcon.tsx create mode 100644 src/components/Homepage/icons/LearnIcon.tsx create mode 100644 src/components/Homepage/icons/NetworkIcon.tsx create mode 100644 src/components/Homepage/icons/SmartPhoneIcon.tsx create mode 100644 src/utils/utils.ts create mode 100644 static/fonts/advercase-bold.woff2 create mode 100644 static/fonts/advercase-regular.woff2 create mode 100644 static/fonts/futura-bold-font.ttf create mode 100644 static/fonts/futura-book-font.ttf create mode 100644 static/fonts/futura-light-font.ttf create mode 100644 static/img/build-for-minipay.png create mode 100644 static/img/self-protocol.png create mode 100644 static/img/smart-phone.png create mode 100644 static/img/tap-into-stables.png diff --git a/docusaurus.config.js b/docusaurus.config.js index 84f44da50..3f93e90ca 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -346,5 +346,9 @@ module.exports = { "sha384-Um5gpz1odJg5Z4HAmzPtgZKdTBHZdw8S29IecapCSB31ligYPhHQZMIlWLYQGVoc", crossorigin: "anonymous", }, + { + href: "/css/custom.css", + type: "text/css", + }, ], }; diff --git a/package.json b/package.json index a070bf5ad..f0776d2e1 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "assert": "^2.1.0", "autoprefixer": "^10.4.21", "buffer": "^6.0.3", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "crypto-browserify": "^3.12.1", "docusaurus-plugin-fathom": "^1.2.0", diff --git a/src/components/Homepage/Button.tsx b/src/components/Homepage/Button.tsx new file mode 100644 index 000000000..47a81c509 --- /dev/null +++ b/src/components/Homepage/Button.tsx @@ -0,0 +1,47 @@ +import { VariantProps, cva } from "class-variance-authority"; +import { ButtonHTMLAttributes, forwardRef } from "react"; + +import { cn } from "@site/src/utils/utils"; +import React from "react"; + +const buttonVariants = cva( + // Base styles applied to all variants + "!font-futura !font-light border-solid inline-flex items-center justify-center rounded-md text-base font-bold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 cursor-pointer", + { + variants: { + variant: { + default: "bg-violet-950 text-white hover:bg-violet-950/90 border-none", + outline: + "border-4 border-fig text-fig bg-transparent hover:bg-violet-950/10", + }, + size: { + default: "h-9 px-6 py-2", + sm: "h-8 px-4", + lg: "h-11 px-8", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + }, +); + +export interface ButtonProps + extends ButtonHTMLAttributes, + VariantProps {} + +const Button = forwardRef( + ({ className, variant, size, ...props }, ref) => { + return ( + + + + ); + })} + + + ); +} diff --git a/src/components/Homepage/DiscoverSection.tsx b/src/components/Homepage/DiscoverSection.tsx new file mode 100644 index 000000000..69b4a5771 --- /dev/null +++ b/src/components/Homepage/DiscoverSection.tsx @@ -0,0 +1,55 @@ +import React from "react"; +import { Button } from "./Button"; +import DiscoverPattern from "./Pattern/DiscoverPattern"; + +export default function DiscoverSection() { + return ( +
+
+
+ Mobile app interface +
+
+ +
+
+
+
+
+ +
+

+ Discover what you can build on Celo +

+

+ Create apps for mobile wallets, social connections, AI agents, + funding, local stablecoins, and more! +

+
+ + +
+
+
+
+
+
+ ); +} diff --git a/src/components/Homepage/ExploreSection.tsx b/src/components/Homepage/ExploreSection.tsx new file mode 100644 index 000000000..3480bf700 --- /dev/null +++ b/src/components/Homepage/ExploreSection.tsx @@ -0,0 +1,80 @@ +import FeatureCard, { FeatureCardType } from "./FeatureCard"; + +import React from "react"; + +const features: FeatureCardType[] = [ + { + title: "Build for MiniPay", + description: + "Develop ultra-lightweight mobile dApps for Opera's self-custodial stablecoin wallet.", + image: "/img/build-for-minipay.png", + link: "#", + isReversed: false, + }, + { + title: "Extend and integrate with Self Protocol", + description: + "Map social identities like phone numbers to decentralized wallet addresses.", + image: "/img/self-protocol.png", + link: "#", + isReversed: true, + }, + { + title: "Tap into Stables", + description: + "Create stablecoin payment apps using Mento's local digital currencies.", + image: "/img/tap-into-stables.png", + link: "#", + isReversed: false, + }, + { + title: "Farcaster Frames", + description: + "Build Farcaster Frames for onchain activations with Warpcast.", + image: null, + link: "#", + isReversed: false, + }, + { + title: "Develop AI Agents", + description: + "Combine blockchain with AI to create decentralized autonomous agents.", + image: null, + link: "#", + isReversed: true, + }, + { + title: "Onchain Funding Apps", + description: + "Simplify funding with apps that ensure fairness, transparency, and global reach.", + image: null, + link: "#", + isReversed: false, + }, +]; + +export default function ExploreSection() { + return ( + <> +
+
+

+ Explore +

+
+ {features.map((feature, index) => ( + + ))} +
+
+
+
+ {features.map((feature, index) => ( + + ))} +
+ + ); +} diff --git a/src/components/Homepage/FeatureCard.tsx b/src/components/Homepage/FeatureCard.tsx new file mode 100644 index 000000000..ad2397c52 --- /dev/null +++ b/src/components/Homepage/FeatureCard.tsx @@ -0,0 +1,80 @@ +import React from "react"; +import DiscoverPattern from "./Pattern/DiscoverPattern"; + +export interface FeatureCardType { + title: string; + description: string; + image: string | null; + link: string; + isReversed?: boolean; +} + +export default function FeatureCard({ + title, + description, + image, + link, + index, + isReversed = false, +}: FeatureCardType & { index: number }) { + const isMobile = window.innerWidth < 768; + isMobile && (isReversed = false); + return ( + + <> + {isReversed ? ( +
+
+ {image ? ( + {title} + ) : ( +
+
+ +
+
+ )} +
+
+

+ {title} +

+

{description}

+
+
+ ) : ( +
+
+

+ {title} +

+

{description}

+
+
+ {image ? ( + {title} + ) : ( +
+
+ +
+
+ )} +
+
+ )} + +
+ ); +} diff --git a/src/components/Homepage/Footer.tsx b/src/components/Homepage/Footer.tsx new file mode 100644 index 000000000..b4b69ef19 --- /dev/null +++ b/src/components/Homepage/Footer.tsx @@ -0,0 +1,143 @@ +import React from "react"; +import { Button } from "./Button"; +import CeloLogo from "./icons/CeloLogo"; + +const footerLinks = { + docs: [ + { name: "Home", href: "#" }, + { name: "Docs GitHub", href: "#" }, + ], + community: [ + { name: "Contributors", href: "#" }, + { name: "Celo Signal Mailing List", href: "#" }, + { name: "Celo Signal Calendar", href: "#" }, + { name: "Community Calendar", href: "#" }, + ], + ecosystem: [ + { name: "Celo Foundation", href: "#" }, + { name: "Medium Blog", href: "#" }, + { name: "The Celo", href: "#" }, + { name: "Celo Hub", href: "#" }, + { name: "Career", href: "#" }, + ], + connect: [ + { name: "Discord", href: "#" }, + { name: "X (Twitter)", href: "#" }, + { name: "Reddit", href: "#" }, + ], +}; + +const communityLinks = [ + { + title: "Discord", + description: "Connect with the Community", + action: "Join our Discord →", + href: "#", + blockColor: ["prosperity", "lavender", "forest"], + }, + { + title: "Developer Events", + description: "Bring Your Ideas to Life", + action: "Register for Upcoming Hackathons →", + href: "#", + blockColor: ["white", "fig", "white"], + }, + { + title: "Celo Camp", + description: "Scale Your Project", + action: "Apply for Celo Camp →", + href: "#", + blockColor: ["forest", "sky", "forest"], + }, + { + title: "Grants", + description: "Explore Grants Opportunities", + action: "Learn about public goods funding programs →", + href: "#", + blockColor: ["disabled", "sand", "disabled"], + }, +]; + +export default function Footer() { + return ( +
+
+
+
+
+

+ Join the Celo ecosystem. +

+

+ Build together with a global community of passionate developers. +

+
+
+

+ Sign up for developer updates +

+
+ Email* + +
+
+
+ +
+ {communityLinks.map((link, index) => ( +
+ {index === 0 && ( +
+
+
+
+
+ )} + {index === 1 && ( +
+
+
+
+
+ )} + {index === 2 && ( +
+
+
+
+
+ )} + {index === 3 && ( +
+
+
+
+
+ )} +
+

+ {link.title} +

+

+ {link.description} +

+ +
+
+ ))} +
+
+ +
+
+ ); +} diff --git a/src/components/Homepage/GridPattern.tsx b/src/components/Homepage/GridPattern.tsx new file mode 100644 index 000000000..00a40aa06 --- /dev/null +++ b/src/components/Homepage/GridPattern.tsx @@ -0,0 +1,29 @@ +import React from "react"; + +export default function GridPattern({ + className = "", +}: { + className?: string; +}) { + return ( + + + + + + + + + ); +} diff --git a/src/components/Homepage/Pattern/DiscoverPattern.tsx b/src/components/Homepage/Pattern/DiscoverPattern.tsx new file mode 100644 index 000000000..68406424d --- /dev/null +++ b/src/components/Homepage/Pattern/DiscoverPattern.tsx @@ -0,0 +1,24 @@ +import React from "react"; + +export default function DiscoverPattern() { + return ( + + + + + + + + + + + + + ); +} diff --git a/src/components/Homepage/Pattern/DiscoverPatternAlt.tsx b/src/components/Homepage/Pattern/DiscoverPatternAlt.tsx new file mode 100644 index 000000000..f8d6052a1 --- /dev/null +++ b/src/components/Homepage/Pattern/DiscoverPatternAlt.tsx @@ -0,0 +1,94 @@ +import React from "react"; + +export default function DiscoverPatternAlt() { + return ( + + + + + + + + + + + + + ); +} diff --git a/src/components/Homepage/StartBuilding.tsx b/src/components/Homepage/StartBuilding.tsx new file mode 100644 index 000000000..e2e983edf --- /dev/null +++ b/src/components/Homepage/StartBuilding.tsx @@ -0,0 +1,31 @@ +import React from "react"; +import { Button } from "./Button"; + +export default function StartBuilding() { + return ( +
+
+ + Coming Soon + + + Celo L1 to Ethereum L2 Migration + + +
+ +

+ Start Building +

+

+ Get started with these developer tools and resources. +

+ +
+ ); +} diff --git a/src/components/Homepage/icons/CeloLogo.tsx b/src/components/Homepage/icons/CeloLogo.tsx new file mode 100644 index 000000000..fecc898a6 --- /dev/null +++ b/src/components/Homepage/icons/CeloLogo.tsx @@ -0,0 +1,46 @@ +import React from "react"; + +export default function CeloLogo() { + return ( + + + + + + + + + + + + + + ); +} diff --git a/src/components/Homepage/icons/ComposerCliIcon.tsx b/src/components/Homepage/icons/ComposerCliIcon.tsx new file mode 100644 index 000000000..87a284380 --- /dev/null +++ b/src/components/Homepage/icons/ComposerCliIcon.tsx @@ -0,0 +1,19 @@ +import React from "react"; + +export default function ComposerCliIcon({ className }: { className?: string }) { + return ( + + + + ); +} diff --git a/src/components/Homepage/icons/LearnIcon.tsx b/src/components/Homepage/icons/LearnIcon.tsx new file mode 100644 index 000000000..28ef97416 --- /dev/null +++ b/src/components/Homepage/icons/LearnIcon.tsx @@ -0,0 +1,19 @@ +import React from "react"; + +export default function LearnIcon({ className }: { className?: string }) { + return ( + + + + ); +} diff --git a/src/components/Homepage/icons/NetworkIcon.tsx b/src/components/Homepage/icons/NetworkIcon.tsx new file mode 100644 index 000000000..fa3a828dc --- /dev/null +++ b/src/components/Homepage/icons/NetworkIcon.tsx @@ -0,0 +1,19 @@ +import React from "react"; + +export default function NetworkIcon({ className }: { className?: string }) { + return ( + + + + ); +} diff --git a/src/components/Homepage/icons/SmartPhoneIcon.tsx b/src/components/Homepage/icons/SmartPhoneIcon.tsx new file mode 100644 index 000000000..82ca29ee3 --- /dev/null +++ b/src/components/Homepage/icons/SmartPhoneIcon.tsx @@ -0,0 +1,19 @@ +import React from "react"; + +export default function SmartPhoneIcon({ className }: { className?: string }) { + return ( + + + + ); +} diff --git a/src/css/custom.css b/src/css/custom.css index e7d900152..866c3c6ee 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -1,4 +1,4 @@ -@import 'tailwindcss'; +@import "tailwindcss"; @config '../../tailwind.config.js'; @@ -33,6 +33,41 @@ --site-color-svg-icon-favorite: #e9669e; } +@font-face { + font-family: "Advercase"; + font-weight: bold; + font-style: normal; + src: url("/fonts/advercase-bold.woff2") format("woff2"); +} + +@font-face { + font-family: "Advercase"; + font-weight: normal; + font-style: normal; + src: url("/fonts/advercase-regular.woff2") format("woff2"); +} + +@font-face { + font-family: "Futura"; + font-weight: bold; + font-style: normal; + src: url("/fonts/futura-bold-font.ttf") format("ttf"); +} + +@font-face { + font-family: "Futura"; + font-weight: normal; + font-style: normal; + src: url("/fonts/futura-book-font.ttf") format("ttf"); +} + +@font-face { + font-family: "Futura"; + font-weight: 300; + font-style: normal; + src: url("/fonts/futura-light-font.ttf") format("ttf"); +} + .navbar--dark { background-color: #111214; box-shadow: var(--ifm-navbar-shadow); diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 3df948ed0..335dd2714 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,3 +1,11 @@ +import "./index.module.css"; + +import React, { useEffect } from "react"; + +import DevResources from "../components/Homepage/DevResources"; +import DiscoverSection from "../components/Homepage/DiscoverSection"; +import ExploreSection from "../components/Homepage/ExploreSection"; +import Footer from "../components/Homepage/Footer"; /** * Copyright (c) Facebook, Inc. and its affiliates. * @@ -6,13 +14,11 @@ */ import Head from "@docusaurus/Head"; import Link from "@docusaurus/Link"; -import Translate, { translate } from "@docusaurus/Translate"; +import { translate } from "@docusaurus/Translate"; import Layout from "@theme/Layout"; -import "./index.module.css"; - -import React, { useEffect } from "react"; import { useLocation } from "react-router-dom"; -import HeroImage from "../components/HeroImage"; +import { Button } from "../components/Homepage/Button"; +import StartBuilding from "../components/Homepage/StartBuilding"; const TITLE = translate({ message: "Celo Documentation" }); const DESCRIPTION = translate({ @@ -35,7 +41,7 @@ function restoreUserState(userState: UserState | null) { window.scrollTo({ top: scrollTopPosition }); } -export default function HomePage(): JSX.Element { +export default function HomePage() { const location = useLocation(); useEffect(() => { restoreUserState(location.state); @@ -57,711 +63,42 @@ export default function HomePage(): JSX.Element { content="https://github.com/celo-org/docs/blob/main/static/img/preview.png?raw=true" /> -
-
-
- - Celo L1 to Ethereum L2 Migration Coming Soon! - - - Learn More - - - - -
-
- +
+ {/* Hero Section */} +
+

+ Build for the Real World on Celo +

+

+ Create mobile-first decentralized applications accessible to + everyone, everywhere. +

+
+ +
-
-
- - Learn How to Build with Celo - -
-
-
-
- - - Quickstart with Celo Composer - - - {buildKnowMoreButton("/developer/deploy")} -
-
- -
-
-
-
- - - Build on MiniPay - - - {buildKnowMoreButton("/developer/build-on-minipay/overview")} -
-
- {/* biome-ignore lint/a11y/useAltText: */} - -
-
-
-
- - {/* Section 2 */} -
- - - Explore Developer Tools and Resources - - -
- - - Faucet - - - - Fund your Testnet Account. - - - - - - - - - - - Celo Scan - - - - - Explore transactions on Celo Network. - - - - - - - - - - Celo Bridge - - - - - How to bridge assets accross chains. - - - - - - - - - - Wallets - - - - Overview of ecosystem wallets. - - - - - - - - - - - Celo Libraries & SDKs - - - - - Search our vast range of libraries and SDKs. - - - - - - - - - - Deploy - - - - How to build and deploy a dApp. - - - - - - -
-
- - {/* Section 3 */} - {/*
-
- - Explore Providers and Frameworks - -
- -
*/} - - {/* Section 4 */} - {/*
- - Start Your Journey - -
- - - Faucet - - - - Fund your Testnet Account. - - - - - - - - Celo Scan - - - - - Explore transactions on Celo Network. - - - - - - - Celo Bridge - - - - - How to bridge assets accross chains. - - - - - - - Wallets - - - - Overview of ecosystem wallets. - - - - - - - - Celo Libraries & SDKs - - - - - Search our vast range of libraries and SDKs. - - - - - - - Deploy - - - - How to build and deploy a dApp. - - - -
-
*/} - - {/* section 5 */} - -
-
- - Browse our Docs by Category - -
-
-
-
- - Understanding Celo - -
- {/* item 1 */} - {sectionFourCard( - translate({ id: "home.section4.understanding.whatIs.title" }), - translate({ - id: "home.section4.understanding.whatIs.description", - }), - "img/homepage/icons/WhatIsCelo_White.svg", - "/general", - )} + {/* Discover Section */} + - {sectionFourCard( - translate({ - id: "home.section4.understanding.architecture.title", - }), - translate({ - id: "home.section4.understanding.architecture.description", - }), - "img/homepage/icons/Architechture_White.svg", - "/general/architecture", - )} + {/* Explore Section */} + - {sectionFourCard( - translate({ - id: "home.section4.understanding.whitepapers.title", - }), - translate({ - id: "home.section4.understanding.whitepapers.description", - }), - "img/homepage/icons/WhitePapers_white.svg", - "/general/whitepapers", - )} + {/* Start Building Section */} + - {sectionFourCard( - translate({ id: "home.section4.understanding.protocol.title" }), - translate({ - id: "home.section4.understanding.protocol.description", - }), - "img/homepage/icons/Protocol_White.svg", - "/protocol", - )} -
- - {/* item 2 */} - -
-
- - Developer Tools - -
- {sectionFourCard( - translate({ id: "home.section4.developer.contractKit.title" }), - translate({ - id: "home.section4.developer.contractKit.description", - }), - "img/homepage/icons/ContractKit_White.svg", - "/developer/contractkit", - )} - - {sectionFourCard( - translate({ - id: "home.section4.developer.rainbowKitCelo.title", - }), - translate({ - id: "home.section4.developer.rainbowKitCelo.description", - }), - "img/homepage/icons/Rainbow_White.svg", - "/developer/rainbowkit-celo", - )} - - {sectionFourCard( - translate({ id: "home.section4.developer.celoCli.title" }), - translate({ - id: "home.section4.developer.celoCli.description", - }), - "img/homepage/icons/CLI_White.svg", - "/cli", - )} -
- -
-
- Build with Celo -
- {sectionFourCard( - translate({ id: "home.section4.build.celoComposer.title" }), - translate({ - id: "home.section4.build.celoComposer.description", - }), - "img/homepage/icons/CeloComposer_White.svg", - "developer/deploy", - )} - - {sectionFourCard( - translate({ id: "home.section4.build.migrate.title" }), - translate({ id: "home.section4.build.migrate.description" }), - "img/homepage/icons/Migration_White.svg", - "/developer/migrate/from-ethereum", - )} - - {sectionFourCard( - translate({ id: "home.section4.build.oracles.title" }), - translate({ id: "home.section4.build.oracles.description" }), - "img/homepage/icons/Oracle_White.svg", - "/protocol/oracle", - )} - - {sectionFourCard( - translate({ id: "home.section4.build.architecture.title" }), - translate({ - id: "home.section4.build.architecture.description", - }), - "img/homepage/icons/NewToWeb3_White.svg", - "/general/web2-to-web3", - )} -
- -
-
- Validators -
- {sectionFourCard( - translate({ id: "home.section4.validators.run.title" }), - translate({ id: "home.section4.validators.run.description" }), - "img/homepage/icons/Validator_White.svg", - "/validator", - )} - - {sectionFourCard( - translate({ id: "home.section4.validators.node.title" }), - translate({ id: "home.section4.validators.node.description" }), - "img/homepage/icons/Node_White.svg", - "/validator/security", - )} -
-
-
- - {/* section 5 end */} - - {/* section 6 */} - -
-
- - Join the Builder Ecosystem - -
-
- - Discover the many ways to connect with our growing community of - developers. - -
- {/*
-
-
- - Sign Up for Developer Updates - - {buildKnowMoreButton( - "https://events.celo.org/builders" - )} -
-
-
*/} - -
-
- {sectionFourCard( - "Connect with the Community", - "Join our Discord", - "img/homepage/connect.svg", - "https://discord.com/invite/celo" - )} - {sectionFourCard( - "Get Technical Support", - "Join our Telegram", - "img/homepage/connect.svg", - "https://t.me/buildwithcelo" - )} - - {sectionFourCard( - "Get Daily Updates", - "Follow our Developer Twitter", - "img/homepage/ambassador.svg", - "https://x.com/CeloDevs" - )} - {sectionFourCard( - "Bring Your Ideas to Life", - "Sign up for upcoming hackathons and workshops", - "img/homepage/contribute.svg", - "https://celo.lemonade.social/" - )} - - {sectionFourCard( - "Apply for Grants", - "Explore public goods funding programs", - "img/homepage/ambassador.svg", - "https://www.celopg.eco/programs" - )} - - {sectionFourCard( - "Access Exclusive Resources", - "Register as an active Celo builder", - "img/homepage/connect.svg", - "https://forms.gle/yDQUYGZS3BYR8WFZA" - )} -
-
-
- - {/*
-
- Join Our Ecosystem -
-
-
-
- - - Receive Funding to Build Your Blockchain Projects - - - {buildKnowMoreButton("/community/grant-playbook")} -
-
-
- -
-
- {sectionFourCard( - "Celo dApp Launch Checklist", - "A comprehensive guide to assist you in launching dapps on Celo.", - "img/doc-images/logos/connect.svg", - "/developer/launch-checklist", - )} - {sectionFourCard( - translate({ id: "home.section6.contribute.title" }), - translate({ id: "home.section6.contribute.description" }), - "img/doc-images/logos/contribute.svg", - "/community/guidelines", - )} - - {sectionFourCard( - translate({ id: "home.section6.ambassadors.title" }), - translate({ id: "home.section6.ambassadors.description" }), - "img/doc-images/logos/ambassador.svg", - "https://celocommunity.xyz/join-the-ambassador-program", - )} - - {sectionFourCard( - translate({ id: "home.section6.connect.title" }), - translate({ id: "home.section6.connect.description" }), - "img/doc-images/logos/connect.svg", - "https://celo.org/community", - )} -
-
-
*/} + {/* Dev Resources Section */} + - {/* section 6 end */} + {/* Footer */} +
); diff --git a/src/utils/utils.ts b/src/utils/utils.ts new file mode 100644 index 000000000..a5ef19350 --- /dev/null +++ b/src/utils/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} diff --git a/static/fonts/advercase-bold.woff2 b/static/fonts/advercase-bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ba33814bb2aaa36ff1583d10b66e2f7c1fa913dc GIT binary patch literal 26064 zcmV(`K-0f>Pew8T0RR910ANJEmZ|xl?Y3Am46H$o~KTq@+WJLaIrDwo^B+ zHzG->D|)hqWd@R_TQ(v-R%P8CE{-#<6RcXObF)FX2v0U7E#roC7WxY#)$>DkS~kua`eWcX{pZu|VnA(IQWwo+G82K?rM7RFiYWHRLz)X8|f zeDpu(|J>Vb0@J`DbbyA^1rlTtJBS6bq!8MMnou4UgDPslZmN=04XD`nYkDO##Y9&Z zW1&Yc_`+`(j|WfVUH^Yh-|lPqy>=%G7aT4D2pl{AyTIiZIoSYBrN93H{2l(^xi_*8v;eyX zTH-~nx&i+E$1ffg+4Au4@Njv!TrQV;&liqf^m5M^4u`|xaJbwf-T(joM{bRH{pwpE zBgRN0sHfFmG4lRhY7nRW5ly+2sG9 z3?#FZ3?@sMCCtrUH*<_-Q02KTGC9Wi;-|ewq&Xlsr>P9wuNZ zVEJ3MT-|LKuh2P z3f3yKOm`B4iN#V6j)BHeH9F4u37i(tDRe8J0)GqUF*s$;0Q3cf--U2@StvU}@BO zRJO~dyFk)`#c4dx|H*WJmuk`jv)Z6@dReqEvPQ097Tx=T{EESd1+Y})(u=jKyKnAp z?sbxYSA&4)VtoD&f83{^ZtH|$!1XPKwJ|FjW54$r>%IHOm{cGi8)K3M)VC52=smE) zKrKu#_hjNsUgit~VoyF0~ounCAUBmfx1Sk17#<;?$LI`2pm5y~C(_E$m0FqvZj@e{l2*j*0U@XoC(3Z8-)OPv$d@e06ukkez`n)5Eu*4 z8!#9Qfj95o-`4sK-c?~DdOJWoj=*EXT0jGF(H-N$~`%M4<5}N@E06Yc;!3yvPq=hD-XV5EH2!|qCBm!wd zM$vFmE9oDKnev*thvuLw>BpT$8O=-^OUq`lQ`y7p{TwT61)`(g=UdZR3zFY`b(?^DByURK~jaXfbW2= z6ecF95s6wwki{PfAXXzP($Pz&*#0KxBqz0G!&W&+SN$k|E`YMyMXNt65Lu%HaVsKTl@G?1 zt&s1+bqK;Rn4GPUK16(H_2SGh7_e_Nz>JIDw8vysFYBQ=|38%INQ#mZC5NSir9x?r zbW2H;DPBd?R%m;?D$J>wWM;Vyt>7fXDifXjy!mSakkvY^E%478ThJ9cgB}TE!l4Kt z5)fPz5Dmrn5(~uv@lXPk$R$BCl?%SLoyVxdCVp8bXF48+Oj-;6}JH z%<0RLhtL!R^UgudE!0q(ETIU^gc}zxSGuq;LAW|Yd_R_`B+OR;gB`UIkr5V>A!CoSFTiY`(1~K!_pDgG37Yt3Y*~) zQ(zv3m4sUI(s?ry;iJ)DzQii4OX*|ihPP>0b-{d$B64OWuU=Mw6+tD!hv@&VDQ7H1 z1-BX5YTM3L0{f*yz+ut(!pgW7GeX?w8qauM*S!N;6`$yFrw-P%(L!Pq$nFin844+( zLzIiiF^9;b7DdJ@QOjdO&5z3e+WldNgu?-=$sP4^EZ%XKHOiG}8kz|xq!2s^&nPuB z#^@bSn(_I`8pT(2k5G6pMM5%ihKETZKxM{fvjW!&w}09NUch zJkkB>VvuYn>b`3@y(5o6n2=D4xx#q}iEEB}W94mEO}3${&^l)BPi=*w9P55V{Y5J& zHRc6)EBCE#l z6}>P6hRk4VpcB{AA>cRDV_V&dtDnyB z^tBX#(yvrHc=|t+9lT(4n4X4-yjI&6YNkCwLGOxReq_RsD^J2WL6|Wn#3Jmbm37>N z;ihfCydm(xD&pk&Z`~9y6Xi$dlLv=622MHQI;+T8B{kAZ)%?^sh?AE}|5AwGU1hWP z0&L?+*{Sh1YU*8~8j2rnbcU+Zn8jNB`*dIjlcQP-M|=n&5wS-HX0?Xmk77<_N+|-U z-<8P^N}UT!Eru(wqk7WwatxQQ6g=M)w$-&LB{S~K8=q}?+nB)E!pA9$&V4GVHRd5v zN z-d&~kWybfHwMxDpy4L87&2&x2g}wC?W)hE!33X zX#j6+{&CPm+jT7B91orAh9NOwsZLNS>YV#OTG28$C26q1Cy%5HG!t{QLRj!mS|W7< zi!w!1V)jaGmAHr>6AXzeNm|H2vXtdiP5L2othDUov?}Sep2*To(}-yx1R(^(b2P}0 z&SrUQ8iB?D=V=~V)cGfI8ih=%CX~scx*~{is1G`q;>ap#%pkG5!=2}aIs0Hd-juJa zDnJMXAWXwN-3z=xUQzHtNDJmD=BST`mnG;c)%z=26V^O z$HSCKpcJ1w;>!Y75)um(U&A3;=<-J$-7Suc#8?<|QMH&TS+?_L2B0^TGLBNDg$AQd zP~eK1E2)+-In$sl${dt?OU44`5u2k==sFNpBh4xCvQ0`Tb2Jlom1ff}RJA4|xm3}G zlo3MiuQXjxXEKF?0x+4Tk}~K|2Xne(!f|$0vW#_J=Bcq=_Z{0kB;T*o`yx;XCX^{e zBvWD1;e4SAoB*2(0Ws!$YTbGsoTi>R#Yo)dnhn-BCGYc0sv+Hju|^zRRhhI;gUp>C z0}BT2ps@ke2L;L{Teyysm5%E6(|cv7jZ~*VlWj;GC8fB2RZ{zygf6q?Yf}w$Tv_%8 zqg{{tgrIo}>`6!1p1U20nTkadqp7J68U;wTGU%$`=FkMj1<1 zNvRDI-{l2^H3$Fz0KkrI_iRw#vVmgm{MP4mF)jXL9w1T^DiDPwv-!Hj^zgvhO48$- zCUrTQH*$hh)Fp`zK}nKhrxJJnQR88LNsOilo_Ve=>$jnq$J=vWqDbO;x~WRc|ZRbCePR_wfp%7buocZ<=R>ls84A#^uJ-$|PmU_DivL(`NGPkjAt z4X-Sb^Z#V4&iH|PTV3+XvauXRd=8T+7Z((gsu^}hNEU;#b!3tdq^dv9kgjhNURKkg zU%kwq5pai^UYpD*Q_~w(P_{ltrM_2h(_Odv8U)R+)TrR=#tKkc*xl3B%E-tk#Q;uH(_LO?g(l;T6}HLJR)OCDEj90ZyoZ74A52B7yb`ffX*QGlP4*g zs0lO&ebng(Cd~YYZRa#`8?Z5a5Alpo7K95!MMKU-*a+Cal!lcM^$#9vYJgt18 z&Ty^JY}4G;e9(HhJ3JaZhCFt7oc28G_1YWO0iDbz$EVY`$#>ZIwC_dV>%MpW7}xv$ zeg%Gu{O<~x0c!&O2uupx5`+eY25r+T^=pFR;AVr~us?(x(j0O#R2>=< zdOB=N*m;F1>{U49?!tB9r^A0UGTIZpF~ittydA-hNQ(G6;zJ}W(wC|BMUk5#4@TZ* z#7KpdKNOBCvvX^uPJLozdiPT^$LEQM@H9T?58x;)-G&|XvUK*P zo^i>9B_se2Ya)y#4hIDw5j#~(b;9b;0#_|18 zKQ0;)HJ6sss;#uAbab6#SH`+o^kk@4pZ?=uly@#ilh^NTiF&F!G)Sinb~Mr= z5=vIIg_z+mtjzMEBwHTAxRDk#)&g3!+sQ&MoMB(u!Zd(Zu{Wrp^|Fdqu4Z&4t7ppA zF~3#eEsLVG_$Pttf`d6H0w?2?)6O_s>Q>A3O&Z!XmF5~-+O;S>mec_v0TXSXKA2g>!@>G7|Y<=1ZNqvKVg{H?@##$(dP< zoM1#vQUut8P@F}0XcmZOrf55na)S{95p77~A@T%)t_zFY-LzZL|XBq&w(AFZ!Hyf7qWtn>cQa!3V$Mbjy`& z{2OyKlc8zFLc1&}3=}a>_=g+oKDHJI5LJXl59{b%G1gF<-qNW z)kJyfgP|^vFHqW8%dkfgi!rS#L-%Jj$p-6X+L>22<5E`}HUEhuEwtK^4r<+fxj!vi z+=#L9gNZYPEAhbjWP)WrG9r+~NN~K6!NEG-hoGJCiN0HH74MCzw!nKshh4%t61=ul zAfiwqhMSNZy5E=q3sgv>opL`Xvp0&Y2XEDB!E}YXqgVf8Fkt_uzCr=ESg^Qt{4JSm zREA`lugEOQ{F*tDK4_o?P$oSITm!`+gbW))TV<(DY+5L(-V%IE-c_|(Y2-YSYlD|7 zR0CT=7h{Yurj()od1OzjI&?5~G_S6pCDU5fR@I*A=&yQ0eKFR!VQh@~;Io`Q%M~{s z=LRORh0qdb3q?Q$d4yIb)HJ|S$ zzz#KJXH$J}=5!XZvhM0^E45SaV1h6uXeEZGVn!UC)zN|PrpYQjcM8-=`+VX+uD(`0CbM65KmzkG|(nZx*fEk2wx6FXHm_f zo0?3sMUiFSlbmxRN1VN-x-fljZhX6P(a7}ivs}%DZ6UxGvkyk4%+0n@v7> zM|AKih4vT9Df}x=G~Q11bP(wd2J;ry`4ZL6wtUjI3fQZi(l@RTnU98~eHfdiPG1`X zwxMno=k@KZs+%ABRUcZ%@Ul(w!FxHs+Z7p4Z2Z)qxwYrF$!lPqxns0cFCtTRYrKjy zl!kS2=RT@Z4TqQ#uh1zAK|@26hYWO5El%7;Tj^5ijvjq$X|6A?jfZCAh+{c zNGQQ)RuL5xqc+5B)O)SePBj~~F^m-nrX>J|$tr~qLh*v_EnOx@JLrRd%{0Z;dH49x zzB@2j0NX*RSfY~zihg&UB5z@f;1q}0XbZyfV+LU))3ijkS~T?~F?n2_(WfPqo#~kB zk4`=iq%VpMT!82*m2U%!aJ1NrYPDJBPTjE{X%J#>nsaP{+EXQMYHJW}Xsb43_l~{$ zVZJ_L8{)UjPiB{1;`k`|Ob%g~AS9V_RKs-J>1t|AYP5xo{wOSCOTQN6rt&&yhA>D7 zi_NZ)&ZUphK|I_)yRIuu@z17ORoasse0dqDGAKiamu+?*0OwD3$;L_M76lHUe@xj; zpdkz}PVc~BNd*zCV&$deu_dt=Y(|d}%UM2ATbnZ_kH|o*)6YygYzG?RB|zyXR4dl! zpqsRnnwI#rWKd;e;6e7yq|tCoYpm1OXClC}qyR*VCn+UD*x>D?O`7#~>qQInv{<8K z$ckgN+7+0NG+qR`2}T59UN^?*V&h93#P&5sC_N>R5?FylH=Bck_Vaxn+K%SOiGlAf*a!C1+Yy* zMs9vu;*6T94adIP2NQ}{g#ZOn1C?>45LuS79B}CzC=`&(3pIr#S+CHI)=lWYGdK@6 z5=MK#n}-nj;I zC3Z$u)i&e5D5D^=@5t&TJK5Pd2KkAIS?KbL`?7-OV%^iFLD}82^?74MYGd&|h)v1C z7F+AK5etKt;B*qh+oQzXWJL7DZEar`=)14xGrw)$2Ouv`^a&n%y;G#<|yW;BN z8gtzZH{Dv?rtY}QzI+e6Pd)I^Bab~TZPo|jz|U7}p>%U2}VWjFuqThJZkE@mfQC#QPcmsL@7MSV>9r=VzzjEnZ}bHA(=0lI+zp-?yFst!Au1h{R)7UB4;zKES7HnWInNu z1F}KNPz=}CwIpAZFF!`y;yLl{)7chcv$0Y8wF{TxV3d)ggM)*EgM&wYDQR^vC2XG< z&1UnO=i97q3GC2|2Vd_jd5S=ahVTs%0fB!xK{*+xoOZ_9e`;NmMyLs}jK>S^L zMtxmNWqwnLA6J=x--B8o2^l|k>OHI?jyL~g6 z`Tn~BPntBp{*}#}fR&Par}d-j7knQ$K|m>ik-?N}-psn@=V?7`2N6U!y=WrlxBk21A%sWtVaw(#}>T;yo>5NL9(-5^uBJsa=Z*=ymT9+jsm&*O!cogn44 zhxck=md}0hEy+*+ZA#0=g2!Yg;lJsj@&hmx&YyOK5|=mRp60B<6Y=Vii^2z7CVs?u z4|xW?4zc`d@w;G68m!{f!~3GR6G^!v-5tEE0s^s(B{VCTNI71wCR)aN99PdHmn<%q zE8}&$o4B>Ot-4e0y4ZVlq?dceLz_oAeXP^xT0KRcnLT%kOY{;Xmm_*-Pb=d`qt9dc zrurk1d~WuS(SOC||D5s2uLO78M6$_@rg<~OLI*4Y#imEUS9pWI@<8Q{&L9XxWy+Ol zDn1DmK;aZ_D6>jP=OE+FKU7}9O-*`8#hc7ZXYv>&TSM;l5kKWwTm5rp{!XR!=LP2$ zzdD8XowZca;y;~XwVnd-OzyHW2_jANh(QDpf`VkO;0zZLAvgJEaKZ)PYcp|5J~*SNSZ*TS%89L@LbB_zx&th*a)Q48%Iu@;bB9`;zB*eUeu4e;q?-MjGn;tNp`Wfo zzpi>)>1^w%TQ@*6TigzK+}nfYP_19Y`#qx%dWW;F((wc$1o1KiO=;7nY&J+TEPzY} z+GE1usdTiIk}3DI;!ULs36K=ou0VvsQx22;S?R{Caf1!;Kl2Q~kO4Se?nr6m5s_EZ(4moe9 zI3Hc?!tTb-8|EHSOL@uU(HHywzX&ZlFKXv%W8cWGdzsx3>NmfNk z+ZERO1IB};wb_JZ_Cq|)#*YlqDk-UY>#G0fON}==?F=3%eEJkbFtWfYnH$+-VqvI_!vyWfH){A9>%d^6=TVnbXO1c))$~O5Y<0B>p}GOw;EJm0 zvo}u=1u2peNT%4c6uOg0yfc$!y8&BCk_QY&v5nYc3jxVl`p~QCMfyCgh7q-_TE}aj z%eSZhdgTC8V?WXzxuJT5-Clmq#u4xu+R!yo5g0s0NVknHPlrQ{;glqEWu^xjXz?j! zmEhYliikwkq~b)!jKYzGeKZ z?{$VBG7m|yg5C`7+SsK%>6z1lQvg|ZdC;0gdq9y_1KN?KsZSn#05CqKe<4%lm=rus zjc2M`S*!}2;)QM^^irL4)f&SUUe?uw2O6g1U=~V382~I=7ZligQLqWSck2M_`}}~1 z?A8nv3@cik%g=xcXQIEMToHNGB@DOBol`$KB&CbYu4(CvhnRub5ifZ%)vJH;jG?cH zzY5i*J{AtgZrw6hG}V8oOX*pD7hSDHdPzQ+RBTR|-X^2qNYs$A#Ln>X=HU(X7>^FIsEvmY z{8m;3lb;3{kDD8;{a-6ylXye zH>*1j!(7+5s0cyh1{F7*aKJi}j9jANbHrInSYF}9yNH{qa9)V+^aWPk&1(fM<&sVV z%9YQF7%|-n#kI1O8kGI zZGsT&t-MTyfj)8-*(>9v>3M|ruOMz3v52p^4Im)=M@AWZ%k@ z83EmJl+{;c_um^b_cjELTw!FnnYS2w)c-Fi=2h3&aNWcmjt7$q!2oA7el&KgIQ(o4 zNaYsg+m{ z(L?(+EYLn%t(k?hQDps_nlQ^!s?1VIIPSgefYFItR5cb*q~kU^Kt|TF+ZJbOS%ZVk zL;+vfO4l^`nYjZc zZ>UI21yfImK-*0PvbQs%zJv||L$+HJV1oc7&e-~WM@X^N)zww_2AK1WZ7k+~5lN^oJ5Y*7&^ zD(Wgz+?&zAQxRodGf`@hGLr%!=-o?Y(ajUxww2qFRi8DSbGJuR*1t(e5!RS;61*7c0Ickh=cL?~2mOMfm-?C*KvzicleprEg&i2ZN z;q~9H*2i^#VQtqyn=p`P0}ll-C@j!L%q%e2Q#06o4V4vOO{zb<^#oL`vJO2^OQCnR zltIaP7lP1LM`vMsC7Oh+sSd%J69ouV&C_52ZFQy%6Ealfq7IMxULm8=Wn3|>i%fvt zaVPLRi3aup_Vr9pE{Q%fAR*zTBMXKzCLD0ah-;iMVM3l5$*03gCb4vi>eKlEc82(@ z+}NlB#%+Ambj(;r*dQTR*fJ{auIlQs*(~aB`}v?T#QD}qz^OY6&T*la4I(tR@LMM< z5TR~m`shqG0z3|Iafc+}P-ER4ZJvayYtK(lep;ttl2XB|xNUhSqod4RF{`J@E@s-n zh5Vf0hoH3Zb{`zDLjDjnCACKfaEVJ?;u4p*%pal&Z~9cuX!xAp2X-&-G89O$}RzN>DlrwRLocX29GOqBF>ouD^2i!jKZ{f2@^e#9?A+tqI?1>` znM0RdN3a^8e_Y9Ba!FHW;6rFF`yH|+%uB;IN~yUHPIlot9vbA>l>0K0OO$gH+Pr9X&Lw*L(?OcNI*3S zoaHESP=MX(ZX9X6yDxuhCy@A&a?+LajyN9?(s4yO1k;-g7ZYz-t&=ctT&I*o~3J|QN-xF6`0l;{o!WCIy zSK?5R5sr$SrJBMEOCY#+xUPhgXxqOC;7)jy(|5VRQbmLa;R`pSpkDU3v`*tT@WAuc zWpDKWpz8J;cVW|YWWZ5L2*(9!;j2dsh1qK%Xt1cP zl0=Gs@ih^FQyGhZ{%u{u1D2_%1!glhO(z1VX6Hmd2)^b zUHSI1&n4@8Y^%ULc-+860Xlb11Tf`%R+~w+qN_v0Qr-@)%@uW=4ubIndBApg@zy^UiXu8=CziLj~V9!GoA+| zBN&#VsH*)pNivBmti()+o|2cK{5qBDl0=m|2~-4q!_Hn3>0eTs@EfyGX?62zCkh3x zH04N?t55%jw8LRQSWjxHsjOJrPmO92HAiVl4iHK!mZZV~x*DhA9iWm`s7um|rPry& zrSkq21OBy=U=&43G=ziuD!4L$NMCpcPkpGaLliM0dTn0S(c#N}Te+j+d<+4}$f+hs zs|{JMZku@i{-2@}5A$CT1bIBtMBLXUV9fd?E8*!82(-^_= zGPCl0Nh7F%R&!ugMfFT5E4nmwlG3tbqu}N|qVkDdWAthQCk|tR%fc+y>}2^PXH`9zAQ1`f zA~GzgDRQ+>%?BQUbX7-}dW9~M!Ej1fM4r%1J^_~Y$7bxvk)d`g@KEIszWUq}N2liB?XIP1fwOP~(z>d@|fYs}Wz4SAfX|)fQ6{qs}XljSfjun_xixpBff^ z)$&;iEU`+mm`LnFr|>MvMO|K7t&9w{{oLukjHpYed?UjppiR9RfoXw<>^%a4UWp48i%%BxrT|FgQTPYnWo7OwI z_7I>3FBOp-a!HN@PV1w#ONq~&Y6%vGA<#|!88m@^OtEGCZbAQ+fS^g}6$fxa0~w}u zQNGXKoX-I*PbW157k;WVeSp>ulZ`&$KKmgyU@KlV(0s)JcWVmxz!L!z0OcsCtv@L` zCk#w1Y#dw|9D#>V2quPbh9ZSuMIAgzd6Cia;Y&`zj|+cFDrx}&xeB78=O&nz`{tQ7 z6){#QCj;`_!_e;&T$emL#)FhBl8ZOL6%c81Ep_JPzz6P1z!ky`N-O&a?i9#H#-wWO z_{%g2&>aNvR4rhfbihbf;egfL1d5}RDPI+{8kLe&%Tu9DxmdZPWQhh@I ziBPgZT`X{Q4T!PrTODAULS$MLo~XQdD@8-+qm-}xpD2hCO9Zw^9405cEx=sFf?Z3M z#G`<>T}BVudW#}U#x%~2XxJC;Q}?#OHe_UHCJ@o2nBNMB*f|$7b2I?8XRL?dKylwW z35IT)a==twt6womqEKOS7=*~?AwjA%z&dt7H5dmC4N#8-A}0rP5e8wBOQu8#g9bB& zXwxpzfB{kFna6Ct-7LQFg(_bmOxg&?M&;RW)^2!B0e zphyQqEPh%+u?7&){1kv7D2hD>gB*7rPz9m^@dEJ&F@QvXSV0m%QUPm0K4dz`$Yow+ zYi{R&weDpsD|<6t8qxpMmFB(zS0-WTP8g=bESQKmifG~${}>VxYZ8*0tQ4d)RcT0b zI@6uOEXZh9WL-98NA~7mj^}JH=VtEbNxscbd7a<#G5>8r7;GMVBq-6MBal!`#E^uY z9ExyILldpcrk5cWF~+LF2DY$^Ne*+8^Z2CHjBGgZ;0IBW?D12mOtl{RsyAG-aoWr< z&tfaAbB68CvEN}wT;>`l+~ywld(_j~hUT`;?!5RC$kJNf{=_NLNj5R{{e8hraQ;!3f(;oNt$IF!ufo<1 zue>C(k)1v5Q}7@U;Pv)*KL!8z!;5*=Gq~M*InJEPcNchp{M^5LN~_bpH(HX~m%R8i zw4jlUf)yCl_Tb&BZ{OYgB(CXP)&uY9LS;Q8%`4G@R1OKIGs+3JKbYTy7P#?U>*$Kh z9*$c2I?K`Cd3`i@4>2jvLjXeZEBi$f8JCyk1B4k#h z4*V5>;ez?8+lh($E& zQy!g#MjfzK{2TiB0n!QWj(LBirSF4O__3dkv_ULG%EAru)1=w9>Hz%clCLH6U=vz9 z7@e6Ndp08(0PdC`=Mp>{nE`IWFJ|Y#CbWDoSh=)oq?_PeLfwP@LIeGAq_bzODEI6z z6d{Rw2ye@6!3L$UmcxGU#4q|`sIrot|I6a{rwNQjDGV@O9I+%RRMO;f)1aTPL7$1W z$WqBZw^q9Kb||pRE>-r}tJRfPLt7o2@^E%3TB=~o%#5f@evgE%t4>{il$}8g> zHk6)@3L_+QLJz+5!uw~70tjD(x9e+DIEI_{XVhK!$W;bC(H}!G8WS-cb8qX#5&`aS zH}aG3HWZ;x#O-r{Pc1_Vu|lR$Dm02v#ja4L68j{L?u;T$Q(^;E zxE+%p>xff6p5NK8_?oZlV;4Xw&f3j?TZ%%ckVGNBUQbW6v9_|rci(*V*(V>38THm1 zZHm~Lgl`{T=Plmkt9*J>vhKb;y3hNx_ZyjG)-g|yR?>&F3BYu~{|LZ-JDz&S|P3!LA>E*5S@%8f$2n^B(8$v?E z!i^Cil4*w7VvUZ8jf+o6OiH$;q^8-^GcvQXb8_?Y3jjEBw54rs|L}$L7cXDBa_z?T zo44-VzH7ht;QqtMkDfh!{sJmCOe^^c7H%(n0>H5|0N4b;*1cftdTk*9*tYM%+`-`6(*VPAE92k3Ks0O5hZ)6?W%1f8B_~;OeSBGw#C)W*ri&Y zM0PE$XwSiDsNAt?tarWEQvwLJhZ&CRqA^wG&QHf*JN1{b*B#9^i`>A})WqoWetRmy z2s?)5a+64|4&m8V#hkh=eQpBdrpxK^`oef%_hEH%$}vN9oa^e{Z6<>-m5TQHjG5Fx zwSf|p&zHwI^&=7#3jt_j+!|kV=QKNzbD+bz(gFOXos|Z;MS@~&fNWT)336MR0Jgcn zgYy!Y=a9tm2w;S9D^u2<29w)1Ndb^7Qd&t7XuCIK%(y{64;e(S)yiCl8A%I6ROV5w%6UT^rG!`1cq)@F}c zXO91h`WL<_!9?i0NpFsG2ClGSjld1w;I=^nYPU?=LU93RzTy^<+RPTwjozY-+5Ja# z6Jbl+0BRb*@085=$yeKoYO(_!af6&tj(t2P8>>OoFuyl0|MfGR0`JYv5@b))t5mhMVdjC=~Pa;LTT|?}Hy28?vD>wG9-#JETG#oa%MN`4c0iiZ{|9T!9sLT@WE9%54 zBf4Boc`iT*tloyt#eGaw$Iw8I?HG$7y;X?#3pvbyAUnbc_A>ih2(YYvgC{v9fA@Yv zzERrrVD%kbnxC9+8H$_(A27{F_xws=3IYWfn-m7AMF7Isf8JLw)gx$PhrrH#=9%jWUf@0vuJ$7dR+J~=2p8&TVi2bYzu1sC zwn}c&qd^Pbkm=!4(K%*AQ#8~tV<&dGlipgM84Q`T@H+-jOG{i)rzhqG-*b80rDQ~R zkmdd5T1;(E{G7g7g5?@4+c)qTJ}cZG_^C)u`ZLjm498C{-NMjA3op5kB0AQ}=$deP z%APeK2a_ZO=?H@nYCRMfJ~)X0Wp%i|PjMBeN9#>)Aj3P}rH3>8;xzV)G!{_{ zxh8x|=-lZDB(T0z_u#`QX5ESFu}Szt3$6M(w;jIF37Bc`@&O{Spd?Fj+`|)(RpOyJ z#n}-(C{7U7PfBzVEH2RvWciMSlFI^_t){8?~t3E!tAfgPO7e6&W^e!40h;(cukF3quDzkRWhk!Z-v_q59|$E zN**KG@xA^dCGxk}Q?{6r+rBSQmN@2Am(bat)L<%fB-~c&w0xYdMtp<%;z|xs$>;d8 zFLpedckH%@`Z7Z+KvklgNtc;bnn>d-ndi{o@a7R+*8O)e0T}acJ{75#8Ow zuCE+acGooMRzR;P3Sv9pN{i(PN0=xLlGH;MlDadP>v!0Zl(lGsvX5h) z95bnuO{ALaZFo>BO{E0sDyrete7tx%sKK5~GWv*qM?H5bSov5U5$1N2Vz&OcC4L4K z*%e!z-^uZyR%kj5s07Y8+7B8?CjV?@IDgzS;ZQF-n3uZsv9`6Ov2@bKgNp(krZni= z{NwB%u4>n0evv+=?l0wC+Y4Nu=Ze^23o(PWZ{23P3ua*17G%S@JfZQmBU#Mui+YmB z(7k?;3_)Mp71^@;m7?~?)Z1eIsGEzXgUXZg zvsbcEB`y;njj{5FOj6E0*d>d-AJ9J<<9af7rrai)6sv=XQojH)K+Txca09{u1Gh4byR~=Qge8xb1YebizHXwYO<3B)0%g zOzE#PGobzE8VmRbgf-xm#E}J%e8#@d1np^HUOZUjoC96Z z*|-!c^kR26ER&Zm%L`~_j)Y~oci8DQ9c{el5}8Hu#q8>kX{BUA4$#Uez=70JepX!v zzD58zL7qP1ft03rgoBO##Q9NagWIkoaAP&}dMG&Zkhjk8movLS%$WyPNM8YDac`x` z6Hs2TWDP?xPF(7Ah`6F1VcwNq97ZqH`;|);Q=FPt((W(0MbMA~owmMYynCgN6Bi!e zB9iz?-Q%FExM~7wmjbZ2OygjYfn9vbU52Qwb%pKUk3RcAM}AM zmp^AJ?6E$4m-KoNTLunb!ax{o*t8FvreK0Mi5sMd12yTi2d_n@YcggO4+P4eHDqeP zj}KDk^@w&&Os^+42Y%gmW7X3l>NiWMkV+EwU16MikF8WnMOnDgCGm_L`CiO`;&&*a zGo}tB(6%Z#s{IM{9zHYc01MP;imB+Ho0VYZdvR1G18<9AvcD?CHDRKUr9hTSy=?_IfjZi7ob_*Y^IX(u+cJN z>FziH7i8_tC2>9gd7@=C8Vj2v#2JRts?6L@%eqrhzn;IG86EW&TdhsBKuZK(1*MUi zgq4+4^UuooF(HL_$3WG`#Qb}pf_6PQ%@)nJq%fvl__AFL6pX$ugNaMS_8F7HD$_rs zg7_V#3PV>NG-9DWxd^(R;H~anO~%L9~!H za(Fu1jl+fOvDyBHXQ9BS~bGW z0JC0ah3HR8?BMM*grC(Pp*$&;6k>Tqk73B{k>2}$u(Af^tcOn*=^ffyo7rymJeXr7 z{eVVXaB1od-j6VS68vstq3#zj2L&;>;&e&sJ)!z5=1My~DQjnd^9{b2wP^nkn>et~ zl2HZ;rubfUElQUzZBb-Pu5K|GR8a$>R`E^M;WB9zhP)h5O~@akGS5<@_ckyvdh|nH zE6z)iT0x_nd=W;el)~|cO0QTT^*Mk9D-u-cUr2hum@X@crqT#$L9%?>a423dY)Y>) z;=8JNi%+-`?lye%WrE9k@d=F)u%&eSj_9ifdybIX{lI2Itlegc%6@PF+H5-V zdhOO4m5a%esQ!^%p;jgZtW|bP^nXiufU-T^qbW3INlJoVil#_UKWij^yIUG0byveO3eBznD_@_09@&doH`tN9tNMOzD+$Tl9k{BO>sxR@3;dZ%?dj#`4r`f{N zMT$4y`oGb27_JyP748xi%94<84Tczi%D9Y)ZN!W-BNVl+w^68+)0Y>ECiuNCSVJ6c zhCF!;<4> z|G(*;HV-${?YZTVofYEIL36)mT0r@psz2_gxvuwo=OcIVi4sICR=akYx?I%&U0N3q zX%l8t5xgp4T3Y1IA2-&X8VUNG80*4bl?hj;{*cOzFlsrus>6k? zvwdC03lR(@KR&WiKiepaIVnGR#FAcKU_&)6KE6^%v$Xw>g2sOrQ6edA?l?Pk^fHIq%Lf3DWiFbB+eoa3*6)`p+boYD4B=z z$pf*L@Na+j?YtDt$t{VF1wXR!zS%{noBbjww<60vCzO;(A$!*7y_Db)F*-jYa{lP8 zA8UWafWGYSCi$vB4$gB*MkSh3l#COcfa1|~6_2QhUa1PO)X%S9IKOt;L}}8jB718| zS$jJ!{FI!3#qYiUJDEnbC1oK3K$H zHZ?oG(wOU6)W12cDFKkn>J)#I|8>}GWt2m^>j-NCzHZMZ?+n8~%e0lZdQzIeteTXb zK}fr7hF|ci-?V2PZcV5ob{{IE*lewUw~q)}y zyCi~-VL=`$aEP%PHtN^I94?ExdduBqo^#vFV$CtXvT&TL@#)FStL&Sc{}7_!J*I57J$c+XC)2=|fxClWLrHmRDf9qn+5b%vNi;wP(1@#pFBp%Ip- z%Nfj-zuGN(JT_po&)`Rqh`cRBRS=gAG%Sa*z>zjPO)p74GRIAyA zYPrHiuC7;I`2)vzI8;jV_3I)*1P>1iIPz=@@M0GaB?XCZ2?^@PsW{cVAFeF4CWbMc zU80vOuuj-5p$cX)XAwNAjnqjtikTAW7gXv&i#mSx(xtN(9NYrlsk=kE0(`xyr(e%D z`J}mT_c{2^vL~TqV~%y~R+Z0RKP6OkEokjtzVe@?w6p-p?Nh)Zi$Wm`@~sP)yup7 zdTEc(vjpr3(F(0|lK1|jt@hp@V#rxCw-)lVx1{QPqwTp#{quL!_*r#Z_=$6K;^sKv{FvfZ^`C86xOU%z zrw6y3IrK$wk22Xu)#teNT>cs~meicPV8wX^oQ~-Hnh==BC;ab!UgLAv3mfJp1s>7T zSqne-^Y}a@22m-eV4P3*=Pvo?+2f#qBZtq0(`M7WLVt`h0puK{-eJLce6$P+RM#Wy z=FjR2;?f<7yiB~dGo@i=Z}&FHzZ^pOJlwKFy+^FPuIf5?Y(OzX7Eo8YZDqC8D*MK{ z3?!_gVKZRhCmYg?Fk>6b)9TGu%UZ|8{@*RP%UZYR+UyXfm+fR-VO{4tF7 znvo8FyUt??B5;*C$=D#C&BeCq>RLQ2l}|fB|Kg$wCkV9nu0j(H zkD>&DXXmKcpxGi{9$3En)|*SWp8o$(N}sO?5=(eum`h-(!o>9a(6ZKt`*u#hQ50)D z;C{g{!P_E@q`XEFg7e0j#CQV9J_vCW4D-{$@VU07Viz#1^TV*DACtK+W%x0ItV2oV zTiB|c>_t_i875dcptTCm31IV>tVt;W=sjrA9!4#&tIKb_sEq8Ozqz)zuCi}rLSh6wJqw?k|(H@_O(__*8m^-%v5m$r&R zDn_-gxhTrTxG%0Q{&1V#Ui(+iGb<}C)??(MN=5yAf$ov7&RpD%(vVxS3qo5?Fvi2t zLXwAD9*KnWu;3h_2QbK&Rw+3j>;3&sOi@b~e{3 z(4ze;X}U+EBX}8Ue4oKb3k|m(MDDe|%@WdX9*m_ zLFynmgW%&(EaW3_LGiyUKYyKJUGOIBDF-|9`pDLIub#>u3!ZP!XzoIeAt@E9BvjUViv>Loti(>Y>^oQauMp## z!!MsaRV={|ug$bzS{$*F+?C2+k_K*CMn}B>Ky2&T->zOeJ7qmHwXEzwTJF_@hjOo_ z*>mX7!O`anNcr1+hegYW^AVj_8^Y`u8JylVxU9*$Ma+XNeqZltjfoEMDw|#&Tofu^ z%mc9s*(k(494|(G7Q1ba4)!i~qf&B%M~?#X+ z352+5&g_{>Cb~K}4c$pIEU-pBsU$W2EzhpygA<_OkNF24SPA+uDrwXTyZM)(FrSaP zCN_@j);~D*P8akExF6T?F5}r{jYG#(VgG;_`R!)2n#KXd>0VJ z{&0T&fuF4epMc6x@1Qyq<_UQI2lLjg|329}?dLQbcv<;!!9jnVhmk5_xgrZjc|0s& z-o{HiLk#-eNl#ouGBh};9`OjMM^Hjzjr;Ad)V2Bf8JnMa$VX5N!&R@^ z*q_n$@yF^%4IdAb;RJ@1!Fu^(n1S;!Wp>Tw+UxoGK>X@m;Z`$2+d+X-P%n>o6vAw0Is(TzQ2lDQH)5P|WO_20dppi$?PoF# zf1-ka*?62b4qt%fYH~5qn?1U4$oCw};dcq=B~5=O`GXMM6zj(twv;9&uJ+*5Eywh$oTLr$*(R47-5F|clp?$X-0R7oW(^x!vmj`e(JwSE=+Qckf1tx< z@(_i|il?@e8C#ZrF|u{liSFQLXD5YvJ_F~Wk*rUgOC~t|HIvJ1*uBTyXkFa%S^AQn%>ycfx-E`*)UG^T6`Th-9m;ppI~Jb{j}+$ZG2)E98z@E|>tgpVh>1 zg<`d+iYYB@%!sMoH$2?3JUuElFQ_?Z+$Et^Hrn?rrZ&2Kthd?2;QAV6R69FMr9l#V z#YkUMh`V>eHtzy=Z@+?Veg&n*kd(;SxU3+ZeV(L~{_P+@(}RiI=oE(yZ!T6?D`-r9 zF7w!vq?GE)oLZi52M5DPC$!45{wR)d@Vo9ZVM$w(caSa2)^ZZ4|Aaz53a=J8aWU>) z!rQpF3Gf0#7{bOe)a=p3^~P{E5@uLN+@3-?Y`BTDvWHsi*;@(}N_c&{XVuTi z4T<+w6GOPzKN@F@H<&0E7~y4uM(R--M;)I&=i1yhZYE=wVr?AppCkZD53@keNmNe_ z|550o)E`2IfH^d?d3dEKiA&o_g>9&(CJ9AwoJ;(>c~wnQX6)sVK|ei*;FB^)9-i4G z@Jlt{LvJ{l)8tmTlK4-O+`nq(iYo~X?s;x8=KSiU;)>i_L*f(%NxGmbPENBV|=?S=H`c0LQU z59Fz>D;WgGjh6X1xuJjGvb8HtbnDk`WX@KJ^eVNtyc-KErK3vtpsp9xmYRY;TmP{( zAS^x<^ie7Pe!gK{V|$iNtU24KZ**okqa6$pj_8RSrkgWivch+-F|M?%tQUTLeM$Iy zQ|WTO&nu5;(|ln4By}A&2QGIgaBHY6W;`?BBPT&QUnSqj7k$olS-e1*&CeTZcE_Sg zE3AZXWESsxp)()cXGb^5`6Lm>6_5ouE7hkzUEQGx2#inkP4Ej$(Wkal7KG$UcqqiAoiD7bur+e zwr!>8%U8=B`YYaEQIQLRg4fWZ*<1`sMLd)yXgZ2>xEXHI>q>*l93`P0Ep35pE`j#^ zDi_?+l*yXUFm&4#quuN2C7k1%|U-U-Dm7PS$mGy=FQ!TiFERWJX;B zb5R;~Clzy%qV8TV{64+o`1|v8NbpxTbL1`wVgk+Zv z8JeC<4y(b{nZzb@Q7I)~)*dk{S`;mgXsMG@O2jbAVMiZd zN@npThO}fOrLV<|K*#eb?bH)P(~y*8ml)GbVApIPnZ(EQoqm_A+X6j&k9sOVcl+~1 zVnzA;!T?D^q@>*0Y}K4n?O9IRtO$;Gz&S@I?~#H=&hWn8q2XhV+*He%)CeRs5KOS6 zlA}ZQv8FJcJV-v2xw|Lg#jTe5S#6C4NnU$!)JH7zCgB*jM3rgF(!2jJ$mX~4II8cd zyX3Vo{vWNbrqrOEE(Vvtev!wT{k)0_Y>~FMwkWL^G7}a06isF~s~m^j-Iy}(ZFT0I zDxvgKqa0O?$`q#Q@0*{wfVZUjE6Dx4ub#jD{h~{ZHfZUNS6P$Uhqg>S8ww0ait~>1 z3NY)`Z7ScmH8WTQpX$WRmqg^(7i}OC{IdMj$qP-M-BB{RN^17VSjysX=`fZi3QVic zw%Y#~@QEz}Zua!7E5F~28>r{VZcE}lbD5xkEj(~?Z0UiM!u=r3xt=VBIE@7P z#)NIYZT|Q_HtS&jLC)V+;F{i?k!7{y5$33$UV|CgEs`2bOt9V>6BuNT(Fe!OqK>AK z$Yh05{E;XBckKIZZlh5si9}AN(wnFx)t|C43MG>v>S-$NHU%P+(Ws4-z*yW> zML5v{oxs*HuN7I#y*%5p+P7jQfyEf!9oPew>We@jAX89fU0s_>DmpkwqR|k1aiP-l zfyyg952Fx1(Vldcmwf!@0o6n#B`|AZBj!QLq zU9Q<^Ht1rtWuxsKM!Vk4c}gmX2(SsGrn}1$PkLEo1wnF)f7|G~Uy32Ic8PDW&O$sk zT+Q)oPRFA(g;CpxHin?T307=(VU#8vZ}#J;W5e-6RvEnceW;hlGIWgC#MYlv+rHfu z784$$UwE*(2C0$#w}ABuX83sUjzyYWcYs`6DI7cfHMTuW({#@vD4x4U+}E*d=9l z_0pvk!F&#ZQ%z7a6q|ArVY|xca*Q&=st_=*H#Q@vCDISa`MT>k1ApPI*umtiF6 zt`*cFH5kcvEtwyr#vu}RzyV(xf+UMes52Lq$0k@hVy}^v>yDn;vD0ZsX=qs`&AfBh zXUE>7JD96B`H~$+$B(`Mn8q$i^6m<8ORyN?Pj+5AJ2g?88vHOsmp!-h^|dp){%~+ z71qc45}l?78~GTOQo>+2w7$_gWfpO@MvAq3S~zt}x;t}Ay5>5NzyW?Zqlb0^*_PM}p^gD#{oM*a3>-pRG`jLk8OxN<}2Wcqy2D)H#d;gNT z(Nz%-qO&p_vu#;1>r%3fid>)5)ZX_Y?V2Cyv}stnoxY|*4BwBS_%gVM7}3BT-q(Ze z&&1{hp%)$3kYWg{pP5nc%S9J8WGGKij0@m5x14Pz0D?kX!;szysim0p{PA|tv-<&` zJOdwgUm-MvJ{RgkIC)06F*aELgXGPgyXoxmkxfVEYHP%)KDIieo$Mr}(=Jtol@mKS znN|w*k=b*wFvw1JqR<(eQ*}j^tSQjDZ~jv2>;*n^y!kVSMGMrXkO()o#^~d# zLu9+l6zL?`3K-LA3rWycq9Q{1kQT^;4($n>@hnSHj%aeEMl2m!H&0_vOjO2C@E_yZ zv6BdW0?EmV0l~}RBquAd7t`&iUz{3C1ycxKkQQ$0Y&?(++q?d`H^GE%_F-jA-qKB> zu+^TAL>}U2K;I zX4SnYGQ5VhmT`ZEfNSJEjj?y{`j-B{K&qTPxRx(Mg`qo%I4upTX5CFCkx39lrFD0I zeAUk};SJQ@5(WjjO{Kht=vqaiyh%WZzBRjRqEX1Cw2f4oc`lU%>H<{Sw@uLIqjnz? zETFRWvLJRDJ4mMgo503cYKr$*@Gfv;%zI0J()YQTI^y9||^gn%$z(Az;D$LlMY#>gx3lui zK>R5(sNJ6f@)uGmYGl5@xYs}~9mY#y<|u$u7A7Rkb=Qw_dv8+c@v>jNcJzz_@)!^U zks@?n8W4Eci~UI1JYWQnN72(U$`&B*AR-4Ti;yyFpq{Q538do1Xg!vb{$w@lzVkI;k#KqNJiv@#I(A?sHedp}W98od?UkiUcW@3v@shxv zPLM`+Iv?QWLRRV7QRo0;%P)^(I|gZuf0;uH4PMJ4bWK?Vh!vDH`}*2im-U2tk>*SI zc{y+dNV7!C_P{X^SU2FP7f93(G#WgH#Ae8mXVHUW=;Ay&h64-5FWV-;pW(&~blitEE(4{g<=+0fV;M{0@;9TtL0(bcz-pu(D30t1bsE z_7+q)h+K_Mw|w%SCv0+91*hyT4~^W%ts7r*5XY;f^rPb&e3;l~x0y%>0dxW?)(ZG< zho3<1!sO}*wMQk`M{X|amWP+uWV0h1gNZRze(PF!7zxO0VL6zAY(!;bQOg!AW&p#m9%3ZQGTFaNRW?|LQz0qOen literal 0 HcmV?d00001 diff --git a/static/fonts/advercase-regular.woff2 b/static/fonts/advercase-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e0701241bea9e0268a72a69dcadb54a214817c40 GIT binary patch literal 25088 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 literal 0 HcmV?d00001 diff --git a/static/fonts/futura-bold-font.ttf b/static/fonts/futura-bold-font.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0725025e5a903c1020a16f006ff760f04a717316 GIT binary patch literal 39444 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 ZexoBi=F4rFHk%c18Y)s#t%yX3e*pV83W5Lt literal 0 HcmV?d00001 diff --git a/static/fonts/futura-light-font.ttf b/static/fonts/futura-light-font.ttf new file mode 100644 index 0000000000000000000000000000000000000000..56421e6ac2e736aa8ed9b7126df20f4a41605425 GIT binary patch literal 27400 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 literal 0 HcmV?d00001 diff --git a/static/img/build-for-minipay.png b/static/img/build-for-minipay.png new file mode 100644 index 0000000000000000000000000000000000000000..1d032c690ddc9758a8732ac8c902ee2ce36a7bb9 GIT binary patch literal 98408 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­sslO0mjZmj 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