diff --git a/.github/workflows/typesense-scraper.yml b/.github/workflows/typesense-scraper.yml
new file mode 100644
index 000000000..0e7b56bb4
--- /dev/null
+++ b/.github/workflows/typesense-scraper.yml
@@ -0,0 +1,22 @@
+name: Index docs in Typesense
+
+on:
+ schedule:
+ - cron: '0 1 * * *' # 1am UTC = 3am SAST
+ workflow_dispatch: # Optional: allows manual triggering
+
+jobs:
+ scrape:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check out repo
+ uses: actions/checkout@v3
+
+ - name: Run Typesense DocSearch Scraper
+ uses: celsiusnarhwal/typesense-scraper@15f9049f1e4a868fc94e45948f86bd0ceed2f4b3 #v2.0.1
+ with:
+ api-key: ${{ secrets.TYPESENSE_API_KEY }}
+ host: 9scwdgbn4v8r1lyfp.a1.typesense.net
+ port: 443
+ protocol: https
+ config: typesense-scraper.config.json
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 58ffab641..24ccf754f 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -222,7 +222,10 @@ export default async function createConfigAsync() {
defaultLocale: "en",
locales: ["en"],
},
- themes: ["docusaurus-theme-openapi-docs"],
+ themes: [
+ "docusaurus-theme-openapi-docs",
+ "docusaurus-theme-search-typesense",
+ ],
presets: [
[
"classic",
@@ -291,6 +294,30 @@ export default async function createConfigAsync() {
themeConfig: {
image: "img/share.jpg",
+
+ // Typesense search configuration
+ typesense: {
+ typesenseCollectionName: 'seqera_docs',
+ searchPagePath: '/search',
+
+ typesenseServerConfig: {
+ nodes: [{
+ host: '9scwdgbn4v8r1lyfp.a1.typesense.net',
+ port: 443,
+ protocol: 'https',
+ }],
+ apiKey: 'UUIEzlGORRp9lV5GndPR1zYBVBCPIJOl',
+ connectionTimeoutSeconds: 2,
+ },
+
+ typesenseSearchParameters: {
+ query_by: 'content,hierarchy.lvl0,hierarchy.lvl1,hierarchy.lvl2,hierarchy.lvl3',
+ },
+
+ contextualSearch: true,
+ placeholder: 'Search Seqera docs...',
+ },
+
navbar: {
logo: {
alt: "Seqera",
@@ -476,4 +503,4 @@ export default async function createConfigAsync() {
},
],
};
-}
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index fadc54c68..2fd79607d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,7 +8,6 @@
"name": "seqera-docs",
"version": "0.0.0",
"dependencies": {
- "@docsearch/react": "^3.9.0",
"@docusaurus/core": "^3.8.1",
"@docusaurus/faster": "^3.8.1",
"@docusaurus/mdx-loader": "^3.8.1",
@@ -18,11 +17,11 @@
"@mdx-js/react": "^3.0.0",
"@rspack/core": "^1.4.11",
"@tailwindcss/postcss": "^4.1.12",
- "@types/react-instantsearch-dom": "^6.12.3",
"clsx": "^1.2.1",
"docusaurus-plugin-openapi-docs": "^4.5.1",
"docusaurus-remark-plugin-tab-blocks": "^3.1.0",
"docusaurus-theme-openapi-docs": "^4.5.1",
+ "docusaurus-theme-search-typesense": "^0.25.0",
"framer-motion": "^11.0.0",
"image-size": "^2.0.2",
"mdi-react": "^9.4.0",
@@ -34,7 +33,6 @@
"react": "^18.2.0",
"react-cookie": "^7.2.2",
"react-dom": "^18.2.0",
- "react-instantsearch-dom": "^6.40.4",
"rehype-katex": "^7.0.1",
"remark-code-import": "^1.2.0",
"remark-deflist": "^1.0.0",
@@ -67,11 +65,40 @@
"node": ">=22"
}
},
+ "node_modules/@algolia/autocomplete-core": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.8.2.tgz",
+ "integrity": "sha512-mTeshsyFhAqw/ebqNsQpMtbnjr+qVOSKXArEj4K0d7sqc8It1XD0gkASwecm9mF/jlOQ4Z9RNg1HbdA8JPdRwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/autocomplete-shared": "1.8.2"
+ }
+ },
+ "node_modules/@algolia/autocomplete-preset-algolia": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.8.2.tgz",
+ "integrity": "sha512-J0oTx4me6ZM9kIKPuL3lyU3aB8DEvpVvR6xWmHVROx5rOYJGQcZsdG4ozxwcOyiiu3qxMkIbzntnV1S1VWD8yA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/autocomplete-shared": "1.8.2"
+ },
+ "peerDependencies": {
+ "@algolia/client-search": ">= 4.9.1 < 6",
+ "algoliasearch": ">= 4.9.1 < 6"
+ }
+ },
+ "node_modules/@algolia/autocomplete-shared": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.8.2.tgz",
+ "integrity": "sha512-b6Z/X4MczChMcfhk6kfRmBzPgjoPzuS9KGR4AFsiLulLNRAAqhP+xZTKtMnZGhLuc61I20d5WqlId02AZvcO6g==",
+ "license": "MIT"
+ },
"node_modules/@algolia/cache-browser-local-storage": {
"version": "4.25.2",
"resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.25.2.tgz",
"integrity": "sha512-tA1rqAafI+gUdewjZwyTsZVxesl22MTgLWRKt1+TBiL26NiKx7SjRqTI3pzm8ngx1ftM5LSgXkVIgk2+SRgPTg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/cache-common": "4.25.2"
}
@@ -80,13 +107,15 @@
"version": "4.25.2",
"resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.25.2.tgz",
"integrity": "sha512-E+aZwwwmhvZXsRA1+8DhH2JJIwugBzHivASTnoq7bmv0nmForLyH7rMG5cOTiDK36DDLnKq1rMGzxWZZ70KZag==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@algolia/cache-in-memory": {
"version": "4.25.2",
"resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.25.2.tgz",
"integrity": "sha512-KYcenhfPKgR+WJ6IEwKVEFMKKCWLZdnYuw08+3Pn1cxAXbJcTIKjoYgEXzEW6gJmDaau2l55qNrZo6MBbX7+sw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/cache-common": "4.25.2"
}
@@ -111,6 +140,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.25.2.tgz",
"integrity": "sha512-IfRGhBxvjli9mdexrCxX2N4XT9NBN3tvZK5zCaL8zkDcgsthiM9WPvGIZS/pl/FuXB7hA0lE5kqOzsQDP6OmGQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/client-common": "4.25.2",
"@algolia/client-search": "4.25.2",
@@ -122,6 +152,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.25.2.tgz",
"integrity": "sha512-HXX8vbJPYW29P18GxciiwaDpQid6UhpPP9nW9WE181uGUgFhyP5zaEkYWf9oYBrjMubrGwXi5YEzJOz6Oa4faA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/requester-common": "4.25.2",
"@algolia/transporter": "4.25.2"
@@ -132,6 +163,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.25.2.tgz",
"integrity": "sha512-pO/LpVnQlbJpcHRk+AroWyyFnh01eOlO6/uLZRUmYvr/hpKZKxI6n7ufgTawbo0KrAu2CePfiOkStYOmDuRjzQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/client-common": "4.25.2",
"@algolia/requester-common": "4.25.2",
@@ -143,6 +175,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.25.2.tgz",
"integrity": "sha512-4Yxxhxh+XjXY8zPyo+h6tQuyoJWDBn8E3YLr8j+YAEy5p+r3/5Tp+ANvQ+hNaQXbwZpyf5d4ViYOBjJ8+bWNEg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/client-common": "4.25.2",
"@algolia/client-search": "4.25.2",
@@ -155,6 +188,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.25.2.tgz",
"integrity": "sha512-HXX8vbJPYW29P18GxciiwaDpQid6UhpPP9nW9WE181uGUgFhyP5zaEkYWf9oYBrjMubrGwXi5YEzJOz6Oa4faA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/requester-common": "4.25.2",
"@algolia/transporter": "4.25.2"
@@ -165,6 +199,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.25.2.tgz",
"integrity": "sha512-pO/LpVnQlbJpcHRk+AroWyyFnh01eOlO6/uLZRUmYvr/hpKZKxI6n7ufgTawbo0KrAu2CePfiOkStYOmDuRjzQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/client-common": "4.25.2",
"@algolia/requester-common": "4.25.2",
@@ -200,6 +235,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.25.2.tgz",
"integrity": "sha512-K81PRaHF77mHv2u8foWTHnIf5c+QNf/SnKNM7rB8JPi7TMYi4E5o2mFbgdU1ovd8eg9YMOEAuLkl1Nz1vbM3zQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/client-common": "4.25.2",
"@algolia/requester-common": "4.25.2",
@@ -211,6 +247,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.25.2.tgz",
"integrity": "sha512-HXX8vbJPYW29P18GxciiwaDpQid6UhpPP9nW9WE181uGUgFhyP5zaEkYWf9oYBrjMubrGwXi5YEzJOz6Oa4faA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/requester-common": "4.25.2",
"@algolia/transporter": "4.25.2"
@@ -271,13 +308,15 @@
"version": "4.25.2",
"resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.25.2.tgz",
"integrity": "sha512-aUXpcodoIpLPsnVc2OHgC9E156R7yXWLW2l+Zn24Cyepfq3IvmuVckBvJDpp7nPnXkEzeMuvnVxQfQsk+zP/BA==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@algolia/logger-console": {
"version": "4.25.2",
"resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.25.2.tgz",
"integrity": "sha512-H3Y+UB0Ty0htvMJ6zDSufhFTSDlg3Pyj3AXilfDdDRcvfhH4C/cJNVm+CTaGORxL5uKABGsBp+SZjsEMTyAunQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/logger-common": "4.25.2"
}
@@ -302,6 +341,7 @@
"resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.25.2.tgz",
"integrity": "sha512-puRrGeXwAuVa4mLdvXvmxHRFz9MkcCOLPcjz7MjU4NihlpIa+lZYgikJ7z0SUAaYgd6l5Bh00hXiU/OlX5ffXQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/cache-browser-local-storage": "4.25.2",
"@algolia/cache-common": "4.25.2",
@@ -321,6 +361,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.25.2.tgz",
"integrity": "sha512-HXX8vbJPYW29P18GxciiwaDpQid6UhpPP9nW9WE181uGUgFhyP5zaEkYWf9oYBrjMubrGwXi5YEzJOz6Oa4faA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/requester-common": "4.25.2",
"@algolia/transporter": "4.25.2"
@@ -331,6 +372,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.25.2.tgz",
"integrity": "sha512-pO/LpVnQlbJpcHRk+AroWyyFnh01eOlO6/uLZRUmYvr/hpKZKxI6n7ufgTawbo0KrAu2CePfiOkStYOmDuRjzQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/client-common": "4.25.2",
"@algolia/requester-common": "4.25.2",
@@ -342,6 +384,7 @@
"resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.25.2.tgz",
"integrity": "sha512-aAjfsI0AjWgXLh/xr9eoR8/9HekBkIER3bxGoBf9d1XWMMoTo/q92Da2fewkxwLE6mla95QJ9suJGOtMOewXXQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/requester-common": "4.25.2"
}
@@ -351,6 +394,7 @@
"resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.25.2.tgz",
"integrity": "sha512-Ja/FYB7W9ZM+m8UrMIlawNUAKpncvb9Mo+D8Jq5WepGTUyQ9CBYLsjwxv9O8wbj3TSWqTInf4uUBJ2FKR8G7xw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/requester-common": "4.25.2"
}
@@ -371,7 +415,8 @@
"version": "4.25.2",
"resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.25.2.tgz",
"integrity": "sha512-Q4wC3sgY0UFjV3Rb3icRLTpPB5/M44A8IxzJHM9PNeK1T3iX7X/fmz7ATUYQYZTpwHCYATlsQKWiTpql1hHjVg==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@algolia/requester-fetch": {
"version": "5.32.0",
@@ -402,6 +447,7 @@
"resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.25.2.tgz",
"integrity": "sha512-yw3RLHWc6V+pbdsFtq8b6T5bJqLDqnfKWS7nac1Vzcmgvs/V/Lfy7/6iOF9XRilu5aBDOBHoP1SOeIDghguzWw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/cache-common": "4.25.2",
"@algolia/logger-common": "4.25.2",
@@ -6989,35 +7035,15 @@
"license": "MIT"
},
"node_modules/@types/react": {
- "version": "19.1.8",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz",
- "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==",
+ "version": "18.3.25",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.25.tgz",
+ "integrity": "sha512-oSVZmGtDPmRZtVDqvdKUi/qgCsWp5IDY29wp8na8Bj4B3cc99hfNzvNhlMkVVxctkAOGUA3Km7MMpBHAnWfcIA==",
"license": "MIT",
"dependencies": {
+ "@types/prop-types": "*",
"csstype": "^3.0.2"
}
},
- "node_modules/@types/react-instantsearch-core": {
- "version": "6.26.10",
- "resolved": "https://registry.npmjs.org/@types/react-instantsearch-core/-/react-instantsearch-core-6.26.10.tgz",
- "integrity": "sha512-izn21BqXtO3GA5Tx3x7SP6kfk1GJppkVdowuenKIOUj1sCJ3VHwoggsqVWv1DYVcsS8wydjR8Ra91XtI2a12rw==",
- "license": "MIT",
- "dependencies": {
- "@types/react": "*",
- "algoliasearch": ">=4",
- "algoliasearch-helper": ">=3"
- }
- },
- "node_modules/@types/react-instantsearch-dom": {
- "version": "6.12.9",
- "resolved": "https://registry.npmjs.org/@types/react-instantsearch-dom/-/react-instantsearch-dom-6.12.9.tgz",
- "integrity": "sha512-OQ8kvnhwXcGznThPRgd5LCt7fj4BNar1dCs+MdHgrH67XN/jb97OA+wwtaQ04p9kJXFGDZASzWJjvdu2CkMPkA==",
- "license": "MIT",
- "dependencies": {
- "@types/react": "*",
- "@types/react-instantsearch-core": "<7"
- }
- },
"node_modules/@types/react-redux": {
"version": "7.1.34",
"resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.34.tgz",
@@ -7589,6 +7615,7 @@
"resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.25.2.tgz",
"integrity": "sha512-lYx98L6kb1VvXypbPI7Z54C4BJB2VT5QvOYthvPq6/POufZj+YdyeZSKjoLBKHJgGmYWQTHOKtcCTdKf98WOCA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/cache-browser-local-storage": "4.25.2",
"@algolia/cache-common": "4.25.2",
@@ -7624,6 +7651,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.25.2.tgz",
"integrity": "sha512-HXX8vbJPYW29P18GxciiwaDpQid6UhpPP9nW9WE181uGUgFhyP5zaEkYWf9oYBrjMubrGwXi5YEzJOz6Oa4faA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/requester-common": "4.25.2",
"@algolia/transporter": "4.25.2"
@@ -7634,6 +7662,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.25.2.tgz",
"integrity": "sha512-pO/LpVnQlbJpcHRk+AroWyyFnh01eOlO6/uLZRUmYvr/hpKZKxI6n7ufgTawbo0KrAu2CePfiOkStYOmDuRjzQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/client-common": "4.25.2",
"@algolia/requester-common": "4.25.2",
@@ -7645,6 +7674,7 @@
"resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.25.2.tgz",
"integrity": "sha512-aAjfsI0AjWgXLh/xr9eoR8/9HekBkIER3bxGoBf9d1XWMMoTo/q92Da2fewkxwLE6mla95QJ9suJGOtMOewXXQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/requester-common": "4.25.2"
}
@@ -7654,6 +7684,7 @@
"resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.25.2.tgz",
"integrity": "sha512-Ja/FYB7W9ZM+m8UrMIlawNUAKpncvb9Mo+D8Jq5WepGTUyQ9CBYLsjwxv9O8wbj3TSWqTInf4uUBJ2FKR8G7xw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/requester-common": "4.25.2"
}
@@ -7990,6 +8021,12 @@
"node": ">= 0.4"
}
},
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "license": "MIT"
+ },
"node_modules/at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
@@ -8052,6 +8089,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/axios": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz",
+ "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
+ "license": "MIT",
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.4",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
"node_modules/babel-loader": {
"version": "9.2.1",
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz",
@@ -8730,12 +8778,6 @@
"node": ">=8"
}
},
- "node_modules/classnames": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
- "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==",
- "license": "MIT"
- },
"node_modules/clean-css": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
@@ -8936,6 +8978,18 @@
"node": ">=10"
}
},
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/comma-separated-tokens": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
@@ -9979,6 +10033,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -11249,6 +11312,48 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/docusaurus-theme-search-typesense": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/docusaurus-theme-search-typesense/-/docusaurus-theme-search-typesense-0.25.0.tgz",
+ "integrity": "sha512-1+yJcQ+5faPZNKNH9wzk5ixrOhEeCY08Z/cPEBvv4W1AZMYK9jQnzHpFnUbVElRTbA4KrOpg6TD1ProLECuqrA==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "~3.8.0",
+ "@docusaurus/logger": "~3.8.0",
+ "@docusaurus/plugin-content-docs": "~3.8.0",
+ "@docusaurus/theme-common": "~3.8.0",
+ "@docusaurus/theme-translations": "~3.8.0",
+ "@docusaurus/utils": "~3.8.0",
+ "@docusaurus/utils-validation": "~3.8.0",
+ "algoliasearch-helper": "^3.13.3",
+ "clsx": "^2.0.0",
+ "eta": "^2.2.0",
+ "fs-extra": "^11.1.1",
+ "lodash": "^4.17.21",
+ "tslib": "^2.6.0",
+ "typesense-docsearch-react": "^3.4.1",
+ "typesense-instantsearch-adapter": "^2.9.0-5",
+ "utility-types": "^3.10.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@docusaurus/core": "~3.8.0",
+ "@docusaurus/theme-common": "~3.8.0",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/docusaurus-theme-search-typesense/node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/dom-converter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
@@ -11616,7 +11721,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -12877,6 +12981,22 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/form-data": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/form-data-encoder": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
@@ -13466,7 +13586,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
@@ -15724,6 +15843,19 @@
"integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
"license": "MIT"
},
+ "node_modules/loglevel": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz",
+ "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6.0"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/loglevel"
+ }
+ },
"node_modules/longest-streak": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
@@ -21557,6 +21689,12 @@
"node": ">= 0.10"
}
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "license": "MIT"
+ },
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
@@ -21839,54 +21977,6 @@
"react": "^16.8.0 || ^17 || ^18 || ^19"
}
},
- "node_modules/react-instantsearch-dom": {
- "version": "6.40.4",
- "resolved": "https://registry.npmjs.org/react-instantsearch-dom/-/react-instantsearch-dom-6.40.4.tgz",
- "integrity": "sha512-Oy8EKEOg/dfTE8tHc7GZRlzUdbZY4Mxas1x2OtvSNui+YAbIWafIf1g98iOGyVTB2qI5WH91YyUJTLPNfLrs6Q==",
- "deprecated": "package has moved to react-instantsearch",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.1.2",
- "algoliasearch-helper": "3.14.0",
- "classnames": "^2.2.5",
- "prop-types": "^15.6.2",
- "react-fast-compare": "^3.0.0",
- "react-instantsearch-core": "6.40.4"
- },
- "peerDependencies": {
- "algoliasearch": ">= 3.1 < 5",
- "react": ">= 16.3.0 < 19",
- "react-dom": ">= 16.3.0 < 19"
- }
- },
- "node_modules/react-instantsearch-dom/node_modules/algoliasearch-helper": {
- "version": "3.14.0",
- "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.14.0.tgz",
- "integrity": "sha512-gXDXzsSS0YANn5dHr71CUXOo84cN4azhHKUbg71vAWnH+1JBiR4jf7to3t3JHXknXkbV0F7f055vUSBKrltHLQ==",
- "license": "MIT",
- "dependencies": {
- "@algolia/events": "^4.0.1"
- },
- "peerDependencies": {
- "algoliasearch": ">= 3.1 < 6"
- }
- },
- "node_modules/react-instantsearch-dom/node_modules/react-instantsearch-core": {
- "version": "6.40.4",
- "resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-6.40.4.tgz",
- "integrity": "sha512-sEOgRU2MKL8edO85sNHvKlZ5yq9OFw++CDsEqYpHJvbWLE/2J2N49XAUY90kior09I2kBkbgowBbov+Py1AubQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.1.2",
- "algoliasearch-helper": "3.14.0",
- "prop-types": "^15.6.2",
- "react-fast-compare": "^3.0.0"
- },
- "peerDependencies": {
- "algoliasearch": ">= 3.1 < 5",
- "react": ">= 16.3.0 < 19"
- }
- },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -26210,6 +26300,90 @@
"node": ">=14.17"
}
},
+ "node_modules/typesense": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/typesense/-/typesense-1.8.2.tgz",
+ "integrity": "sha512-aBpePjA99Qvo+OP2pJwMpvga4Jrm1Y2oV5NsrWXBxlqUDNEUCPZBIksPv2Hq0jxQxHhLLyJVbjXjByXsvpCDVA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "axios": "^1.6.0",
+ "loglevel": "^1.8.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/runtime": "^7.23.2"
+ }
+ },
+ "node_modules/typesense-docsearch-css": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/typesense-docsearch-css/-/typesense-docsearch-css-0.4.1.tgz",
+ "integrity": "sha512-mN8K18pfIpCrhzsMAJBzoS7l/YDcC4P3f9vsScenUceXmC8n3FCPldmF10dKDJmK3Lr7aAScQt70jCA5126y2w==",
+ "license": "MIT"
+ },
+ "node_modules/typesense-docsearch-react": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/typesense-docsearch-react/-/typesense-docsearch-react-3.4.1.tgz",
+ "integrity": "sha512-d0PQym/B/p5oP+hfdFEOH6goiKa1JLR63bikZSDGq1+jT2FtuwNrdMGVBZZMNFUsXVsJRA8ULHJpsREmfSJmVw==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/autocomplete-core": "1.8.2",
+ "@algolia/autocomplete-preset-algolia": "1.8.2",
+ "typesense": "^1.7.2",
+ "typesense-docsearch-css": "^0.4.1",
+ "typesense-instantsearch-adapter": "^2.7.1"
+ },
+ "peerDependencies": {
+ "@types/react": ">= 16.8.0 < 19.0.0",
+ "react": ">= 16.8.0 < 19.0.0",
+ "react-dom": ">= 16.8.0 < 19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/typesense-instantsearch-adapter": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/typesense-instantsearch-adapter/-/typesense-instantsearch-adapter-2.9.0.tgz",
+ "integrity": "sha512-ZSgpi9T/S70Zs2eYIv0VmD0o4+VfBN9jz97Rhbf9Bj+gpUAbjmm46XAobEE2TGs2Wo04hpzCrXifXNJecalC/w==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "typesense": "^2.1.0-1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/runtime": "^7.24.1"
+ }
+ },
+ "node_modules/typesense-instantsearch-adapter/node_modules/typesense": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/typesense/-/typesense-2.1.0.tgz",
+ "integrity": "sha512-a/IRTL+dRXlpRDU4UodyGj8hl5xBz3nKihVRd/KfSFAfFPGcpdX6lxIgwdXy3O6VLNNiEsN8YwIsPHQPVT0vNw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "axios": "^1.8.4",
+ "loglevel": "^1.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@babel/runtime": "^7.23.2"
+ }
+ },
"node_modules/uc.micro": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
diff --git a/package.json b/package.json
index f1e6fed24..19aea5c17 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,6 @@
"markdownlint": "markdownlint-cli2 'platform-enterprise_versioned_docs/**/*.mdx' 'platform-cloud/docs/*.mdx' 'wave_docs/**/*.mdx' 'fusion_docs/**/*.mdx' --config .markdownlint-cli2.cjs"
},
"dependencies": {
- "@docsearch/react": "^3.9.0",
"@docusaurus/core": "^3.8.1",
"@docusaurus/faster": "^3.8.1",
"@docusaurus/mdx-loader": "^3.8.1",
@@ -32,11 +31,11 @@
"@mdx-js/react": "^3.0.0",
"@rspack/core": "^1.4.11",
"@tailwindcss/postcss": "^4.1.12",
- "@types/react-instantsearch-dom": "^6.12.3",
"clsx": "^1.2.1",
"docusaurus-plugin-openapi-docs": "^4.5.1",
"docusaurus-remark-plugin-tab-blocks": "^3.1.0",
"docusaurus-theme-openapi-docs": "^4.5.1",
+ "docusaurus-theme-search-typesense": "^0.25.0",
"framer-motion": "^11.0.0",
"image-size": "^2.0.2",
"mdi-react": "^9.4.0",
@@ -48,12 +47,10 @@
"react": "^18.2.0",
"react-cookie": "^7.2.2",
"react-dom": "^18.2.0",
- "react-instantsearch-dom": "^6.40.4",
"rehype-katex": "^7.0.1",
"remark-code-import": "^1.2.0",
"remark-deflist": "^1.0.0",
"remark-math": "^6.0.0",
- "remark-deflist": "^1.0.0",
"remark-yaml-to-table": "github:seqeralabs/remark-yaml-to-table",
"webpack-dev-server": "^5.2.2",
"yaml": "^2.8.1"
diff --git a/src/css/theme-colors.css b/src/css/theme-colors.css
index b5d92518a..4e24dec7c 100644
--- a/src/css/theme-colors.css
+++ b/src/css/theme-colors.css
@@ -79,7 +79,7 @@ html[data-theme="light"] .navbar__items--right a:hover {
html[data-theme="light"] .navbar__items--right button {
color: var(--ifm-font-color-base);
}
-html[data-theme="light"] .navbar__items--right button:not(.DocSearch):hover {
+html[data-theme="light"] .navbar__items--right button:hover {
background-color: var(--color-wave);
}
@@ -111,10 +111,6 @@ html[data-theme="light"]
}
/* Search modal */
-html[data-theme="light"] .DocSearch-Logo svg * {
- fill: var(--ifm-font-color-base);
- opacity: 0.6;
-}
/* Footer */
html[data-theme="light"] .footer--dark {
@@ -168,7 +164,7 @@ html[data-theme="dark"] .pagination-nav__link:hover {
html[data-theme="dark"] .navbar__items--right {
color: #F1F1F1;
}
-html[data-theme="dark"] .navbar__items--right button:not(.DocSearch):hover {
+html[data-theme="dark"] .navbar__items--right button:hover {
background-color: var(--color-wave);
}
diff --git a/src/theme/BlogSidebar/Desktop/index.js b/src/theme/BlogSidebar/Desktop/index.js
index c4cca6f91..92b40f483 100644
--- a/src/theme/BlogSidebar/Desktop/index.js
+++ b/src/theme/BlogSidebar/Desktop/index.js
@@ -7,7 +7,7 @@ import {
BlogSidebarItemList,
} from '@docusaurus/plugin-content-blog/client';
import BlogSidebarContent from '@theme/BlogSidebar/Content';
-import SearchBar from "@theme-original/SearchBar";
+// import SearchBar from "@theme-original/SearchBar";
import Link from '@docusaurus/Link';
import RssIcon from "./rss.svg";
@@ -55,7 +55,7 @@ function BlogSidebarDesktop({sidebar}) {
message: 'Blog recent posts navigation',
description: 'The ARIA label for recent posts in the blog sidebar',
})}>
-