From a05951f6b7115badb7b4d7e1844344a1f07029b0 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Wed, 19 Oct 2022 18:00:28 +0330 Subject: [PATCH] plugins init commit --- .gitignore | 37 +- .husky/commit-msg | 2 - .husky/pre-commit | 1 - .idea/.gitignore | 5 - .../logos-documentation-website-template.iml | 12 - .idea/modules.xml | 8 - .idea/vcs.xml | 6 - .prettierignore | 11 +- README.md | 41 - babel.config.js | 3 - docs/blog.mdx | 9 - docs/how.md | 147 - docs/index.mdx | 70 - docs/student-program.md | 40 - docusaurus.config.js | 140 - lerna.json | 6 + package.json | 73 +- .../package.json | 33 + .../src/client/index.ts | 141 + .../src/deps.d.ts | 0 .../src/index.ts | 31 + .../tsconfig.client.json | 16 + .../tsconfig.json | 14 + packages/logos-docusaurus-theme/gulpfile.js | 114 + packages/logos-docusaurus-theme/package.json | 61 + .../src/client}/components/Button/Button.tsx | 0 .../components/Button/ButtonWithIcon.tsx | 0 .../client}/components/Button/LinkButton.tsx | 0 .../components/Button/LinkButtonWithIcon.tsx | 0 .../src/client}/components/Button/index.tsx | 0 .../components/Button/style.module.scss | 0 .../src/client}/components/Icon/Icon.tsx | 31 +- .../components/Icon/SocialmediaLink.tsx | 4 +- .../src/client}/components/Icon/index.tsx | 0 .../client}/components/Icon/style.module.scss | 0 .../IconButton/IconButton.module.scss | 0 .../components/IconButton/IconButton.tsx | 0 .../client}/components/IconButton/index.ts | 0 .../components/mdx/BlogPosts/BlogPosts.tsx | 5 +- .../components/mdx/BlogPosts/index.tsx | 0 .../mdx/BlogPosts/style.module.scss | 0 .../ExternalReferenceCard.tsx | 2 +- .../mdx/ExternalReferenceCard/index.tsx | 0 .../ExternalReferenceCard/style.module.scss | 0 .../mdx/FeatureCard/FeatureCard.tsx | 2 +- .../components/mdx/FeatureCard/index.tsx | 0 .../mdx/FeatureCard/style.module.scss | 0 .../mdx/FeatureList/FeatureList.tsx | 0 .../components/mdx/FeatureList/index.tsx | 0 .../mdx/FeatureList/style.module.scss | 0 .../src/client}/components/mdx/Hero/Hero.tsx | 2 +- .../src/client}/components/mdx/Hero/index.tsx | 0 .../components/mdx/Hero/style.module.scss | 0 .../client}/components/mdx/Quote/Quote.tsx | 0 .../client}/components/mdx/Quote/index.tsx | 0 .../components/mdx/Quote/style.module.scss | 0 .../components/mdx/TeamList/TeamList.tsx | 8 +- .../client}/components/mdx/TeamList/index.tsx | 0 .../components/mdx/TeamList/style.module.scss | 0 .../src/client/components/mdx/index.ts | 7 + .../containers/GlobalStore/GlobalStore.tsx | 2 +- .../client}/containers/GlobalStore/index.ts | 0 .../src/client}/css/_utils.scss | 0 .../src/client}/css/_vars.scss | 0 .../src/client}/css/custom.scss | 0 .../src/client}/lib/array.utils.ts | 0 .../src/client}/lib/settle.ts | 8 +- .../src/client}/lib/store/Hook.tsx | 0 .../src/client}/lib/store/index.ts | 0 .../src/client}/lib/store/store.tsx | 4 +- .../src/client}/lib/team.utils.ts | 0 .../src/client}/lib/useActiveVersionPath.ts | 2 +- .../src/client}/lib/useEventListener.ts | 0 .../src/client}/lib/useIsVersionIndexPage.tsx | 0 .../src/client}/lib/useOS.ts | 0 .../src/client}/lib/useWindowEventListener.ts | 2 +- .../static}/icons/arrow-left-circle.svg | 0 .../static}/icons/arrow-right-circle.svg | 0 .../src/client/static}/icons/chevron-left.svg | 0 .../src/client/static}/icons/cmd.svg | 0 .../client/static}/icons/dashicons_share.svg | 0 .../src/client/static}/icons/day.svg | 0 .../src/client/static}/icons/discord.svg | 0 .../src/client/static}/icons/discourse.svg | 0 .../src/client/static}/icons/document.svg | 0 .../src/client/static}/icons/dot.svg | 0 .../src/client/static}/icons/drop-down-1.svg | 0 .../src/client/static}/icons/drop-down.svg | 0 .../src/client/static}/icons/dropdown.svg | 0 .../src/client/static}/icons/esc.svg | 0 .../src/client/static}/icons/file.svg | 0 .../src/client/static}/icons/folder.svg | 0 .../src/client/static}/icons/github.svg | 0 .../src/client/static}/icons/gscholar.svg | 0 .../client/static}/icons/hamburger-menu.svg | 0 .../src/client/static}/icons/hashtag.svg | 0 .../src/client/static}/icons/home.svg | 0 .../src/client/static}/icons/k.svg | 0 .../src/client/static}/icons/light.svg | 0 .../src/client/static}/icons/linkedin.svg | 0 .../src/client/static}/icons/search.svg | 0 .../src/client/static}/icons/share.svg | 0 .../src/client/static}/icons/status.svg | 0 .../src/client/static}/icons/telegram.svg | 0 .../src/client/static}/icons/twitter.svg | 0 .../src/client/static}/icons/youtube.svg | 0 .../client}/theme/ColorModeToggle/index.tsx | 2 +- .../theme/ColorModeToggle/styles.module.css | 0 .../DocCategoryGeneratedIndexPage/index.tsx | 0 .../styles.module.css | 0 .../client}/theme/DocItem/Layout/index.tsx | 1 - .../theme/DocItem/Layout/styles.module.scss | 2 +- .../theme/DocPage/Layout/Main/index.tsx | 0 .../DocPage/Layout/Main/styles.module.scss | 2 +- .../theme/DocPage/Layout/Sidebar/index.tsx | 2 +- .../DocPage/Layout/Sidebar/styles.module.css | 0 .../client}/theme/DocPage/Layout/index.tsx | 2 +- .../theme/DocPage/Layout/styles.module.scss | 0 .../theme/DocSidebar/Desktop/index.tsx | 0 .../DocSidebar/Desktop/styles.module.css | 0 .../theme/DocSidebarItem/Category/index.tsx | 2 +- .../src/client}/theme/Footer/Layout/index.tsx | 45 +- .../theme/Footer/Layout/style.module.scss | 2 +- .../client}/theme/Icon/LightMode/index.tsx | 4 +- .../src/client}/theme/Layout/index.tsx | 6 +- .../src/client}/theme/Layout/styles.scss | 2 +- .../MobileSearch/MobileSearch.module.scss | 0 .../Content/MobileSearch/MobileSearch.tsx | 2 +- .../Navbar/Content/MobileSearch/index.ts | 0 .../theme/Navbar/Content/ShareButton.tsx | 8 +- .../client}/theme/Navbar/Content/index.tsx | 16 +- .../theme/Navbar/Content/styles.module.scss | 2 +- .../Navbar/MobileSidebar/Header/index.tsx | 2 +- .../MobileSidebar/SecondaryMenu/index.tsx | 6 +- .../SecondaryMenu/styles.module.scss | 0 .../src/client}/theme/Navbar/index.scss | 15 +- .../src/client}/theme/Navbar/index.tsx | 2 +- .../theme/NavbarItem/DropdownNavbarItem.scss | 0 .../theme/NavbarItem/DropdownNavbarItem.tsx | 2 +- .../LocaleDropdownNavbarItem/index.tsx | 0 .../styles.module.css | 0 .../theme/SearchBar/SearchBar.module.scss | 2 +- .../src/client}/theme/SearchBar/SearchBar.tsx | 2 +- .../SearchInput/SearchInput.module.scss | 2 +- .../SearchBar/SearchInput/SearchInput.tsx | 14 +- .../theme/SearchBar/SearchInput/index.ts | 0 .../SearchResultGroup.module.scss | 0 .../SearchResultGroup/SearchResultGroup.tsx | 0 .../SearchBar/SearchResultGroup/index.ts | 0 .../SearchResultItem.module.scss | 0 .../SearchResultItem/SearchResultItem.tsx | 4 +- .../theme/SearchBar/SearchResultItem/index.ts | 0 .../SearchResultItemBase.module.scss | 0 .../SearchResultItemBase.tsx | 0 .../SearchBar/SearchResultItemBase/index.ts | 0 .../SearchResults/SearchResults.module.scss | 0 .../SearchBar/SearchResults/SearchResults.tsx | 0 .../theme/SearchBar/SearchResults/index.ts | 0 .../SearchResultsContainer.module.scss | 2 +- .../SearchResultsContainer.tsx | 6 +- .../SearchBar/SearchResultsContainer/index.ts | 0 .../hooks/useProxiedGeneratedData.ts | 0 .../theme/SearchBar/hooks/useSearch.ts | 2 +- .../theme/SearchBar/hooks/useVersionUrl.ts | 0 .../src/client}/theme/SearchBar/index.tsx | 0 .../src/client}/theme/SearchBar/types.ts | 0 .../SearchBar/utils/groupSearchResult.ts | 14 +- .../TOCCollapsible/CollapseButton/index.tsx | 2 +- .../CollapseButton/styles.module.scss | 0 .../client}/theme/TOCCollapsible/index.tsx | 0 .../theme/TOCCollapsible/styles.module.css | 0 .../src/client}/types/team.ts | 0 .../src/client}/types/ui.types.ts | 0 .../logos-docusaurus-theme/src/deps.d.ts | 0 packages/logos-docusaurus-theme/src/index.ts | 31 + .../logos-docusaurus-theme/src/theme.d.ts | 0 .../tsconfig.client.json | 27 + packages/logos-docusaurus-theme/tsconfig.json | 14 + sidebars.js | 33 - src/deps.ts | 7 - src/pages/markdown-page.md | 7 - static/data/team.json | 1489 ---- static/docs/codex-whitepaper.pdf | Bin 336692 -> 0 bytes static/img/codex-preview-image.png | Bin 12341 -> 0 bytes static/img/favicon.ico | Bin 15406 -> 0 bytes static/img/logo.svg | 10 - tsconfig.json | 63 +- yarn.lock | 7242 ++++++++++++++--- 188 files changed, 6754 insertions(+), 3446 deletions(-) delete mode 100755 .husky/commit-msg delete mode 100644 .idea/.gitignore delete mode 100644 .idea/logos-documentation-website-template.iml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml delete mode 100644 README.md delete mode 100644 babel.config.js delete mode 100644 docs/blog.mdx delete mode 100644 docs/how.md delete mode 100644 docs/index.mdx delete mode 100644 docs/student-program.md delete mode 100644 docusaurus.config.js create mode 100644 lerna.json create mode 100644 packages/logos-docusaurus-search-local/package.json create mode 100644 packages/logos-docusaurus-search-local/src/client/index.ts rename src/lib/git.utils.ts => packages/logos-docusaurus-search-local/src/deps.d.ts (100%) create mode 100644 packages/logos-docusaurus-search-local/src/index.ts create mode 100644 packages/logos-docusaurus-search-local/tsconfig.client.json create mode 100644 packages/logos-docusaurus-search-local/tsconfig.json create mode 100644 packages/logos-docusaurus-theme/gulpfile.js create mode 100644 packages/logos-docusaurus-theme/package.json rename {src => packages/logos-docusaurus-theme/src/client}/components/Button/Button.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/Button/ButtonWithIcon.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/Button/LinkButton.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/Button/LinkButtonWithIcon.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/Button/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/Button/style.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/Icon/Icon.tsx (75%) rename {src => packages/logos-docusaurus-theme/src/client}/components/Icon/SocialmediaLink.tsx (95%) rename {src => packages/logos-docusaurus-theme/src/client}/components/Icon/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/Icon/style.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/IconButton/IconButton.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/IconButton/IconButton.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/IconButton/index.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/BlogPosts/BlogPosts.tsx (95%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/BlogPosts/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/BlogPosts/style.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/ExternalReferenceCard/ExternalReferenceCard.tsx (97%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/ExternalReferenceCard/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/ExternalReferenceCard/style.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/FeatureCard/FeatureCard.tsx (97%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/FeatureCard/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/FeatureCard/style.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/FeatureList/FeatureList.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/FeatureList/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/FeatureList/style.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/Hero/Hero.tsx (95%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/Hero/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/Hero/style.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/Quote/Quote.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/Quote/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/Quote/style.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/TeamList/TeamList.tsx (91%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/TeamList/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/components/mdx/TeamList/style.module.scss (100%) create mode 100644 packages/logos-docusaurus-theme/src/client/components/mdx/index.ts rename {src => packages/logos-docusaurus-theme/src/client}/containers/GlobalStore/GlobalStore.tsx (92%) rename {src => packages/logos-docusaurus-theme/src/client}/containers/GlobalStore/index.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/css/_utils.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/css/_vars.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/css/custom.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/lib/array.utils.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/lib/settle.ts (65%) rename {src => packages/logos-docusaurus-theme/src/client}/lib/store/Hook.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/lib/store/index.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/lib/store/store.tsx (97%) rename {src => packages/logos-docusaurus-theme/src/client}/lib/team.utils.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/lib/useActiveVersionPath.ts (89%) rename {src => packages/logos-docusaurus-theme/src/client}/lib/useEventListener.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/lib/useIsVersionIndexPage.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/lib/useOS.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/lib/useWindowEventListener.ts (87%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/arrow-left-circle.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/arrow-right-circle.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/chevron-left.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/cmd.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/dashicons_share.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/day.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/discord.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/discourse.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/document.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/dot.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/drop-down-1.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/drop-down.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/dropdown.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/esc.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/file.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/folder.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/github.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/gscholar.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/hamburger-menu.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/hashtag.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/home.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/k.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/light.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/linkedin.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/search.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/share.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/status.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/telegram.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/twitter.svg (100%) rename {static => packages/logos-docusaurus-theme/src/client/static}/icons/youtube.svg (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/ColorModeToggle/index.tsx (96%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/ColorModeToggle/styles.module.css (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocCategoryGeneratedIndexPage/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocCategoryGeneratedIndexPage/styles.module.css (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocItem/Layout/index.tsx (97%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocItem/Layout/styles.module.scss (96%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocPage/Layout/Main/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocPage/Layout/Main/styles.module.scss (95%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocPage/Layout/Sidebar/index.tsx (96%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocPage/Layout/Sidebar/styles.module.css (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocPage/Layout/index.tsx (96%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocPage/Layout/styles.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocSidebar/Desktop/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocSidebar/Desktop/styles.module.css (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/DocSidebarItem/Category/index.tsx (99%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Footer/Layout/index.tsx (60%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Footer/Layout/style.module.scss (98%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Icon/LightMode/index.tsx (78%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Layout/index.tsx (58%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Layout/styles.scss (95%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Navbar/Content/MobileSearch/MobileSearch.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Navbar/Content/MobileSearch/MobileSearch.tsx (92%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Navbar/Content/MobileSearch/index.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Navbar/Content/ShareButton.tsx (80%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Navbar/Content/index.tsx (89%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Navbar/Content/styles.module.scss (99%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Navbar/MobileSidebar/Header/index.tsx (92%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx (90%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Navbar/MobileSidebar/SecondaryMenu/styles.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Navbar/index.scss (89%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/Navbar/index.tsx (92%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/NavbarItem/DropdownNavbarItem.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/NavbarItem/DropdownNavbarItem.tsx (98%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchBar.module.scss (80%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchBar.tsx (97%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchInput/SearchInput.module.scss (97%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchInput/SearchInput.tsx (83%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchInput/index.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultGroup/SearchResultGroup.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultGroup/SearchResultGroup.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultGroup/index.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultItem/SearchResultItem.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultItem/SearchResultItem.tsx (91%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultItem/index.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultItemBase/SearchResultItemBase.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultItemBase/SearchResultItemBase.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultItemBase/index.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResults/SearchResults.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResults/SearchResults.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResults/index.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultsContainer/SearchResultsContainer.module.scss (93%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultsContainer/SearchResultsContainer.tsx (81%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/SearchResultsContainer/index.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/hooks/useProxiedGeneratedData.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/hooks/useSearch.ts (94%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/hooks/useVersionUrl.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/types.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/SearchBar/utils/groupSearchResult.ts (85%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/TOCCollapsible/CollapseButton/index.tsx (92%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/TOCCollapsible/CollapseButton/styles.module.scss (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/TOCCollapsible/index.tsx (100%) rename {src => packages/logos-docusaurus-theme/src/client}/theme/TOCCollapsible/styles.module.css (100%) rename {src => packages/logos-docusaurus-theme/src/client}/types/team.ts (100%) rename {src => packages/logos-docusaurus-theme/src/client}/types/ui.types.ts (100%) rename src/index.d.ts => packages/logos-docusaurus-theme/src/deps.d.ts (100%) create mode 100644 packages/logos-docusaurus-theme/src/index.ts rename static/.nojekyll => packages/logos-docusaurus-theme/src/theme.d.ts (100%) create mode 100644 packages/logos-docusaurus-theme/tsconfig.client.json create mode 100644 packages/logos-docusaurus-theme/tsconfig.json delete mode 100644 sidebars.js delete mode 100644 src/deps.ts delete mode 100644 src/pages/markdown-page.md delete mode 100644 static/data/team.json delete mode 100644 static/docs/codex-whitepaper.pdf delete mode 100644 static/img/codex-preview-image.png delete mode 100644 static/img/favicon.ico delete mode 100644 static/img/logo.svg diff --git a/.gitignore b/.gitignore index e8af2f5..1d1087e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,26 +1,23 @@ -# Dependencies -/node_modules +.DS_Store +.vscode/* +!.vscode/extensions.json +.idea +*.iml +*.code-workspace +.changelog +.history -# Production -/build +node_modules +.yarn -# Generated files +.eslintcache + +yarn-error.log +build +coverage .docusaurus .cache-loader -# Misc -.DS_Store -.env -.env.local -.env.development.local -.env.test.local -.env.production.local +packages/logos-*/lib/* -npm-debug.log* -yarn-debug.log* -yarn-error.log* -.yalc -yalc.lock -.idea - -static/search-index.json +lerna-debug.log diff --git a/.husky/commit-msg b/.husky/commit-msg deleted file mode 100755 index 1525982..0000000 --- a/.husky/commit-msg +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" diff --git a/.husky/pre-commit b/.husky/pre-commit index 3ca856c..4481088 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -2,4 +2,3 @@ . "$(dirname -- "$0")/_/husky.sh" yarn prettier:staged -yarn typecheck diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index b58b603..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/.idea/logos-documentation-website-template.iml b/.idea/logos-documentation-website-template.iml deleted file mode 100644 index 0c8867d..0000000 --- a/.idea/logos-documentation-website-template.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 0b3cc62..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 1231afc..5910cf7 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,9 @@ -*.mdx -*.md +dist +node_modules +.yarn +build +coverage +.docusaurus +__fixtures__ + +packages/logos-*/lib/* diff --git a/README.md b/README.md deleted file mode 100644 index aaba2fa..0000000 --- a/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Website - -This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. - -### Installation - -``` -$ yarn -``` - -### Local Development - -``` -$ yarn start -``` - -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. - -### Build - -``` -$ yarn build -``` - -This command generates static content into the `build` directory and can be served using any static contents hosting service. - -### Deployment - -Using SSH: - -``` -$ USE_SSH=true yarn deploy -``` - -Not using SSH: - -``` -$ GIT_USER= yarn deploy -``` - -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index bfd75db..0000000 --- a/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [require.resolve("@docusaurus/core/lib/babel/preset")], -}; diff --git a/docs/blog.mdx b/docs/blog.mdx deleted file mode 100644 index b5252f7..0000000 --- a/docs/blog.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 4 -title: Blog -description: Codex is building a Decentralized Durability Storage Engine ---- -import {BlogPosts} from '@site/src/components/mdx/BlogPosts'; - -# Blog Posts - diff --git a/docs/how.md b/docs/how.md deleted file mode 100644 index 37e8789..0000000 --- a/docs/how.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -sidebar_position: 2 -description: Codex is building a Decentralized Durability Storage Engine ---- -# How to use Codex - -> The Codex project aims to create a decentralized durability engine that allows persisting data in p2p networks. In other words, it allows storing files and data with predictable durability guarantees for later retrieval. - -> WARNING: This project is under active development and is considered pre-alpha. - -[![License: Apache](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) -[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) -[![Stability: experimental](https://img.shields.io/badge/stability-experimental-orange.svg)](#stability) -[![CI](https://github.com/status-im/nim-codex/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/status-im/nim-codex/actions?query=workflow%3ACI+branch%3Amain) -[![Codecov](https://codecov.io/gh/status-im/nim-codex/branch/main/graph/badge.svg?token=XFmCyPSNzW)](https://codecov.io/gh/status-im/nim-codex) -[![Discord](https://img.shields.io/discord/895609329053474826)](https://discord.gg/CaJTh24ddQ) - -## Build and Run - -For detailed instructions on preparing to build nim-codex see [*Building Codex*](BUILDING.md). - -To build the project, clone it and run: - -```bash -make update && make exec -``` - -The executable will be placed under the `build` directory under the project root. - -Run the client with: - -```bash -build/codex -``` - -### CLI Options - -``` -build/codex --help -Usage: - -codex [OPTIONS]... command - -The following options are available: - - --log-level Sets the log level [=LogLevel.INFO]. - --metrics Enable the metrics server [=false]. - --metrics-address Listening address of the metrics server [=127.0.0.1]. - --metrics-port Listening HTTP port of the metrics server [=8008]. - -d, --data-dir The directory where codex will store configuration and data.. - -l, --listen-port Specifies one or more listening ports for the node to listen on. [=0]. - -i, --listen-ip The public IP [=0.0.0.0]. - --udp-port Specify the discovery (UDP) port [=8090]. - --net-privkey Source of network (secp256k1) private key file (random|) [=random]. - -b, --bootstrap-node Specifies one or more bootstrap nodes to use when connecting to the network.. - --max-peers The maximum number of peers to connect to [=160]. - --agent-string Node agent string which is used as identifier in network [=Codex]. - -p, --api-port The REST Api port [=8080]. - -c, --cache-size The size in MiB of the block cache, 0 disables the cache [=100]. - --persistence Enables persistence mechanism, requires an Ethereum node [=false]. - --eth-provider The URL of the JSON-RPC API of the Ethereum node [=ws://localhost:8545]. - --eth-account The Ethereum account that is used for storage contracts [=EthAddress.none]. - --eth-deployment The json file describing the contract deployment [=string.none]. - -Available sub-commands: - -codex initNode -``` - -### Example: running two Codex clients - -```bash -build/codex --data-dir="$(pwd)/Codex1" -i=127.0.0.1 -``` - -This will start codex with a data directory pointing to `Codex1` under the current execution directory and announce itself on the DHT under `127.0.0.1`. - -To run a second client that automatically discovers nodes on the network, we need to get the Signed Peer Record (SPR) of first client, Client1. We can do this by querying the `/info` endpoint of the node's REST API. - -`curl http://127.0.0.1:8080/api/codex/v1/info` - -This should output information about Client1, including its PeerID, TCP/UDP addresses, data directory, and SPR: - -```json -{ - "id": "16Uiu2HAm92LGXYTuhtLaZzkFnsCx6FFJsNmswK6o9oPXFbSKHQEa", - "addrs": [ - "/ip4/0.0.0.0/udp/8090", - "/ip4/0.0.0.0/tcp/49336" - ], - "repo": "/repos/status-im/nim-codex/Codex1", - "spr": "spr:CiUIAhIhAmqg5fVU2yxPStLdUOWgwrkWZMHW2MHf6i6l8IjA4tssEgIDARpICicAJQgCEiECaqDl9VTbLE9K0t1Q5aDCuRZkwdbYwd_qLqXwiMDi2ywQ5v2VlAYaCwoJBH8AAAGRAh-aGgoKCAR_AAABBts3KkcwRQIhAPOKl38CviplVbMVnA_9q3N1K_nk5oGuNp7DWeOqiJzzAiATQ2acPyQvPxLU9YS-TiVo4RUXndRcwMFMX2Yjhw8k3A" -} -``` - -Now, let's start a second client, Client2. Because we're already using the default ports TCP (:8080) and UDP (:8090) for the first client, we have to specify new ports to avoid a collision. Additionally, we can specify the SPR from Client1 as the bootstrap node for discovery purposes, allowing Client2 to determine where content is located in the network. - -```bash -build/codex --data-dir="$(pwd)/Codex2" -i=127.0.0.1 --api-port=8081 --udp-port=8091 --bootstrap-node=spr:CiUIAhIhAmqg5fVU2yxPStLdUOWgwrkWZMHW2MHf6i6l8IjA4tssEgIDARpICicAJQgCEiECaqDl9VTbLE9K0t1Q5aDCuRZkwdbYwd_qLqXwiMDi2ywQ5v2VlAYaCwoJBH8AAAGRAh-aGgoKCAR_AAABBts3KkcwRQIhAPOKl38CviplVbMVnA_9q3N1K_nk5oGuNp7DWeOqiJzzAiATQ2acPyQvPxLU9YS-TiVo4RUXndRcwMFMX2Yjhw8k3A -``` - -There are now two clients running. We could upload a file to Client1 and download that file (given its CID) using Client2, by using the clients' REST API. - -## Interacting with the client - -The client exposes a REST API that can be used to interact with the clients. These commands could be invoked with any HTTP client, however the following endpoints assume the use of the `curl` command. - -### `/api/codex/v1/connect/{peerId}` - -Connect to a peer identified by its peer id. Takes an optional `addrs` parameter with a list of valid [multiaddresses](https://multiformats.io/multiaddr/). If `addrs` is absent, the peer will be discovered over the DHT. - -Example: - -```bash -curl "127.0.0.1:8080/api/codex/v1/connect/?addrs=" -``` - -### `/api/codex/v1/download/{id}` - -Download data identified by a `Cid`. - -Example: - -```bash - curl -vvv "127.0.0.1:8080/api/codex/v1/download/" --output - ``` - -### `/api/codex/v1/upload` - -Upload a file, upon success returns the `Cid` of the uploaded file. - -Example: - -```bash -curl -vvv -H "content-type: application/octet-stream" -H Expect: -T "" "127.0.0.1:8080/api/codex/v1/upload" -X POST -``` - -### `/api/codex/v1/info` - -Get useful node info such as its peer id, address and SPR. - -Example: - -```bash -curl -vvv "127.0.0.1:8080/api/codex/v1/info" -``` - diff --git a/docs/index.mdx b/docs/index.mdx deleted file mode 100644 index e5a0704..0000000 --- a/docs/index.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -sidebar_position: 1 -title: Home -description: Codex is building a Decentralized Durability Storage Engine ---- - -import {Hero} from '@site/src/components/mdx/Hero'; -import {FeatureList} from '@site/src/components/mdx/FeatureList'; -import {FeatureCard} from '@site/src/components/mdx/FeatureCard'; -import {Quote} from '@site/src/components/mdx/Quote'; -import {ExternalReferenceCard} from '@site/src/components/mdx/ExternalReferenceCard'; -import {TeamList} from '@site/src/components/mdx/TeamList'; -import {BlogPosts} from '@site/src/components/mdx/BlogPosts'; - - - -## What is Codex? - -
    -
  • Codex is aiming to solve the fundamental issues of data durability in decentralized systems.
  • -
  • Codex is a research group working in all areas of decentralized storage.
  • -
  • Codex is a decentralized storage protocol for durable information.
  • -
-
- -## Features - - - - - - - -## Blog Posts - - -## Resources - - Read our white-paper to know more about Codex. - - - Play with the first version of Codex. - - - Checkout our research models and track our progress. - - -## The Codex Team - diff --git a/docs/student-program.md b/docs/student-program.md deleted file mode 100644 index 45d2d18..0000000 --- a/docs/student-program.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -description: Codex is building a Decentralized Durability Storage Engine ---- - -# Codex Students Program - -## About Status - -Status is an organization building the tools and infrastructure for the advancement of a secure, private, and open web3. We have been completely distributed since inception. Our team is currently 100+ core contributors strong and welcomes a growing number of community members from all walks of life, scattered all around the globe. We care deeply about open source, and our organizational structure has a minimal hierarchy and no fixed work hours. We believe in working with a high degree of autonomy while supporting the organization's priorities. - -## About Codex - -The Codex team is working on a next-generation storage engine that attempts to “untie the knot” of incentivized storage. We’re building Codex to be a reliable and predictable p2p storage infrastructure that will allow for many business and casual use cases. We rely on strong data possession (PoR and PDP) and incentive schemes to guarantee long-term persistence and data availability. Check some of our current research here: https://github.com/status-im/codex-research - -## Students Program - -This program is available to undergraduate and graduate students officially enrolled in a university, pursuing their B.Sc. or M.Sc. in the field of Computer Sciences or a related domain. The duration of the program could be between 3 and 6 months. - -## Bonus if you have - -* Distributed system -* Storage and I/O -* P2P networking -* Analytical modeling -* Scalable simulations -* Data analytics -* Parallel programming -* Stress testing -* Continuous integration -* Technical writing - -The Codex Student Program aims to do research and development in, but not limited to: - -* P2P and distributed computing scheme: leader election, consensus algorithms -* Proofs of (non-)inclusion, retrievability proofs, availability proofs, fraud proofs -* Game theory, incentivization, tokenomics -* Decentralized storage systems, erasure coding, and storage related proofs -* Storage performance measurement and testing - -> The above is not a requirement we’d still love to hear from you anyway if you think you’d be a great fit for this role! diff --git a/docusaurus.config.js b/docusaurus.config.js deleted file mode 100644 index eddeba7..0000000 --- a/docusaurus.config.js +++ /dev/null @@ -1,140 +0,0 @@ -// @ts-check -// Note: type annotations allow type checking and IDEs autocompletion -require('dotenv').config() - -const lightCodeTheme = require('prism-react-renderer/themes/github') -const darkCodeTheme = require('prism-react-renderer/themes/dracula') - -/** @type {import('@docusaurus/types').Config} */ -const config = { - title: 'Codex', - tagline: 'Codex is building a Decentralized Durability Engine Engine', - url: 'https://codex.storage', - baseUrl: '/', - onBrokenLinks: 'warn', - onBrokenMarkdownLinks: 'warn', - favicon: 'img/favicon.ico', - - customFields: { - ghostAPiKey: process.env.GHOST_API_KEY, - }, - - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: 'status-im', // Usually your GitHub org/user name. - projectName: 'codex-nim', // Usually your repo name. - - // Even if you don't use internalization, you can use this field to set useful - // metadata like html lang. For example, if your site is Chinese, you may want - // to replace "en" with "zh-Hans". - i18n: { - defaultLocale: 'en', - locales: ['en'], - }, - - presets: [ - [ - 'classic', - /** @type {import('@docusaurus/preset-classic').Options} */ - ({ - docs: { - routeBasePath: '/', - sidebarPath: require.resolve('./sidebars.js'), - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - // editUrl: '', - }, - // blog: { - // showReadingTime: true, - // // Please change this to your repo. - // // Remove this to remove the "edit this page" links. - // editUrl: - // 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/', - // }, - theme: { - customCss: require.resolve('./src/css/custom.scss'), - }, - }), - ], - ], - - themeConfig: - /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ - ({ - docs: { sidebar: { hideable: true } }, - metadata: [ - { name: 'keywords', content: 'codex, storage' }, - { - name: 'description', - content: - 'Codex is building a Decentralized Durability Storage Engine', - }, - { name: 'image', content: 'img/codex-preview-image.png' }, - ], - colorMode: { - disableSwitch: true, - }, - navbar: { - title: '', - logo: { - alt: 'Codex', - src: 'img/logo.svg', - height: 26, - width: 24, - }, - items: [ - { - to: 'blog', - label: 'Blog', - }, - { - type: 'localeDropdown', - position: 'right', - }, - ], - }, - footer: { - logo: { - alt: 'Codex', - src: 'img/logo.svg', - href: '/', - width: 22, - }, - links: [ - { - title: 'Community', - items: [ - { - label: 'Discord', - href: '4qdQN5JaWW', - }, - { - label: 'Twitter', - href: 'codexstorage', - }, - ], - }, - ], - copyright: `Codex, ${new Date().getFullYear()}`, - }, - prism: { - theme: lightCodeTheme, - darkTheme: darkCodeTheme, - }, - }), - plugins: [ - 'docusaurus-plugin-sass', - [ - '@acid-info/docusaurus-search-local', - { - hashed: true, - indexDocs: true, - indexBlog: false, - indexPages: true, - docsRouteBasePath: '/', - }, - ], - ], -} - -module.exports = config diff --git a/lerna.json b/lerna.json new file mode 100644 index 0000000..96bd167 --- /dev/null +++ b/lerna.json @@ -0,0 +1,6 @@ +{ + "version": "0.0.0", + "npmClient": "yarn", + "useWorkspaces": true, + "$schema": "node_modules/lerna/schemas/lerna-schema.json" +} diff --git a/package.json b/package.json index 0a3d010..e456166 100644 --- a/package.json +++ b/package.json @@ -1,61 +1,42 @@ { - "name": "logos-documentation-website-template", + "name": "root", "version": "0.0.0", + "license": "MIT", "private": true, + "workspaces": [ + "packages/*" + ], "scripts": { - "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", - "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "clear": "docusaurus clear", - "serve": "docusaurus serve", - "write-translations": "docusaurus write-translations", - "write-heading-ids": "docusaurus write-heading-ids", - "typecheck": "tsc", + "bootstrap": "lerna bootstrap", + "build": "lerna run build", + "watch": "lerna run watch", "prepare": "husky install", "prettier": "pretty-quick", "prettier:staged": "pretty-quick --staged" }, - "dependencies": { - "@acid-info/docusaurus-search-local": "^0.32.1", - "@docusaurus/core": "2.1.0", - "@docusaurus/preset-classic": "2.1.0", - "@mdx-js/react": "^1.6.22", - "@tryghost/content-api": "^1.11.4", - "clsx": "^1.2.1", - "copy-to-clipboard": "^3.3.2", - "dotenv": "^16.0.3", - "lodash": "^4.17.21", - "prism-react-renderer": "^1.3.5", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "react-use": "^17.4.0" - }, "devDependencies": { - "@docusaurus/module-type-aliases": "2.1.0", - "@tsconfig/docusaurus": "^1.0.5", - "@types/lodash": "^4.14.186", - "docusaurus-plugin-sass": "^0.2.2", + "@types/node": "^18.0.3", + "@types/react": "^18.0.15", + "cross-env": "^7.0.3", + "gulp": "^4.0.2", + "gulp-cli": "^2.3.0", + "gulp-replace": "^1.1.3", + "gulp-sass": "^5.1.0", + "gulp-sourcemaps": "^3.0.0", + "gulp-typescript": "^6.0.0-alpha.1", "husky": "^8.0.1", + "lerna": "^6.0.1", + "merge2": "^1.4.1", "prettier": "^2.7.1", "pretty-quick": "^3.1.3", - "sass": "^1.55.0", - "typescript": "^4.7.4" + "react": "^17.0.2", + "react-dom": "^17.0.2", + "rimraf": "^3.0.2", + "typescript": "~4.7.4", + "typescript-transform-paths": "^3.3.1" }, - "browserslist": { - "production": [ - ">0.5%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "engines": { - "node": ">=16.14" + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" } } diff --git a/packages/logos-docusaurus-search-local/package.json b/packages/logos-docusaurus-search-local/package.json new file mode 100644 index 0000000..6c18d08 --- /dev/null +++ b/packages/logos-docusaurus-search-local/package.json @@ -0,0 +1,33 @@ +{ + "name": "@acid-info/logos-docusaurus-search-local", + "version": "0.1.0", + "description": "Docusaurus local search plugin", + "main": "lib/index.js", + "types": "src/theme.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/acid-info/logos-docusaurus-plugins.git", + "directory": "packages/docusaurus-search-local" + }, + "license": "MIT", + "scripts": { + "build": "tsc --build", + "watch": "tsc --build --watch" + }, + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/module-type-aliases": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-common": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "@easyops-cn/docusaurus-search-local": "^0.33.2", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=16.14" + }, + "devDependencies": { + "@types/lodash": "^4.14.186" + } +} diff --git a/packages/logos-docusaurus-search-local/src/client/index.ts b/packages/logos-docusaurus-search-local/src/client/index.ts new file mode 100644 index 0000000..0abaa91 --- /dev/null +++ b/packages/logos-docusaurus-search-local/src/client/index.ts @@ -0,0 +1,141 @@ +import { + SearchDocument, + SearchDocumentType, + SearchResult, + // @ts-ignore +} from '@easyops-cn/docusaurus-search-local/dist/client/shared/interfaces' +// @ts-ignore +import { fetchIndexes } from '@easyops-cn/docusaurus-search-local/dist/client/client/theme/SearchBar/fetchIndexes' +// @ts-ignore +import { getStemmedPositions } from '@easyops-cn/docusaurus-search-local/dist/client/client/utils/getStemmedPositions' +// @ts-ignore +import { highlightStemmed } from '@easyops-cn/docusaurus-search-local/dist/client/client/utils/highlightStemmed' +// @ts-ignore +import { SearchSourceFactory } from '@easyops-cn/docusaurus-search-local/dist/client/client/utils/SearchSourceFactory' +// @ts-ignore +import * as proxied from '@easyops-cn/docusaurus-search-local/dist/client/client/utils/proxiedGenerated' + +const loadIndex = async (params: { versionUrl: string }) => { + const { wrappedIndexes, zhDictionary } = await fetchIndexes(params.versionUrl) + + return { wrappedIndexes, zhDictionary } +} + +class Search { + public baseUrl: string + public loading = false + + public source: + | ((input: string, callback: (result: SearchResult[]) => void) => void) + | null = null + + constructor(private config: SearchConfig) { + this.baseUrl = config.preferredVersionPath + } + + init = async () => { + this.loading = true + + const { wrappedIndexes, zhDictionary } = await loadIndex({ + versionUrl: this.baseUrl, + }) + + this.source = SearchSourceFactory( + wrappedIndexes, + zhDictionary, + this.config.resultsLimit, + ) + } + + query = async (input: string) => { + if (!this.source) throw new Error('Not initialized') + + const { promise, callback } = createPromise() + + this.source && this.source(input, callback) + + return { + results: (await promise).map((result) => this.formatResult(result)), + } + } + + formatResult = (result: SearchResult) => { + return { + ...result, + type: this.resultTypeToString(result.type), + page: result.page ? this.formatDocument(result.page) : null, + document: result.document ? this.formatDocument(result.document) : null, + highlighted: highlightStemmed( + result.document.t, + getStemmedPositions(result.metadata, 't'), + result.tokens, + ), + } + } + + resultTypeToString = (type: SearchDocumentType) => + ({ 0: ResultType.Title, 1: ResultType.Heading, 2: ResultType.Paragraph }[ + type as number + ]) + + formatDocument = (doc: SearchDocument) => { + return { + id: doc.i, + title: doc.t, + url: doc.u, + hash: doc.h, + parentId: doc.p, + breadcrumb: doc.b, + sectionTitle: doc.s, + } + } +} + +export enum ResultType { + Title = 'title', + Heading = 'heading', + Paragraph = 'paragraph', +} + +export type SearchConfig = { + resultsLimit: number + preferredVersionPath: string +} + +export const createPromise = () => { + let resolve: any, reject: any + + const promise = new Promise((res, rej) => { + resolve = res + reject = rej + }) + + const callback = (data: T, error?: Error): void => { + if (error) return void reject(error) + resolve(data) + } + + return { + reject, + resolve, + promise, + + callback, + } +} + +const main = async () => { + if (typeof window === 'undefined') return + + const win = window as any + + win.getProxiedGeneratedData = () => proxied + + win.createSearchInstance = async (config: SearchConfig) => { + const search = new Search(config) + + return search + } +} + +main() diff --git a/src/lib/git.utils.ts b/packages/logos-docusaurus-search-local/src/deps.d.ts similarity index 100% rename from src/lib/git.utils.ts rename to packages/logos-docusaurus-search-local/src/deps.d.ts diff --git a/packages/logos-docusaurus-search-local/src/index.ts b/packages/logos-docusaurus-search-local/src/index.ts new file mode 100644 index 0000000..48f51a3 --- /dev/null +++ b/packages/logos-docusaurus-search-local/src/index.ts @@ -0,0 +1,31 @@ +import type { LoadContext, Plugin } from '@docusaurus/types' +import { PluginOptions } from '@easyops-cn/docusaurus-search-local' +import * as path from 'path' +// @ts-ignore +import searchPlugin from '@easyops-cn/docusaurus-search-local/dist/server/server/index' +// @ts-ignore +import { validateOptions } from '@easyops-cn/docusaurus-search-local/dist/server/server/index' + +export default function searchPlugin( + context: LoadContext, + options: PluginOptions, +): Plugin { + const plugin = searchPlugin(context, options) as any + + delete plugin.getThemePath + delete plugin.getPathsToWatch + delete plugin.contentLoaded + + return { + ...plugin, + name: 'logos-docusaurus-search-local', + getClientModules: () => [ + ...(typeof plugin.getClientModules !== 'undefined' + ? plugin.getClientModules() + : []), + path.resolve(__dirname, './client/index.js'), + ], + } +} + +export { validateOptions, type PluginOptions } diff --git a/packages/logos-docusaurus-search-local/tsconfig.client.json b/packages/logos-docusaurus-search-local/tsconfig.client.json new file mode 100644 index 0000000..1085444 --- /dev/null +++ b/packages/logos-docusaurus-search-local/tsconfig.client.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "noEmit": false, + "composite": true, + "incremental": true, + "tsBuildInfoFile": "./lib/.tsbuildinfo-client", + "rootDir": "src", + "outDir": "lib", + "module": "esnext", + "target": "esnext", + "lib": ["DOM"] + }, + "include": ["src/client", "src/*.d.ts"], + "exclude": ["**/__tests__/**"] +} diff --git a/packages/logos-docusaurus-search-local/tsconfig.json b/packages/logos-docusaurus-search-local/tsconfig.json new file mode 100644 index 0000000..ac2d96a --- /dev/null +++ b/packages/logos-docusaurus-search-local/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.json", + "references": [{ "path": "./tsconfig.client.json" }], + "compilerOptions": { + "noEmit": false, + "incremental": true, + "tsBuildInfoFile": "./lib/.tsbuildinfo", + "rootDir": "src", + "outDir": "lib", + "lib": ["DOM"] + }, + "include": ["src"], + "exclude": ["src/theme", "**/__tests__/**"] +} diff --git a/packages/logos-docusaurus-theme/gulpfile.js b/packages/logos-docusaurus-theme/gulpfile.js new file mode 100644 index 0000000..0b7d473 --- /dev/null +++ b/packages/logos-docusaurus-theme/gulpfile.js @@ -0,0 +1,114 @@ +const _ = require('lodash') + +const gulp = require('gulp') +const path = require('path') +const merge = require('merge2') +const rimraf = require('rimraf') +const ts = require('gulp-typescript') +const replace = require('gulp-replace') +const sourcemaps = require('gulp-sourcemaps') +const sass = require('gulp-sass')(require('sass')) +const { replaceTscAliasPaths } = require('tsc-alias') + +const project = ts.createProject('./tsconfig.client.json', { + declaration: true, + isolatedModules: false, +}) + +const SOURCE_DIR = project.config.compilerOptions.rootDir ?? 'src' +const OUT_DIR = project.config.compilerOptions.outDir ?? 'lib' +const CLIENT_DIR = 'client' +const STATIC_DIR = 'static' + +const sourceDir = path.resolve('./', SOURCE_DIR) +const outDir = path.resolve('./', OUT_DIR) + +const sourceClientDir = path.join(sourceDir, CLIENT_DIR) +const sourceStaticDir = path.join(sourceClientDir, STATIC_DIR) + +const outClientDir = path.join(outDir, CLIENT_DIR) +const outStaticDir = path.join(outClientDir, STATIC_DIR) + +const cleanup = async (cb) => { + rimraf(outDir, cb) +} + +const build = (cb) => { + return gulp.series(cleanup, buildClient, clientPostBuild, buildServer)(cb) +} + +const buildClient = () => { + const compiled = project.src().pipe(sourcemaps.init()).pipe(project()) + + return merge(compiled.dts, compiled.js.pipe(sourcemaps.write())).pipe( + gulp.dest(outDir), + ) +} + +const clientPostBuild = (done) => + gulp.series( + (cb) => + replaceTscAliasPaths({ + configFile: './tsconfig.client.json', + }) + .then(cb) + .catch(cb), + () => + gulp + .src(path.join(outClientDir, '/**/*.js'), { base: outClientDir }) + .pipe( + replace(/import (.+?) from '([^']+)\.scss'/g, (str) => + str.replace('.scss', '.css'), + ), + ) + .pipe(gulp.dest(outClientDir)), + transpileStyles, + copyStaticFiles, + )(done) + +const buildServer = () => { + const project = ts.createProject('./tsconfig.json', { + isolatedModules: false, + }) + + const compiled = project.src().pipe(project()) + + return merge(compiled.dts, compiled.js).pipe(gulp.dest(outDir)) +} + +const transpileSass = () => + gulp + .src(path.join(sourceClientDir, '**/*.scss')) + .pipe(sourcemaps.init()) + .pipe(sass().on('error', sass.logError)) + .pipe(sourcemaps.write()) + .pipe(gulp.dest(outClientDir)) + +const copyCssFiles = () => + gulp + .src(path.join(sourceClientDir, '**/*.{css,scss}'), { + base: sourceClientDir, + }) + .pipe(gulp.dest(outClientDir)) + +const copyStaticFiles = () => + gulp + .src(path.join(sourceStaticDir, '**/*'), { base: sourceStaticDir }) + .pipe(gulp.dest(outStaticDir)) + +const transpileStyles = (cb) => gulp.series(transpileSass, copyCssFiles)(cb) + +const watch = async () => { + gulp.watch([path.join(sourceDir, '**/*.{ts,tsx,css,scss}')], (cb) => { + build(cb) + }) +} + +gulp.task('build', build) +gulp.task('watch', watch) +gulp.task('cleanup', cleanup) +gulp.task('build-server', buildServer) +gulp.task('build-client', buildClient) +gulp.task('client-post-build', clientPostBuild) +gulp.task('transpile-styles', transpileStyles) +gulp.task('copy-static-files', copyStaticFiles) diff --git a/packages/logos-docusaurus-theme/package.json b/packages/logos-docusaurus-theme/package.json new file mode 100644 index 0000000..b4ae8bd --- /dev/null +++ b/packages/logos-docusaurus-theme/package.json @@ -0,0 +1,61 @@ +{ + "name": "@acid-info/logos-docusaurus-theme", + "version": "0.1.0", + "description": "A Docusaurus theme for Logos documentation websites", + "main": "lib/index.js", + "types": "src/theme.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/acid-info/logos-docusaurus-plugins.git", + "directory": "packages/logos-docusaurus-theme" + }, + "license": "MIT", + "scripts": { + "cleanup": "yarn cleanup", + "watch": "yarn gulp watch", + "build": "yarn gulp build", + "build:client": "yarn gulp build-client && yarn gulp client-post-build", + "build:server": "yarn gulp build-server" + }, + "dependencies": { + "@docusaurus/core": "2.1.0", + "@docusaurus/mdx-loader": "2.1.0", + "@docusaurus/module-type-aliases": "2.1.0", + "@docusaurus/plugin-content-blog": "2.1.0", + "@docusaurus/plugin-content-docs": "2.1.0", + "@docusaurus/plugin-content-pages": "2.1.0", + "@docusaurus/theme-classic": "^2.1.0", + "@docusaurus/theme-common": "2.1.0", + "@docusaurus/theme-translations": "2.1.0", + "@docusaurus/types": "2.1.0", + "@docusaurus/utils": "2.1.0", + "@docusaurus/utils-common": "2.1.0", + "@docusaurus/utils-validation": "2.1.0", + "@mdx-js/react": "^1.6.22", + "@tryghost/content-api": "^1.11.4", + "clsx": "^1.2.1", + "copy-text-to-clipboard": "^3.0.1", + "copy-to-clipboard": "^3.3.2", + "docusaurus-plugin-sass": "^0.2.2", + "dotenv": "^16.0.3", + "lodash": "^4.17.21", + "prism-react-renderer": "^1.3.5", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-use": "^17.4.0", + "utility-types": "^3.10.0" + }, + "devDependencies": { + "@types/lodash": "^4.14.186", + "@types/mdx-js__react": "^1.5.5", + "sass": "^1.55.0", + "tsc-alias": "^1.7.0" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + }, + "engines": { + "node": ">=16.14" + } +} diff --git a/src/components/Button/Button.tsx b/packages/logos-docusaurus-theme/src/client/components/Button/Button.tsx similarity index 100% rename from src/components/Button/Button.tsx rename to packages/logos-docusaurus-theme/src/client/components/Button/Button.tsx diff --git a/src/components/Button/ButtonWithIcon.tsx b/packages/logos-docusaurus-theme/src/client/components/Button/ButtonWithIcon.tsx similarity index 100% rename from src/components/Button/ButtonWithIcon.tsx rename to packages/logos-docusaurus-theme/src/client/components/Button/ButtonWithIcon.tsx diff --git a/src/components/Button/LinkButton.tsx b/packages/logos-docusaurus-theme/src/client/components/Button/LinkButton.tsx similarity index 100% rename from src/components/Button/LinkButton.tsx rename to packages/logos-docusaurus-theme/src/client/components/Button/LinkButton.tsx diff --git a/src/components/Button/LinkButtonWithIcon.tsx b/packages/logos-docusaurus-theme/src/client/components/Button/LinkButtonWithIcon.tsx similarity index 100% rename from src/components/Button/LinkButtonWithIcon.tsx rename to packages/logos-docusaurus-theme/src/client/components/Button/LinkButtonWithIcon.tsx diff --git a/src/components/Button/index.tsx b/packages/logos-docusaurus-theme/src/client/components/Button/index.tsx similarity index 100% rename from src/components/Button/index.tsx rename to packages/logos-docusaurus-theme/src/client/components/Button/index.tsx diff --git a/src/components/Button/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/Button/style.module.scss similarity index 100% rename from src/components/Button/style.module.scss rename to packages/logos-docusaurus-theme/src/client/components/Button/style.module.scss diff --git a/src/components/Icon/Icon.tsx b/packages/logos-docusaurus-theme/src/client/components/Icon/Icon.tsx similarity index 75% rename from src/components/Icon/Icon.tsx rename to packages/logos-docusaurus-theme/src/client/components/Icon/Icon.tsx index f0d39f8..64f8e03 100644 --- a/src/components/Icon/Icon.tsx +++ b/packages/logos-docusaurus-theme/src/client/components/Icon/Icon.tsx @@ -1,23 +1,23 @@ -import React from 'react' import { useColorMode } from '@docusaurus/theme-common' import { clsx } from 'clsx' +import React from 'react' import styles from './style.module.scss' -import DotSvg from '@site/static/icons/dot.svg' -import ArrowRCircleSvg from '@site/static/icons/arrow-right-circle.svg' -import ArrowLCircleSvg from '@site/static/icons/arrow-left-circle.svg' -import GithubSvg from '@site/static/icons/github.svg' -import FolderSvg from '@site/static/icons/folder.svg' -import TwitterSvg from '@site/static/icons/twitter.svg' -import DiscordSvg from '@site/static/icons/discord.svg' -import LinkedinSvg from '@site/static/icons/linkedin.svg' -import DiscourseSvg from '@site/static/icons/discourse.svg' -import TelegramSvg from '@site/static/icons/telegram.svg' -import StatusSvg from '@site/static/icons/status.svg' -import SearchSvg from '@site/static/icons/search.svg' -import DropdownSvg from '@site/static/icons/dropdown.svg' -import GScholarSvg from '@site/static/icons/gscholar.svg' +import ArrowLCircleSvg from '../../static/icons/arrow-left-circle.svg' +import ArrowRCircleSvg from '../../static/icons/arrow-right-circle.svg' +import DiscordSvg from '../../static/icons/discord.svg' +import DiscourseSvg from '../../static/icons/discourse.svg' +import DotSvg from '../../static/icons/dot.svg' +import DropdownSvg from '../../static/icons/dropdown.svg' +import FolderSvg from '../../static/icons/folder.svg' +import GithubSvg from '../../static/icons/github.svg' +import GScholarSvg from '../../static/icons/gscholar.svg' +import LinkedinSvg from '../../static/icons/linkedin.svg' +import SearchSvg from '../../static/icons/search.svg' +import StatusSvg from '../../static/icons/status.svg' +import TelegramSvg from '../../static/icons/telegram.svg' +import TwitterSvg from '../../static/icons/twitter.svg' type TIconProps = { size?: 's' | 'm' | 'l' @@ -126,7 +126,6 @@ export const IconSearch = (props: TIconProps): JSX.Element => ( export const IconDropdown = (props: TIconProps): JSX.Element => ( - ) diff --git a/src/components/Icon/SocialmediaLink.tsx b/packages/logos-docusaurus-theme/src/client/components/Icon/SocialmediaLink.tsx similarity index 95% rename from src/components/Icon/SocialmediaLink.tsx rename to packages/logos-docusaurus-theme/src/client/components/Icon/SocialmediaLink.tsx index bb3d39f..4694323 100644 --- a/src/components/Icon/SocialmediaLink.tsx +++ b/packages/logos-docusaurus-theme/src/client/components/Icon/SocialmediaLink.tsx @@ -8,7 +8,7 @@ import { IconTelegram, IconGScholar, } from './Icon' -import { ECommunityProviders } from '@site/src/types/ui.types' +import { ECommunityProviders } from '@logos-theme/types/ui.types' type TProps = { handler: string @@ -73,6 +73,6 @@ export const SocialMediaItem = (props: TProps): JSX.Element => { ) default: - return null + return <> } } diff --git a/src/components/Icon/index.tsx b/packages/logos-docusaurus-theme/src/client/components/Icon/index.tsx similarity index 100% rename from src/components/Icon/index.tsx rename to packages/logos-docusaurus-theme/src/client/components/Icon/index.tsx diff --git a/src/components/Icon/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/Icon/style.module.scss similarity index 100% rename from src/components/Icon/style.module.scss rename to packages/logos-docusaurus-theme/src/client/components/Icon/style.module.scss diff --git a/src/components/IconButton/IconButton.module.scss b/packages/logos-docusaurus-theme/src/client/components/IconButton/IconButton.module.scss similarity index 100% rename from src/components/IconButton/IconButton.module.scss rename to packages/logos-docusaurus-theme/src/client/components/IconButton/IconButton.module.scss diff --git a/src/components/IconButton/IconButton.tsx b/packages/logos-docusaurus-theme/src/client/components/IconButton/IconButton.tsx similarity index 100% rename from src/components/IconButton/IconButton.tsx rename to packages/logos-docusaurus-theme/src/client/components/IconButton/IconButton.tsx diff --git a/src/components/IconButton/index.ts b/packages/logos-docusaurus-theme/src/client/components/IconButton/index.ts similarity index 100% rename from src/components/IconButton/index.ts rename to packages/logos-docusaurus-theme/src/client/components/IconButton/index.ts diff --git a/src/components/mdx/BlogPosts/BlogPosts.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/BlogPosts.tsx similarity index 95% rename from src/components/mdx/BlogPosts/BlogPosts.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/BlogPosts.tsx index 287ec92..195c782 100644 --- a/src/components/mdx/BlogPosts/BlogPosts.tsx +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/BlogPosts.tsx @@ -2,8 +2,9 @@ import React, { useEffect, useState } from 'react' import clsx from 'clsx' import styles from './style.module.scss' import useDocusaurusContext from '@docusaurus/useDocusaurusContext' +// @ts-ignore import GhostContentAPI from '@tryghost/content-api' -import { LinkButton } from '@site/src/components/Button/LinkButton' +import { LinkButton } from '@logos-theme/components/Button/LinkButton' type TProps = { children: React.ReactNode @@ -28,7 +29,7 @@ const useGhostBlogPosts = (limit: number = 10) => { siteConfig: { customFields: { ghostAPiKey }, }, - } = useDocusaurusContext() + } = useDocusaurusContext() as any const [posts, setPosts] = useState([]) useEffect(() => { diff --git a/src/components/mdx/BlogPosts/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/index.tsx similarity index 100% rename from src/components/mdx/BlogPosts/index.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/index.tsx diff --git a/src/components/mdx/BlogPosts/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/style.module.scss similarity index 100% rename from src/components/mdx/BlogPosts/style.module.scss rename to packages/logos-docusaurus-theme/src/client/components/mdx/BlogPosts/style.module.scss diff --git a/src/components/mdx/ExternalReferenceCard/ExternalReferenceCard.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/ExternalReferenceCard.tsx similarity index 97% rename from src/components/mdx/ExternalReferenceCard/ExternalReferenceCard.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/ExternalReferenceCard.tsx index 526b4a0..8b474bf 100644 --- a/src/components/mdx/ExternalReferenceCard/ExternalReferenceCard.tsx +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/ExternalReferenceCard.tsx @@ -6,7 +6,7 @@ import { IconFolder, IconFolderFilled, IconGithub, -} from '../../Icon' +} from '../../Icon/index' import styles from './style.module.scss' type TProps = { diff --git a/src/components/mdx/ExternalReferenceCard/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/index.tsx similarity index 100% rename from src/components/mdx/ExternalReferenceCard/index.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/index.tsx diff --git a/src/components/mdx/ExternalReferenceCard/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/style.module.scss similarity index 100% rename from src/components/mdx/ExternalReferenceCard/style.module.scss rename to packages/logos-docusaurus-theme/src/client/components/mdx/ExternalReferenceCard/style.module.scss diff --git a/src/components/mdx/FeatureCard/FeatureCard.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/FeatureCard.tsx similarity index 97% rename from src/components/mdx/FeatureCard/FeatureCard.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/FeatureCard.tsx index ac8b363..641a55c 100644 --- a/src/components/mdx/FeatureCard/FeatureCard.tsx +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/FeatureCard.tsx @@ -5,7 +5,7 @@ import styles from './style.module.scss' type TProps = { title: string text: string - index?: string + index: string link?: string children: React.ReactNode } diff --git a/src/components/mdx/FeatureCard/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/index.tsx similarity index 100% rename from src/components/mdx/FeatureCard/index.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/index.tsx diff --git a/src/components/mdx/FeatureCard/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/style.module.scss similarity index 100% rename from src/components/mdx/FeatureCard/style.module.scss rename to packages/logos-docusaurus-theme/src/client/components/mdx/FeatureCard/style.module.scss diff --git a/src/components/mdx/FeatureList/FeatureList.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/FeatureList.tsx similarity index 100% rename from src/components/mdx/FeatureList/FeatureList.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/FeatureList.tsx diff --git a/src/components/mdx/FeatureList/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/index.tsx similarity index 100% rename from src/components/mdx/FeatureList/index.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/index.tsx diff --git a/src/components/mdx/FeatureList/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/style.module.scss similarity index 100% rename from src/components/mdx/FeatureList/style.module.scss rename to packages/logos-docusaurus-theme/src/client/components/mdx/FeatureList/style.module.scss diff --git a/src/components/mdx/Hero/Hero.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.tsx similarity index 95% rename from src/components/mdx/Hero/Hero.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.tsx index bb8f0af..500071f 100644 --- a/src/components/mdx/Hero/Hero.tsx +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/Hero.tsx @@ -2,7 +2,7 @@ import Link from '@docusaurus/Link' import clsx from 'clsx' import React from 'react' import { ButtonWithIcon } from '../../Button/ButtonWithIcon' -import { IconArrowRightCircle, IconDot } from '../../Icon' +import { IconArrowRightCircle, IconDot } from '../../Icon/index' import styles from './style.module.scss' type TProps = { diff --git a/src/components/mdx/Hero/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/index.tsx similarity index 100% rename from src/components/mdx/Hero/index.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/Hero/index.tsx diff --git a/src/components/mdx/Hero/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/Hero/style.module.scss similarity index 100% rename from src/components/mdx/Hero/style.module.scss rename to packages/logos-docusaurus-theme/src/client/components/mdx/Hero/style.module.scss diff --git a/src/components/mdx/Quote/Quote.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/Quote.tsx similarity index 100% rename from src/components/mdx/Quote/Quote.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/Quote/Quote.tsx diff --git a/src/components/mdx/Quote/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/index.tsx similarity index 100% rename from src/components/mdx/Quote/index.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/Quote/index.tsx diff --git a/src/components/mdx/Quote/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/Quote/style.module.scss similarity index 100% rename from src/components/mdx/Quote/style.module.scss rename to packages/logos-docusaurus-theme/src/client/components/mdx/Quote/style.module.scss diff --git a/src/components/mdx/TeamList/TeamList.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/TeamList.tsx similarity index 91% rename from src/components/mdx/TeamList/TeamList.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/TeamList.tsx index 1d00ef3..d75d1ef 100644 --- a/src/components/mdx/TeamList/TeamList.tsx +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/TeamList.tsx @@ -1,14 +1,14 @@ import React from 'react' import clsx from 'clsx' import styles from './style.module.scss' -import { useTeam } from '@site/src/lib/team.utils' -import { ELogosTeamNames } from '@site/src/types/team' +import { useTeam } from '@logos-theme/lib/team.utils' +import { ELogosTeamNames } from '@logos-theme/types/team' import { SocialMediaItem } from '../../Icon/SocialmediaLink' -import { ECommunityProviders } from '@site/src/types/ui.types' +import { ECommunityProviders } from '@logos-theme/types/ui.types' import { globalStore, selectHiddenSidebar, -} from '@site/src/containers/GlobalStore' +} from '@logos-theme/containers/GlobalStore/index' type TProps = { children: React.ReactNode diff --git a/src/components/mdx/TeamList/index.tsx b/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/index.tsx similarity index 100% rename from src/components/mdx/TeamList/index.tsx rename to packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/index.tsx diff --git a/src/components/mdx/TeamList/style.module.scss b/packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/style.module.scss similarity index 100% rename from src/components/mdx/TeamList/style.module.scss rename to packages/logos-docusaurus-theme/src/client/components/mdx/TeamList/style.module.scss diff --git a/packages/logos-docusaurus-theme/src/client/components/mdx/index.ts b/packages/logos-docusaurus-theme/src/client/components/mdx/index.ts new file mode 100644 index 0000000..1de29d9 --- /dev/null +++ b/packages/logos-docusaurus-theme/src/client/components/mdx/index.ts @@ -0,0 +1,7 @@ +export * from './BlogPosts' +export * from './ExternalReferenceCard' +export * from './FeatureCard' +export * from './FeatureList' +export * from './Hero' +export * from './Quote' +export * from './TeamList' diff --git a/src/containers/GlobalStore/GlobalStore.tsx b/packages/logos-docusaurus-theme/src/client/containers/GlobalStore/GlobalStore.tsx similarity index 92% rename from src/containers/GlobalStore/GlobalStore.tsx rename to packages/logos-docusaurus-theme/src/client/containers/GlobalStore/GlobalStore.tsx index f725281..cb83999 100644 --- a/src/containers/GlobalStore/GlobalStore.tsx +++ b/packages/logos-docusaurus-theme/src/client/containers/GlobalStore/GlobalStore.tsx @@ -1,4 +1,4 @@ -import { Store as StoreBase } from '@site/src/lib/store' +import { Store as StoreBase } from '@logos-theme/lib/store/index' export namespace GlobalStore { export type State = { diff --git a/src/containers/GlobalStore/index.ts b/packages/logos-docusaurus-theme/src/client/containers/GlobalStore/index.ts similarity index 100% rename from src/containers/GlobalStore/index.ts rename to packages/logos-docusaurus-theme/src/client/containers/GlobalStore/index.ts diff --git a/src/css/_utils.scss b/packages/logos-docusaurus-theme/src/client/css/_utils.scss similarity index 100% rename from src/css/_utils.scss rename to packages/logos-docusaurus-theme/src/client/css/_utils.scss diff --git a/src/css/_vars.scss b/packages/logos-docusaurus-theme/src/client/css/_vars.scss similarity index 100% rename from src/css/_vars.scss rename to packages/logos-docusaurus-theme/src/client/css/_vars.scss diff --git a/src/css/custom.scss b/packages/logos-docusaurus-theme/src/client/css/custom.scss similarity index 100% rename from src/css/custom.scss rename to packages/logos-docusaurus-theme/src/client/css/custom.scss diff --git a/src/lib/array.utils.ts b/packages/logos-docusaurus-theme/src/client/lib/array.utils.ts similarity index 100% rename from src/lib/array.utils.ts rename to packages/logos-docusaurus-theme/src/client/lib/array.utils.ts diff --git a/src/lib/settle.ts b/packages/logos-docusaurus-theme/src/client/lib/settle.ts similarity index 65% rename from src/lib/settle.ts rename to packages/logos-docusaurus-theme/src/client/lib/settle.ts index d0934ad..ec6a0a7 100644 --- a/src/lib/settle.ts +++ b/packages/logos-docusaurus-theme/src/client/lib/settle.ts @@ -9,10 +9,12 @@ export const settle = async ( } } -export const settleSync = (func: () => R): [R, E] => { +export const settleSync = ( + func: () => R, +): [R, undefined] | [undefined, E] => { try { - return [func(), null] - } catch (error) { + return [func(), undefined] + } catch (error: any) { return [undefined, error] } } diff --git a/src/lib/store/Hook.tsx b/packages/logos-docusaurus-theme/src/client/lib/store/Hook.tsx similarity index 100% rename from src/lib/store/Hook.tsx rename to packages/logos-docusaurus-theme/src/client/lib/store/Hook.tsx diff --git a/src/lib/store/index.ts b/packages/logos-docusaurus-theme/src/client/lib/store/index.ts similarity index 100% rename from src/lib/store/index.ts rename to packages/logos-docusaurus-theme/src/client/lib/store/index.ts diff --git a/src/lib/store/store.tsx b/packages/logos-docusaurus-theme/src/client/lib/store/store.tsx similarity index 97% rename from src/lib/store/store.tsx rename to packages/logos-docusaurus-theme/src/client/lib/store/store.tsx index 4af9c79..2e70d3f 100644 --- a/src/lib/store/store.tsx +++ b/packages/logos-docusaurus-theme/src/client/lib/store/store.tsx @@ -63,8 +63,8 @@ export class Store< public Provider: React.FC }>> = ({ children, store }) => { - this.stateRef = useRef() - this.setStateRef = useRef() + this.stateRef = useRef(store.state) + this.setStateRef = useRef(store.setState) this.injectedRef = useRef(this.inject.map((hook) => null)) if (!this.context) { diff --git a/src/lib/team.utils.ts b/packages/logos-docusaurus-theme/src/client/lib/team.utils.ts similarity index 100% rename from src/lib/team.utils.ts rename to packages/logos-docusaurus-theme/src/client/lib/team.utils.ts diff --git a/src/lib/useActiveVersionPath.ts b/packages/logos-docusaurus-theme/src/client/lib/useActiveVersionPath.ts similarity index 89% rename from src/lib/useActiveVersionPath.ts rename to packages/logos-docusaurus-theme/src/client/lib/useActiveVersionPath.ts index 7c17886..44029a7 100644 --- a/src/lib/useActiveVersionPath.ts +++ b/packages/logos-docusaurus-theme/src/client/lib/useActiveVersionPath.ts @@ -3,7 +3,7 @@ import { useActivePluginAndVersion } from '@docusaurus/plugin-content-docs/clien export const useActiveVersionPath = () => { const data = useActivePluginAndVersion({ failfast: false }) - if (data) { + if (data?.activeVersion) { return data.activeVersion.path } diff --git a/src/lib/useEventListener.ts b/packages/logos-docusaurus-theme/src/client/lib/useEventListener.ts similarity index 100% rename from src/lib/useEventListener.ts rename to packages/logos-docusaurus-theme/src/client/lib/useEventListener.ts diff --git a/src/lib/useIsVersionIndexPage.tsx b/packages/logos-docusaurus-theme/src/client/lib/useIsVersionIndexPage.tsx similarity index 100% rename from src/lib/useIsVersionIndexPage.tsx rename to packages/logos-docusaurus-theme/src/client/lib/useIsVersionIndexPage.tsx diff --git a/src/lib/useOS.ts b/packages/logos-docusaurus-theme/src/client/lib/useOS.ts similarity index 100% rename from src/lib/useOS.ts rename to packages/logos-docusaurus-theme/src/client/lib/useOS.ts diff --git a/src/lib/useWindowEventListener.ts b/packages/logos-docusaurus-theme/src/client/lib/useWindowEventListener.ts similarity index 87% rename from src/lib/useWindowEventListener.ts rename to packages/logos-docusaurus-theme/src/client/lib/useWindowEventListener.ts index 417c3e9..0b5ad1f 100644 --- a/src/lib/useWindowEventListener.ts +++ b/packages/logos-docusaurus-theme/src/client/lib/useWindowEventListener.ts @@ -12,7 +12,7 @@ export const useWindowEventListener = ( ) => { useEventListener( key, - () => typeof window !== 'undefined' && window, + () => typeof window !== 'undefined' && (window as any), listener, options, deps, diff --git a/static/icons/arrow-left-circle.svg b/packages/logos-docusaurus-theme/src/client/static/icons/arrow-left-circle.svg similarity index 100% rename from static/icons/arrow-left-circle.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/arrow-left-circle.svg diff --git a/static/icons/arrow-right-circle.svg b/packages/logos-docusaurus-theme/src/client/static/icons/arrow-right-circle.svg similarity index 100% rename from static/icons/arrow-right-circle.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/arrow-right-circle.svg diff --git a/static/icons/chevron-left.svg b/packages/logos-docusaurus-theme/src/client/static/icons/chevron-left.svg similarity index 100% rename from static/icons/chevron-left.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/chevron-left.svg diff --git a/static/icons/cmd.svg b/packages/logos-docusaurus-theme/src/client/static/icons/cmd.svg similarity index 100% rename from static/icons/cmd.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/cmd.svg diff --git a/static/icons/dashicons_share.svg b/packages/logos-docusaurus-theme/src/client/static/icons/dashicons_share.svg similarity index 100% rename from static/icons/dashicons_share.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/dashicons_share.svg diff --git a/static/icons/day.svg b/packages/logos-docusaurus-theme/src/client/static/icons/day.svg similarity index 100% rename from static/icons/day.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/day.svg diff --git a/static/icons/discord.svg b/packages/logos-docusaurus-theme/src/client/static/icons/discord.svg similarity index 100% rename from static/icons/discord.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/discord.svg diff --git a/static/icons/discourse.svg b/packages/logos-docusaurus-theme/src/client/static/icons/discourse.svg similarity index 100% rename from static/icons/discourse.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/discourse.svg diff --git a/static/icons/document.svg b/packages/logos-docusaurus-theme/src/client/static/icons/document.svg similarity index 100% rename from static/icons/document.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/document.svg diff --git a/static/icons/dot.svg b/packages/logos-docusaurus-theme/src/client/static/icons/dot.svg similarity index 100% rename from static/icons/dot.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/dot.svg diff --git a/static/icons/drop-down-1.svg b/packages/logos-docusaurus-theme/src/client/static/icons/drop-down-1.svg similarity index 100% rename from static/icons/drop-down-1.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/drop-down-1.svg diff --git a/static/icons/drop-down.svg b/packages/logos-docusaurus-theme/src/client/static/icons/drop-down.svg similarity index 100% rename from static/icons/drop-down.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/drop-down.svg diff --git a/static/icons/dropdown.svg b/packages/logos-docusaurus-theme/src/client/static/icons/dropdown.svg similarity index 100% rename from static/icons/dropdown.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/dropdown.svg diff --git a/static/icons/esc.svg b/packages/logos-docusaurus-theme/src/client/static/icons/esc.svg similarity index 100% rename from static/icons/esc.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/esc.svg diff --git a/static/icons/file.svg b/packages/logos-docusaurus-theme/src/client/static/icons/file.svg similarity index 100% rename from static/icons/file.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/file.svg diff --git a/static/icons/folder.svg b/packages/logos-docusaurus-theme/src/client/static/icons/folder.svg similarity index 100% rename from static/icons/folder.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/folder.svg diff --git a/static/icons/github.svg b/packages/logos-docusaurus-theme/src/client/static/icons/github.svg similarity index 100% rename from static/icons/github.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/github.svg diff --git a/static/icons/gscholar.svg b/packages/logos-docusaurus-theme/src/client/static/icons/gscholar.svg similarity index 100% rename from static/icons/gscholar.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/gscholar.svg diff --git a/static/icons/hamburger-menu.svg b/packages/logos-docusaurus-theme/src/client/static/icons/hamburger-menu.svg similarity index 100% rename from static/icons/hamburger-menu.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/hamburger-menu.svg diff --git a/static/icons/hashtag.svg b/packages/logos-docusaurus-theme/src/client/static/icons/hashtag.svg similarity index 100% rename from static/icons/hashtag.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/hashtag.svg diff --git a/static/icons/home.svg b/packages/logos-docusaurus-theme/src/client/static/icons/home.svg similarity index 100% rename from static/icons/home.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/home.svg diff --git a/static/icons/k.svg b/packages/logos-docusaurus-theme/src/client/static/icons/k.svg similarity index 100% rename from static/icons/k.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/k.svg diff --git a/static/icons/light.svg b/packages/logos-docusaurus-theme/src/client/static/icons/light.svg similarity index 100% rename from static/icons/light.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/light.svg diff --git a/static/icons/linkedin.svg b/packages/logos-docusaurus-theme/src/client/static/icons/linkedin.svg similarity index 100% rename from static/icons/linkedin.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/linkedin.svg diff --git a/static/icons/search.svg b/packages/logos-docusaurus-theme/src/client/static/icons/search.svg similarity index 100% rename from static/icons/search.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/search.svg diff --git a/static/icons/share.svg b/packages/logos-docusaurus-theme/src/client/static/icons/share.svg similarity index 100% rename from static/icons/share.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/share.svg diff --git a/static/icons/status.svg b/packages/logos-docusaurus-theme/src/client/static/icons/status.svg similarity index 100% rename from static/icons/status.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/status.svg diff --git a/static/icons/telegram.svg b/packages/logos-docusaurus-theme/src/client/static/icons/telegram.svg similarity index 100% rename from static/icons/telegram.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/telegram.svg diff --git a/static/icons/twitter.svg b/packages/logos-docusaurus-theme/src/client/static/icons/twitter.svg similarity index 100% rename from static/icons/twitter.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/twitter.svg diff --git a/static/icons/youtube.svg b/packages/logos-docusaurus-theme/src/client/static/icons/youtube.svg similarity index 100% rename from static/icons/youtube.svg rename to packages/logos-docusaurus-theme/src/client/static/icons/youtube.svg diff --git a/src/theme/ColorModeToggle/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/ColorModeToggle/index.tsx similarity index 96% rename from src/theme/ColorModeToggle/index.tsx rename to packages/logos-docusaurus-theme/src/client/theme/ColorModeToggle/index.tsx index 7531f4d..6341879 100644 --- a/src/theme/ColorModeToggle/index.tsx +++ b/packages/logos-docusaurus-theme/src/client/theme/ColorModeToggle/index.tsx @@ -1,6 +1,6 @@ import { translate } from '@docusaurus/Translate' import useIsBrowser from '@docusaurus/useIsBrowser' -import { IconButton } from '@site/src/components/IconButton' +import { IconButton } from '@logos-theme/components/IconButton/index' import type { Props } from '@theme/ColorModeToggle' import IconDarkMode from '@theme/Icon/DarkMode' import IconLightMode from '@theme/Icon/LightMode' diff --git a/src/theme/ColorModeToggle/styles.module.css b/packages/logos-docusaurus-theme/src/client/theme/ColorModeToggle/styles.module.css similarity index 100% rename from src/theme/ColorModeToggle/styles.module.css rename to packages/logos-docusaurus-theme/src/client/theme/ColorModeToggle/styles.module.css diff --git a/src/theme/DocCategoryGeneratedIndexPage/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/DocCategoryGeneratedIndexPage/index.tsx similarity index 100% rename from src/theme/DocCategoryGeneratedIndexPage/index.tsx rename to packages/logos-docusaurus-theme/src/client/theme/DocCategoryGeneratedIndexPage/index.tsx diff --git a/src/theme/DocCategoryGeneratedIndexPage/styles.module.css b/packages/logos-docusaurus-theme/src/client/theme/DocCategoryGeneratedIndexPage/styles.module.css similarity index 100% rename from src/theme/DocCategoryGeneratedIndexPage/styles.module.css rename to packages/logos-docusaurus-theme/src/client/theme/DocCategoryGeneratedIndexPage/styles.module.css diff --git a/src/theme/DocItem/Layout/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/DocItem/Layout/index.tsx similarity index 97% rename from src/theme/DocItem/Layout/index.tsx rename to packages/logos-docusaurus-theme/src/client/theme/DocItem/Layout/index.tsx index 902047f..171de13 100644 --- a/src/theme/DocItem/Layout/index.tsx +++ b/packages/logos-docusaurus-theme/src/client/theme/DocItem/Layout/index.tsx @@ -1,6 +1,5 @@ import { useWindowSize } from '@docusaurus/theme-common' import { useDoc } from '@docusaurus/theme-common/internal' -import DocBreadcrumbs from '@theme/DocBreadcrumbs' import DocItemContent from '@theme/DocItem/Content' import DocItemFooter from '@theme/DocItem/Footer' import { Props } from '@theme/DocItem/Layout' diff --git a/src/theme/DocItem/Layout/styles.module.scss b/packages/logos-docusaurus-theme/src/client/theme/DocItem/Layout/styles.module.scss similarity index 96% rename from src/theme/DocItem/Layout/styles.module.scss rename to packages/logos-docusaurus-theme/src/client/theme/DocItem/Layout/styles.module.scss index c55160f..ac293c5 100644 --- a/src/theme/DocItem/Layout/styles.module.scss +++ b/packages/logos-docusaurus-theme/src/client/theme/DocItem/Layout/styles.module.scss @@ -1,4 +1,4 @@ -@use '@site/src/css/utils'; +@use '../../../css/utils'; .root { width: 100%; diff --git a/src/theme/DocPage/Layout/Main/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/Main/index.tsx similarity index 100% rename from src/theme/DocPage/Layout/Main/index.tsx rename to packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/Main/index.tsx diff --git a/src/theme/DocPage/Layout/Main/styles.module.scss b/packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/Main/styles.module.scss similarity index 95% rename from src/theme/DocPage/Layout/Main/styles.module.scss rename to packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/Main/styles.module.scss index ed19c83..852af51 100644 --- a/src/theme/DocPage/Layout/Main/styles.module.scss +++ b/packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/Main/styles.module.scss @@ -1,4 +1,4 @@ -@use '@site/src/css/utils'; +@use '../../../../css/utils'; .docMainContainer { display: flex; diff --git a/src/theme/DocPage/Layout/Sidebar/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/Sidebar/index.tsx similarity index 96% rename from src/theme/DocPage/Layout/Sidebar/index.tsx rename to packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/Sidebar/index.tsx index 6d27035..9ff0326 100644 --- a/src/theme/DocPage/Layout/Sidebar/index.tsx +++ b/packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/Sidebar/index.tsx @@ -4,7 +4,7 @@ import { useDocsSidebar } from '@docusaurus/theme-common/internal' import { globalStore, selectHiddenSidebar, -} from '@site/src/containers/GlobalStore' +} from '@logos-theme/containers/GlobalStore/index' import type { Props } from '@theme/DocPage/Layout/Sidebar' import DocSidebar from '@theme/DocSidebar' import clsx from 'clsx' diff --git a/src/theme/DocPage/Layout/Sidebar/styles.module.css b/packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/Sidebar/styles.module.css similarity index 100% rename from src/theme/DocPage/Layout/Sidebar/styles.module.css rename to packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/Sidebar/styles.module.css diff --git a/src/theme/DocPage/Layout/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/index.tsx similarity index 96% rename from src/theme/DocPage/Layout/index.tsx rename to packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/index.tsx index f0fb2ef..85dd819 100644 --- a/src/theme/DocPage/Layout/index.tsx +++ b/packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/index.tsx @@ -2,7 +2,7 @@ import { useDocsSidebar } from '@docusaurus/theme-common/internal' import { globalStore, selectHiddenSidebar, -} from '@site/src/containers/GlobalStore' +} from '@logos-theme/containers/GlobalStore/index' import BackToTopButton from '@theme/BackToTopButton' import type { Props } from '@theme/DocPage/Layout' import DocPageLayoutMain from '@theme/DocPage/Layout/Main' diff --git a/src/theme/DocPage/Layout/styles.module.scss b/packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/styles.module.scss similarity index 100% rename from src/theme/DocPage/Layout/styles.module.scss rename to packages/logos-docusaurus-theme/src/client/theme/DocPage/Layout/styles.module.scss diff --git a/src/theme/DocSidebar/Desktop/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/DocSidebar/Desktop/index.tsx similarity index 100% rename from src/theme/DocSidebar/Desktop/index.tsx rename to packages/logos-docusaurus-theme/src/client/theme/DocSidebar/Desktop/index.tsx diff --git a/src/theme/DocSidebar/Desktop/styles.module.css b/packages/logos-docusaurus-theme/src/client/theme/DocSidebar/Desktop/styles.module.css similarity index 100% rename from src/theme/DocSidebar/Desktop/styles.module.css rename to packages/logos-docusaurus-theme/src/client/theme/DocSidebar/Desktop/styles.module.css diff --git a/src/theme/DocSidebarItem/Category/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/DocSidebarItem/Category/index.tsx similarity index 99% rename from src/theme/DocSidebarItem/Category/index.tsx rename to packages/logos-docusaurus-theme/src/client/theme/DocSidebarItem/Category/index.tsx index 3486fae..0e7bca2 100644 --- a/src/theme/DocSidebarItem/Category/index.tsx +++ b/packages/logos-docusaurus-theme/src/client/theme/DocSidebarItem/Category/index.tsx @@ -22,7 +22,7 @@ import { IconArrowLeftCircle, IconArrowRightCircle, IconDropdown, -} from '@site/src/components/Icon' +} from '@logos-theme/components/Icon/index' // If we navigate to a category and it becomes active, it should automatically // expand itself diff --git a/src/theme/Footer/Layout/index.tsx b/packages/logos-docusaurus-theme/src/client/theme/Footer/Layout/index.tsx similarity index 60% rename from src/theme/Footer/Layout/index.tsx rename to packages/logos-docusaurus-theme/src/client/theme/Footer/Layout/index.tsx index e87b8db..cb0592f 100644 --- a/src/theme/Footer/Layout/index.tsx +++ b/packages/logos-docusaurus-theme/src/client/theme/Footer/Layout/index.tsx @@ -1,29 +1,32 @@ -import React from 'react' -import clsx from 'clsx' import type { Props } from '@theme/Footer/Layout' - -import styles from './style.module.scss' +import clsx from 'clsx' +import React from 'react' import { useThemeConfig } from '@docusaurus/theme-common' -import { SocialMediaItem } from '@site/src/components/Icon/SocialmediaLink' +import { FooterLinkItem } from '@docusaurus/theme-common/internal' +import { ThemeConfig } from '@docusaurus/types' +import { SocialMediaItem } from '@logos-theme/components/Icon/SocialmediaLink' import { globalStore, selectHiddenSidebar, -} from '@site/src/containers/GlobalStore' -import { FooterLinkItem } from '@docusaurus/theme-common/src/utils/useThemeConfig' -import { ECommunityProviders } from '@site/src/types/ui.types' +} from '@logos-theme/containers/GlobalStore/index' +import { ECommunityProviders } from '@logos-theme/types/ui.types' +import { DeepRequired } from 'utility-types' +import styles from './style.module.scss' export default function FooterLayout(props: Props): JSX.Element { const { logo, copyright } = props const { footer: { links = [] }, - } = useThemeConfig() + } = useThemeConfig() as ThemeConfig & { + footer: ThemeConfig['footer'] & { links: FooterLinkItem[] } + } const hiddenSidebar = globalStore.useSelector(selectHiddenSidebar) - //TODO why? - //ts-ignore - const communityLinks = (links as FooterLinkItem[]) + const communityLinks = links .filter((l) => l && l.title === 'Community') - .flatMap((l) => l.items) + .flatMap((l) => + (l as any).items.filter((item: FooterLinkItem) => !!item.href), + ) return (