diff --git a/docs/link/e2e_channels/index.md b/docs/link/channels/e2e_channels/index.md
similarity index 100%
rename from docs/link/e2e_channels/index.md
rename to docs/link/channels/e2e_channels/index.md
diff --git a/docs/link/e2e_channels/setup.md b/docs/link/channels/e2e_channels/setup.md
similarity index 100%
rename from docs/link/e2e_channels/setup.md
rename to docs/link/channels/e2e_channels/setup.md
diff --git a/docs/link/e2e_channels/supported_handsets.md b/docs/link/channels/e2e_channels/supported_handsets.md
similarity index 100%
rename from docs/link/e2e_channels/supported_handsets.md
rename to docs/link/channels/e2e_channels/supported_handsets.md
diff --git a/docs/link/google_channel.md b/docs/link/channels/google_channel.md
similarity index 100%
rename from docs/link/google_channel.md
rename to docs/link/channels/google_channel.md
diff --git a/docs/link/channels/index.mdx b/docs/link/channels/index.mdx
new file mode 100644
index 0000000..c68f061
--- /dev/null
+++ b/docs/link/channels/index.mdx
@@ -0,0 +1,11 @@
+---
+sidebar_position: 20
+sidebar_label: Channels Guide
+---
+
+import DocCardList from '@theme/DocCardList';
+import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
+
+# Channels Guide
+
+
diff --git a/docs/link/channels/proton.md b/docs/link/channels/proton.md
new file mode 100644
index 0000000..c135dda
--- /dev/null
+++ b/docs/link/channels/proton.md
@@ -0,0 +1,65 @@
+---
+title: Proton Mail Channel
+sidebar_label: Proton Mail Channel
+sidebar_position: 55
+description: Using a ProtonMail email account
+---
+
+[Proton Mail](https://proton.me/mail) is the largest end-to-end encrypted email hosting service.
+It was launched in 2014 and is headquartered in Geneva, Switzerland.
+It is owned by the non-profit Proton Foundation through its subsidiary Proton AG.
+Proton Mail uses client-side encryption to protect email content and user data before they are sent to Proton Mail
+servers, unlike other common email providers.
+
+The source code for the back end of Proton Mail remains closed-source, but Proton Mail released the source code for the
+web interface, iOS and Android apps, and the [Proton Mail Bridge app](https://github.com/ProtonMail/proton-bridge)
+under an open-source licence.
+
+Although Proton Mail's encryption uses the open standard OpenPGP, and the Link platform support OpenPGP when used with
+other email providers, it is not possible to directly interact with the encryption from the Link platform.
+This is because Proton Mail does not provide the traditional IMAP and SMTP server endpoints to send and receive emails
+and only allows connection via the Proton Mail bridge app which handles all encryption and decryption of messages.
+
+## Requirements
+
+* You must have a paid plan to use the Proton Mail channel as the use of the Proton Mail Bridge app is not possible on
+a free account.
+* Additionally, a user must be dedicated for the use of the helpdesk, it is not sufficient to create an alias on an
+existing user.
+
+## Encryption & Key Management
+
+OpenPGP private keys are created automatically for each Proton Mail account, although these are stored in a way that
+they are not generally available other than when successfully authenticated to the platform.
+In the case of Link, this means that the Proton Mail Bridge app is authenticated and then has access to the OpenPGP
+private key.
+
+It is not currently possible to import public keys of 3rd-party (i.e. non-Proton Mail) email addresses, and so only
+emails between Proton Mail users will be end-to-end encrypted.
+The service also
+[does not support the Autocrypt standard](https://protonmail.uservoice.com/forums/945460-general-ideas/suggestions/32845105-autocrypt-support),
+which allows other clients to import discovered public keys automatically on new conversations.
+The Proton Mail documentation [has more on this topic](https://proton.me/support/proton-mail-encryption-explained).
+
+We will provide you with your public OpenPGP key when the channel is set up, and you can make this discoverable via your
+website, but for conversations with 3rd-party accounts we expect the conversations will only be encrypted in one
+direction and your replies will not be encrypted.
+
+The helpdesk is unaware of the encryption happening in Protonmail, and cannot inform agents when an email that was sent
+or received by the helpdesk was encrypted or not.
+
+## Setting up
+
+If you do not have an organisational account, we can fully manage the Proton Mail account setup including billing.
+Please [contact us](https://www.sr2.uk/contact) to discuss this.
+
+If you have an organisational account,
+[send an invite for the new user](https://proton.me/support/add-users-organization#create-a-new-user) (the new helpdesk
+channel address) to contact@sr2.uk, and email the same address to let us know you are doing this and that you would
+like the channel added to your helpdesk.
+
+Once the setup is complete we will provide you with OpenPGP public key and will also upload it to
+[keys.openpgp.org](https://keys.openpgp.org/) to aid in its discovery by users.
+We can also provide support on setting up Web Key Discovery (WKD) on your custom email domain if desired to further
+increase the chances that inbound emails will be automatically encrypted, although this still cannot help to encrypt
+replies to 3rd-party email services.
\ No newline at end of file
diff --git a/docs/link/backups.md b/docs/link/features/backups.md
similarity index 98%
rename from docs/link/backups.md
rename to docs/link/features/backups.md
index 3112fdc..16c3c4b 100644
--- a/docs/link/backups.md
+++ b/docs/link/features/backups.md
@@ -1,6 +1,6 @@
---
title: Backups
-sidebar_position: 90
+sidebar_position: 20
---
## Daily Backups
diff --git a/docs/link/features/index.mdx b/docs/link/features/index.mdx
new file mode 100644
index 0000000..76069b6
--- /dev/null
+++ b/docs/link/features/index.mdx
@@ -0,0 +1,11 @@
+---
+sidebar_position: 10
+sidebar_label: Features
+---
+
+import DocCardList from '@theme/DocCardList';
+import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
+
+# Features
+
+
diff --git a/docs/link/security.md b/docs/link/features/security.md
similarity index 98%
rename from docs/link/security.md
rename to docs/link/features/security.md
index 834382d..c38bfd3 100644
--- a/docs/link/security.md
+++ b/docs/link/features/security.md
@@ -1,6 +1,6 @@
---
title: Security
-sidebar_position: 50
+sidebar_position: 10
---
## Application Security
diff --git a/docs/link/autoresponders.md b/docs/link/guide/autoresponders.md
similarity index 100%
rename from docs/link/autoresponders.md
rename to docs/link/guide/autoresponders.md
diff --git a/docs/link/guide/index.mdx b/docs/link/guide/index.mdx
new file mode 100644
index 0000000..7da5f98
--- /dev/null
+++ b/docs/link/guide/index.mdx
@@ -0,0 +1,11 @@
+---
+sidebar_position: 20
+sidebar_label: Agents Guide
+---
+
+import DocCardList from '@theme/DocCardList';
+import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
+
+# Features
+
+
diff --git a/docs/link/logging_in.md b/docs/link/guide/logging_in.md
similarity index 100%
rename from docs/link/logging_in.md
rename to docs/link/guide/logging_in.md
diff --git a/docs/link/notifications.md b/docs/link/guide/notifications.md
similarity index 100%
rename from docs/link/notifications.md
rename to docs/link/guide/notifications.md
diff --git a/docs/link/pgp.md b/docs/link/guide/pgp.md
similarity index 100%
rename from docs/link/pgp.md
rename to docs/link/guide/pgp.md
diff --git a/docs/link/project_separation.md b/docs/link/guide/project_separation.md
similarity index 100%
rename from docs/link/project_separation.md
rename to docs/link/guide/project_separation.md
diff --git a/docs/link/hosted.md b/docs/link/hosted.md
index 0540182..b418acc 100644
--- a/docs/link/hosted.md
+++ b/docs/link/hosted.md
@@ -4,6 +4,15 @@ sidebar_position: 500
# CDR Link FAQ
+:::warning[CDR Sunset]
+The Center for Digital Resilience will be sunsetting, with all programs and activities drawing to a full close on
+December 31st, 2026.
+Existing CDR users have been contacted and will all be offered to migrate their service contracts to SR2 at time of
+renewal.
+Read more [on our blog](https://www.sr2.uk/posts/2026-link-new-home/).
+:::
+
+
CDR offers hosted Link helpdesk instances managed by [SR2 Communications](https://www.sr2.uk/),
a trusted team within the digital rights community, with a proven track record of securely handling sensitive data.
diff --git a/docs/link/index.mdx b/docs/link/index.mdx
index 579a575..d0e2312 100644
--- a/docs/link/index.mdx
+++ b/docs/link/index.mdx
@@ -8,14 +8,13 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
# Link Helpdesk
-:::warning[Under construction]
-This documentation is a work in progress. Please [get in touch with us](mailto:contact@sr2.uk) if you have any questions.
-:::
-
-Our secure digital helpdesk platform, Link, is customised and hardened version of Zammad, an open source, flexible,
-multi-channel ticketing platform that enables those in need to ask for help, and providers to respond.
+Our secure digital helpdesk platform, Link, is customised and hardened version of [Zammad](https://zammad.com/en),
+an open source, flexible, multi-channel ticketing platform that enables those in need to ask for help, and providers to
+respond.
The helpdesks have integrations with popular messaging apps, including Signal, WhatsApp, and Telegram, making it easier
to securely allow responders to request assistance.
+
+
diff --git a/docs/link/moving_away.md b/docs/link/moving_away.md
index fefab06..1093a4d 100644
--- a/docs/link/moving_away.md
+++ b/docs/link/moving_away.md
@@ -1,6 +1,6 @@
---
title: Moving Away
-sidebar_position: 100
+sidebar_position: 150
---
## Data Portability
diff --git a/docs/link/troubleshooting.md b/docs/link/troubleshooting.md
index 2533d86..31add3f 100644
--- a/docs/link/troubleshooting.md
+++ b/docs/link/troubleshooting.md
@@ -24,6 +24,7 @@ please contact us.
### Google mail not working, Oauth token expired
+
#### Instructions
First, someone with admin permissions in your Google organisation needs to navigate to https://console.cloud.google.com/apis/credentials
diff --git a/package-lock.json b/package-lock.json
index 2135c4d..ad94568 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,7 +10,7 @@
"dependencies": {
"@docusaurus/core": "3.9.2",
"@docusaurus/preset-classic": "3.9.2",
- "@docusaurus/theme-mermaid": "^3.9.2",
+ "@docusaurus/theme-mermaid": "3.9.2",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"prism-react-renderer": "^2.3.0",
@@ -3937,16 +3937,16 @@
}
},
"node_modules/@docusaurus/theme-mermaid": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.10.1.tgz",
- "integrity": "sha512-2gxpmln8Pc4EN1oWzshQEx2HTs67jk14v7MmgqGs8ZU7Nm8oihg+fTouof2u4vN8DtB3Fln4cDJu4UprSX1S3Q==",
+ "version": "3.9.2",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.9.2.tgz",
+ "integrity": "sha512-5vhShRDq/ntLzdInsQkTdoKWSzw8d1jB17sNPYhA/KvYYFXfuVEGHLM6nrf8MFbV8TruAHDG21Fn3W4lO8GaDw==",
"license": "MIT",
"dependencies": {
- "@docusaurus/core": "3.10.1",
- "@docusaurus/module-type-aliases": "3.10.1",
- "@docusaurus/theme-common": "3.10.1",
- "@docusaurus/types": "3.10.1",
- "@docusaurus/utils-validation": "3.10.1",
+ "@docusaurus/core": "3.9.2",
+ "@docusaurus/module-type-aliases": "3.9.2",
+ "@docusaurus/theme-common": "3.9.2",
+ "@docusaurus/types": "3.9.2",
+ "@docusaurus/utils-validation": "3.9.2",
"mermaid": ">=11.6.0",
"tslib": "^2.6.0"
},
@@ -3964,382 +3964,6 @@
}
}
},
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/babel": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.10.1.tgz",
- "integrity": "sha512-DZzFO1K3v/GoEt1fx1DiYHF4en+PuhtQf1AkQJa5zu3CoeKSpr5cpQRUlz3jr0m44wyzmSXu9bVpfir+N4+8bg==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.25.9",
- "@babel/generator": "^7.25.9",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-transform-runtime": "^7.25.9",
- "@babel/preset-env": "^7.25.9",
- "@babel/preset-react": "^7.25.9",
- "@babel/preset-typescript": "^7.25.9",
- "@babel/runtime": "^7.25.9",
- "@babel/traverse": "^7.25.9",
- "@docusaurus/logger": "3.10.1",
- "@docusaurus/utils": "3.10.1",
- "babel-plugin-dynamic-import-node": "^2.3.3",
- "fs-extra": "^11.1.1",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=20.0"
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/bundler": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.10.1.tgz",
- "integrity": "sha512-HIqQPvbqnnQRe4NsBd1774KRarjXqS6wHsWELtyuSs1gCfvixJO2jUGH/OEBtr1Gvzpw+ze5CjGMvSJ8UE1KUw==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.25.9",
- "@docusaurus/babel": "3.10.1",
- "@docusaurus/cssnano-preset": "3.10.1",
- "@docusaurus/logger": "3.10.1",
- "@docusaurus/types": "3.10.1",
- "@docusaurus/utils": "3.10.1",
- "babel-loader": "^9.2.1",
- "clean-css": "^5.3.3",
- "copy-webpack-plugin": "^11.0.0",
- "css-loader": "^6.11.0",
- "css-minimizer-webpack-plugin": "^5.0.1",
- "cssnano": "^6.1.2",
- "file-loader": "^6.2.0",
- "html-minifier-terser": "^7.2.0",
- "mini-css-extract-plugin": "^2.9.2",
- "null-loader": "^4.0.1",
- "postcss": "^8.5.4",
- "postcss-loader": "^7.3.4",
- "postcss-preset-env": "^10.2.1",
- "terser-webpack-plugin": "^5.3.9",
- "tslib": "^2.6.0",
- "url-loader": "^4.1.1",
- "webpack": "^5.95.0",
- "webpackbar": "^7.0.0"
- },
- "engines": {
- "node": ">=20.0"
- },
- "peerDependencies": {
- "@docusaurus/faster": "*"
- },
- "peerDependenciesMeta": {
- "@docusaurus/faster": {
- "optional": true
- }
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/core": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.10.1.tgz",
- "integrity": "sha512-3pf2fXXw0eVk8WnC3T4LIigRDupcpvngpKo9Vy7mYyBhuddc0klDUuZAIfzMoK6z05pdlk6EFC/vBSX43+1O5w==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/babel": "3.10.1",
- "@docusaurus/bundler": "3.10.1",
- "@docusaurus/logger": "3.10.1",
- "@docusaurus/mdx-loader": "3.10.1",
- "@docusaurus/utils": "3.10.1",
- "@docusaurus/utils-common": "3.10.1",
- "@docusaurus/utils-validation": "3.10.1",
- "boxen": "^6.2.1",
- "chalk": "^4.1.2",
- "chokidar": "^3.5.3",
- "cli-table3": "^0.6.3",
- "combine-promises": "^1.1.0",
- "commander": "^5.1.0",
- "core-js": "^3.31.1",
- "detect-port": "^1.5.1",
- "escape-html": "^1.0.3",
- "eta": "^2.2.0",
- "eval": "^0.1.8",
- "execa": "^5.1.1",
- "fs-extra": "^11.1.1",
- "html-tags": "^3.3.1",
- "html-webpack-plugin": "^5.6.0",
- "leven": "^3.1.0",
- "lodash": "^4.17.21",
- "open": "^8.4.0",
- "p-map": "^4.0.0",
- "prompts": "^2.4.2",
- "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0",
- "react-loadable": "npm:@docusaurus/react-loadable@6.0.0",
- "react-loadable-ssr-addon-v5-slorber": "^1.0.3",
- "react-router": "^5.3.4",
- "react-router-config": "^5.1.1",
- "react-router-dom": "^5.3.4",
- "semver": "^7.5.4",
- "serve-handler": "^6.1.7",
- "tinypool": "^1.0.2",
- "tslib": "^2.6.0",
- "update-notifier": "^6.0.2",
- "webpack": "^5.95.0",
- "webpack-bundle-analyzer": "^4.10.2",
- "webpack-dev-server": "^5.2.2",
- "webpack-merge": "^6.0.1"
- },
- "bin": {
- "docusaurus": "bin/docusaurus.mjs"
- },
- "engines": {
- "node": ">=20.0"
- },
- "peerDependencies": {
- "@docusaurus/faster": "*",
- "@mdx-js/react": "^3.0.0",
- "react": "^18.0.0 || ^19.0.0",
- "react-dom": "^18.0.0 || ^19.0.0"
- },
- "peerDependenciesMeta": {
- "@docusaurus/faster": {
- "optional": true
- }
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/cssnano-preset": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.10.1.tgz",
- "integrity": "sha512-eNfHGcTKCSq6xmcavAkX3RRclHaE2xRCMParlDXLdXVP01/a2e/jKXMj/0ULnLFQSNwwuI62L0Ge8J+nZsR7UQ==",
- "license": "MIT",
- "dependencies": {
- "cssnano-preset-advanced": "^6.1.2",
- "postcss": "^8.5.4",
- "postcss-sort-media-queries": "^5.2.0",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=20.0"
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/logger": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.10.1.tgz",
- "integrity": "sha512-oPjNFnfJsRCkePVjkGrxWGq4MvJKRQT0r9jOP0eRBTZ7Wr9FAbzdP/Gjs0I2Ss6YRkPoEgygKG112OkE6skvJw==",
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.1.2",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=20.0"
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/mdx-loader": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.10.1.tgz",
- "integrity": "sha512-GRmeb/wQ+iXRrFwcHBfgQhrJxGElgCsoTWZYDhccjsZVne1p8MK/EpQVIloXttz76TCe78kKD5AEG9n1xc1oxQ==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/logger": "3.10.1",
- "@docusaurus/utils": "3.10.1",
- "@docusaurus/utils-validation": "3.10.1",
- "@mdx-js/mdx": "^3.0.0",
- "@slorber/remark-comment": "^1.0.0",
- "escape-html": "^1.0.3",
- "estree-util-value-to-estree": "^3.0.1",
- "file-loader": "^6.2.0",
- "fs-extra": "^11.1.1",
- "image-size": "^2.0.2",
- "mdast-util-mdx": "^3.0.0",
- "mdast-util-to-string": "^4.0.0",
- "rehype-raw": "^7.0.0",
- "remark-directive": "^3.0.0",
- "remark-emoji": "^4.0.0",
- "remark-frontmatter": "^5.0.0",
- "remark-gfm": "^4.0.0",
- "stringify-object": "^3.3.0",
- "tslib": "^2.6.0",
- "unified": "^11.0.3",
- "unist-util-visit": "^5.0.0",
- "url-loader": "^4.1.1",
- "vfile": "^6.0.1",
- "webpack": "^5.88.1"
- },
- "engines": {
- "node": ">=20.0"
- },
- "peerDependencies": {
- "react": "^18.0.0 || ^19.0.0",
- "react-dom": "^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/module-type-aliases": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.10.1.tgz",
- "integrity": "sha512-YoOZKUdGlp8xSYhuAkGdSo5Ydkbq4V4eK3sD8v0a2hloxCWdQbNBhkc+Ko9QyjpESc0BYcIGM5iHVAy5hdFV6w==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/types": "3.10.1",
- "@types/history": "^4.7.11",
- "@types/react": "*",
- "@types/react-router-config": "*",
- "@types/react-router-dom": "*",
- "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0",
- "react-loadable": "npm:@docusaurus/react-loadable@6.0.0"
- },
- "peerDependencies": {
- "react": "*",
- "react-dom": "*"
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/theme-common": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.10.1.tgz",
- "integrity": "sha512-0YtmIeoNo1fIw65LO8+/1dPgmDV86UmhMkow37gzjytuiCSQm9xob6PJy0L4kuQEMTLfUOGvkXvZr7GPrHquMA==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/mdx-loader": "3.10.1",
- "@docusaurus/module-type-aliases": "3.10.1",
- "@docusaurus/utils": "3.10.1",
- "@docusaurus/utils-common": "3.10.1",
- "@types/history": "^4.7.11",
- "@types/react": "*",
- "@types/react-router-config": "*",
- "clsx": "^2.0.0",
- "parse-numeric-range": "^1.3.0",
- "prism-react-renderer": "^2.3.0",
- "tslib": "^2.6.0",
- "utility-types": "^3.10.0"
- },
- "engines": {
- "node": ">=20.0"
- },
- "peerDependencies": {
- "@docusaurus/plugin-content-docs": "*",
- "react": "^18.0.0 || ^19.0.0",
- "react-dom": "^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/types": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.10.1.tgz",
- "integrity": "sha512-XYMK8k1szDCFMw2V+Xyen0g7Kee1sP3dtFnl7vkGkZOkeAJ/oPDQPL8iz4HBKOo/cwU8QeV6onVjMqtP+tFzsw==",
- "license": "MIT",
- "dependencies": {
- "@mdx-js/mdx": "^3.0.0",
- "@types/history": "^4.7.11",
- "@types/mdast": "^4.0.2",
- "@types/react": "*",
- "commander": "^5.1.0",
- "joi": "^17.9.2",
- "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0",
- "utility-types": "^3.10.0",
- "webpack": "^5.95.0",
- "webpack-merge": "^5.9.0"
- },
- "peerDependencies": {
- "react": "^18.0.0 || ^19.0.0",
- "react-dom": "^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/types/node_modules/webpack-merge": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
- "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
- "license": "MIT",
- "dependencies": {
- "clone-deep": "^4.0.1",
- "flat": "^5.0.2",
- "wildcard": "^2.0.0"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/utils": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.10.1.tgz",
- "integrity": "sha512-3ojeJry9xBYdJO6qoyyzqeJFSJBVx2mXhyDzSdjwL2+URFQMf+h25gG38iswGImicK0ELjTd1EL2xzk8hf3QPw==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/logger": "3.10.1",
- "@docusaurus/types": "3.10.1",
- "@docusaurus/utils-common": "3.10.1",
- "escape-string-regexp": "^4.0.0",
- "execa": "^5.1.1",
- "file-loader": "^6.2.0",
- "fs-extra": "^11.1.1",
- "github-slugger": "^1.5.0",
- "globby": "^11.1.0",
- "gray-matter": "^4.0.3",
- "jiti": "^1.20.0",
- "js-yaml": "^4.1.0",
- "lodash": "^4.17.21",
- "micromatch": "^4.0.5",
- "p-queue": "^6.6.2",
- "prompts": "^2.4.2",
- "resolve-pathname": "^3.0.0",
- "tslib": "^2.6.0",
- "url-loader": "^4.1.1",
- "utility-types": "^3.10.0",
- "webpack": "^5.88.1"
- },
- "engines": {
- "node": ">=20.0"
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/utils-common": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.10.1.tgz",
- "integrity": "sha512-5mFSgEADtnFxFH7RLw02QA5MpU5JVUCj0MPeIvi/aF4Fi45tQRIuTwXoXDqJ+1VfQJuYJGz3SI63wmGz4HvXzA==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/types": "3.10.1",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=20.0"
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/@docusaurus/utils-validation": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.10.1.tgz",
- "integrity": "sha512-cRv1X69jwaWv47waglllgZVWzeBFLhl53XT/XED/83BerVBTC5FTP8WTcVl8Z6sZOegDSwitu/wpCSPCDOT6lg==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/logger": "3.10.1",
- "@docusaurus/utils": "3.10.1",
- "@docusaurus/utils-common": "3.10.1",
- "fs-extra": "^11.2.0",
- "joi": "^17.9.2",
- "js-yaml": "^4.1.0",
- "lodash": "^4.17.21",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=20.0"
- }
- },
- "node_modules/@docusaurus/theme-mermaid/node_modules/webpackbar": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-7.0.0.tgz",
- "integrity": "sha512-aS9soqSO2iCHgqHoCrj4LbfGQUboDCYJPSFOAchEK+9psIjNrfSWW4Y0YEz67MKURNvMmfo0ycOg9d/+OOf9/Q==",
- "license": "MIT",
- "dependencies": {
- "ansis": "^3.2.0",
- "consola": "^3.2.3",
- "pretty-time": "^1.1.0",
- "std-env": "^3.7.0"
- },
- "engines": {
- "node": ">=14.21.3"
- },
- "peerDependencies": {
- "@rspack/core": "*",
- "webpack": "3 || 4 || 5"
- },
- "peerDependenciesMeta": {
- "@rspack/core": {
- "optional": true
- },
- "webpack": {
- "optional": true
- }
- }
- },
"node_modules/@docusaurus/theme-search-algolia": {
"version": "3.9.2",
"resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.9.2.tgz",
@@ -6735,15 +6359,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/ansis": {
- "version": "3.17.0",
- "resolved": "https://registry.npmjs.org/ansis/-/ansis-3.17.0.tgz",
- "integrity": "sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==",
- "license": "ISC",
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
diff --git a/package.json b/package.json
index 20dbb88..87ed8f7 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,7 @@
"dependencies": {
"@docusaurus/core": "3.9.2",
"@docusaurus/preset-classic": "3.9.2",
- "@docusaurus/theme-mermaid": "^3.9.2",
+ "@docusaurus/theme-mermaid": "3.9.2",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"prism-react-renderer": "^2.3.0",
diff --git a/static/docs/link/active_support.png b/static/docs/link/active_support.png
new file mode 100644
index 0000000..b26741d
Binary files /dev/null and b/static/docs/link/active_support.png differ