From e46ad45504f841e88fcc6bb0357db71147f9b92b Mon Sep 17 00:00:00 2001 From: Justine Geffen Date: Wed, 1 Oct 2025 12:31:05 +0200 Subject: [PATCH 01/16] Typesense implementation --- docusaurus.config.js | 33 +++++- package-lock.json | 237 ++++++++++++++++++++++++++++++++++++++++++- package.json | 2 +- 3 files changed, 264 insertions(+), 8 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 58ffab641..9c21df3bf 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,32 @@ export default async function createConfigAsync() { themeConfig: { image: "img/share.jpg", + + // Typesense search configuration + typesense: { + typesenseCollectionName: 'seqera_docs', + + typesenseServerConfig: { + nodes: [{ + host: '9scwdgbn4v8r1lyfp.a1.typesense.net', + port: 443, + protocol: 'https', + }], + apiKey: 'cGtYFY0RUnLAnYk2TRk42RSM5N6zrD7a', + connectionTimeoutSeconds: 2, + }, + + typesenseSearchParameters: { + query_by: 'title,content,hierarchy_lvl0,hierarchy_lvl1,hierarchy_lvl2', + query_by_weights: '4,2,3,2,1', + num_typos: 2, + prefix: 'true,true,true,true,true', + }, + + contextualSearch: true, + placeholder: 'Search Seqera docs...', + }, + navbar: { logo: { alt: "Seqera", @@ -476,4 +505,4 @@ export default async function createConfigAsync() { }, ], }; -} +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index fadc54c68..25d7b768c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "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", @@ -67,6 +68,34 @@ "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", @@ -6989,11 +7018,12 @@ "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" } }, @@ -7990,6 +8020,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 +8088,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", @@ -8936,6 +8983,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 +10038,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 +11317,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 +11726,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 +12986,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 +13591,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 +15848,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 +21694,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", @@ -26210,6 +26353,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..3016093ac 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "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", @@ -53,7 +54,6 @@ "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" From c0e20aeedea011d9e080db245f6a4f159485dc56 Mon Sep 17 00:00:00 2001 From: Justine Geffen Date: Wed, 1 Oct 2025 17:26:44 +0200 Subject: [PATCH 02/16] Typesense integration --- docusaurus.config.js | 9 +- package-lock.json | 109 ++++++---------------- package.json | 3 - src/css/theme-colors.css | 8 +- src/theme/Navbar/Search/styles.module.css | 22 ----- 5 files changed, 35 insertions(+), 116 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 9c21df3bf..40076fbd5 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -298,6 +298,7 @@ export default async function createConfigAsync() { // Typesense search configuration typesense: { typesenseCollectionName: 'seqera_docs', + searchPagePath: '/search', typesenseServerConfig: { nodes: [{ @@ -305,15 +306,15 @@ export default async function createConfigAsync() { port: 443, protocol: 'https', }], - apiKey: 'cGtYFY0RUnLAnYk2TRk42RSM5N6zrD7a', + apiKey: 'UUIEzlGORRp9lV5GndPR1zYBVBCPIJOl', connectionTimeoutSeconds: 2, }, typesenseSearchParameters: { - query_by: 'title,content,hierarchy_lvl0,hierarchy_lvl1,hierarchy_lvl2', - query_by_weights: '4,2,3,2,1', + query_by: 'content,hierarchy_lvl0,hierarchy_lvl1,hierarchy_lvl2', + query_by_weights: '4,3,2,1', num_typos: 2, - prefix: 'true,true,true,true,true', + prefix: 'true,true,true,true', }, contextualSearch: true, diff --git a/package-lock.json b/package-lock.json index 25d7b768c..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,7 +17,6 @@ "@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", @@ -35,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", @@ -101,6 +98,7 @@ "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" } @@ -109,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" } @@ -140,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", @@ -151,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" @@ -161,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", @@ -172,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", @@ -184,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" @@ -194,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", @@ -229,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", @@ -240,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" @@ -300,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" } @@ -331,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", @@ -350,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" @@ -360,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", @@ -371,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" } @@ -380,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" } @@ -400,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", @@ -431,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", @@ -7027,27 +7044,6 @@ "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", @@ -7619,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", @@ -7654,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" @@ -7664,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", @@ -7675,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" } @@ -7684,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" } @@ -8777,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", @@ -21982,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", diff --git a/package.json b/package.json index 3016093ac..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,7 +31,6 @@ "@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", @@ -49,7 +47,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", 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/Navbar/Search/styles.module.css b/src/theme/Navbar/Search/styles.module.css index 7f6e48494..5baaf628c 100644 --- a/src/theme/Navbar/Search/styles.module.css +++ b/src/theme/Navbar/Search/styles.module.css @@ -27,20 +27,6 @@ See https://github.com/facebook/docusaurus/pull/9385 * Custom */ -:global(.DocSearch) { - & :global(.DocSearch-Button-Key) { - box-shadow: none; - top: 0; - background: var(--color-brand-500); - border: none; - color: rgba(255, 255, 255, 0.8); - padding-top: 2px; - &:first-child { - font-size: 15px; - } - } -} - /* Dark mode */ html[data-theme="dark"] { @@ -62,12 +48,4 @@ html[data-theme="dark"] { inset 0 1px 0 0 rgba(73, 76, 106, 0.5), 0 -4px 8px 0 rgba(0, 0, 0, 0.2); --docsearch-logo-color: #fff; --docsearch-muted-color: #7f8497; - & :global(.DocSearch) { - & :global(.DocSearch-Search-Icon) { - color: var(--color-brand-900); - } - & :global(.DocSearch-Button-Key) { - background: var(--color-brand-900); - } - } } From e3a94f5da2377ed71ee4588de3eacc2c3e8b4af0 Mon Sep 17 00:00:00 2001 From: mavi-sqr Date: Thu, 2 Oct 2025 10:20:23 +0200 Subject: [PATCH 03/16] Hidding old code that hides typesense searchbar --- src/theme/BlogSidebar/Desktop/index.js | 4 ++-- .../Layout/SeqeraHeader/HeaderDesktop/NavItems/index.jsx | 6 +++++- src/theme/Navbar/Search/styles.module.css | 8 +++++--- 3 files changed, 12 insertions(+), 6 deletions(-) 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', })}> - + {/* */}
{sidebar.title} diff --git a/src/theme/Navbar/Layout/SeqeraHeader/HeaderDesktop/NavItems/index.jsx b/src/theme/Navbar/Layout/SeqeraHeader/HeaderDesktop/NavItems/index.jsx index 56a3879a3..1d5a77f9e 100644 --- a/src/theme/Navbar/Layout/SeqeraHeader/HeaderDesktop/NavItems/index.jsx +++ b/src/theme/Navbar/Layout/SeqeraHeader/HeaderDesktop/NavItems/index.jsx @@ -9,7 +9,8 @@ import Hamburger from "./Hamburger"; import { useHeaderContext } from "../../context"; import ActiveLink from "./ActiveLink"; import NavbarLogo from '@theme/Navbar/Logo'; -import NavbarColorModeToggle from '@theme/Navbar/ColorModeToggle'; +import NavbarColorModeToggle from '@theme/Navbar/ColorModeToggle'; +import SearchBar from "@theme/SearchBar"; const NavItems = ({ isDark = false, hideMenu }) => { @@ -32,6 +33,9 @@ const NavItems = ({ isDark = false, hideMenu }) => { {!hideMenu && (