@seqera/docusaurus-theme-seqera 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/README.md +26 -0
  2. package/package.json +66 -0
  3. package/src/getSwizzleConfig.ts +433 -0
  4. package/src/index.ts +154 -0
  5. package/src/inlineScripts.ts +95 -0
  6. package/src/inlineSvgSprites.ts +7 -0
  7. package/src/main-styles.css +322 -0
  8. package/src/nprogress.css +36 -0
  9. package/src/nprogress.ts +27 -0
  10. package/src/options.ts +503 -0
  11. package/src/prism-include-languages.ts +6 -0
  12. package/src/styles/api.css +42 -0
  13. package/src/styles/typography.css +342 -0
  14. package/src/theme/Admonition/Icon/Danger.tsx +15 -0
  15. package/src/theme/Admonition/Icon/Info.tsx +15 -0
  16. package/src/theme/Admonition/Icon/Note.tsx +15 -0
  17. package/src/theme/Admonition/Icon/Tip.tsx +15 -0
  18. package/src/theme/Admonition/Icon/Warning.tsx +15 -0
  19. package/src/theme/Admonition/Layout/index.tsx +53 -0
  20. package/src/theme/Admonition/Layout/styles.module.css +39 -0
  21. package/src/theme/Admonition/Type/Caution.tsx +34 -0
  22. package/src/theme/Admonition/Type/Danger.tsx +32 -0
  23. package/src/theme/Admonition/Type/Info.tsx +32 -0
  24. package/src/theme/Admonition/Type/Note.tsx +32 -0
  25. package/src/theme/Admonition/Type/Tip.tsx +32 -0
  26. package/src/theme/Admonition/Type/Warning.tsx +32 -0
  27. package/src/theme/Admonition/Types.tsx +33 -0
  28. package/src/theme/Admonition/index.tsx +23 -0
  29. package/src/theme/AdmonitionVersioned/AddedInVersion.tsx +14 -0
  30. package/src/theme/AdmonitionVersioned/AdmonitionVersioned.tsx +66 -0
  31. package/src/theme/AdmonitionVersioned/ChangedInVersion.tsx +14 -0
  32. package/src/theme/AdmonitionVersioned/DeprecatedInVersion.tsx +15 -0
  33. package/src/theme/AdmonitionVersioned/getStableVersion.ts +30 -0
  34. package/src/theme/AdmonitionVersioned/index.ts +1 -0
  35. package/src/theme/AdmonitionVersioned/stableVersions.ts +119 -0
  36. package/src/theme/AnnouncementBar/CloseButton/index.tsx +24 -0
  37. package/src/theme/AnnouncementBar/CloseButton/styles.module.css +6 -0
  38. package/src/theme/AnnouncementBar/Content/index.tsx +21 -0
  39. package/src/theme/AnnouncementBar/Content/styles.module.css +12 -0
  40. package/src/theme/AnnouncementBar/index.tsx +37 -0
  41. package/src/theme/AnnouncementBar/styles.module.css +57 -0
  42. package/src/theme/BackToTopButton/index.tsx +30 -0
  43. package/src/theme/BackToTopButton/styles.module.css +39 -0
  44. package/src/theme/Blog/Components/Author/Socials/index.tsx +75 -0
  45. package/src/theme/Blog/Components/Author/Socials/styles.module.css +34 -0
  46. package/src/theme/Blog/Components/Author/index.tsx +98 -0
  47. package/src/theme/Blog/Components/Author/styles.module.css +69 -0
  48. package/src/theme/Blog/Pages/BlogAuthorsListPage/index.tsx +57 -0
  49. package/src/theme/Blog/Pages/BlogAuthorsListPage/styles.module.css +6 -0
  50. package/src/theme/Blog/Pages/BlogAuthorsPostsPage/index.tsx +77 -0
  51. package/src/theme/BlogArchivePage/index.tsx +102 -0
  52. package/src/theme/BlogLayout/index.tsx +31 -0
  53. package/src/theme/BlogListPage/StructuredData/index.tsx +17 -0
  54. package/src/theme/BlogListPage/index.tsx +57 -0
  55. package/src/theme/BlogListPaginator/index.tsx +47 -0
  56. package/src/theme/BlogPostItem/Container/index.tsx +11 -0
  57. package/src/theme/BlogPostItem/Content/index.tsx +23 -0
  58. package/src/theme/BlogPostItem/Footer/ReadMoreLink/index.tsx +39 -0
  59. package/src/theme/BlogPostItem/Footer/index.tsx +85 -0
  60. package/src/theme/BlogPostItem/Header/Authors/index.tsx +49 -0
  61. package/src/theme/BlogPostItem/Header/Authors/styles.module.css +15 -0
  62. package/src/theme/BlogPostItem/Header/Info/index.tsx +77 -0
  63. package/src/theme/BlogPostItem/Header/Info/styles.module.css +5 -0
  64. package/src/theme/BlogPostItem/Header/Title/index.tsx +20 -0
  65. package/src/theme/BlogPostItem/Header/Title/styles.module.css +14 -0
  66. package/src/theme/BlogPostItem/Header/index.tsx +16 -0
  67. package/src/theme/BlogPostItem/index.tsx +27 -0
  68. package/src/theme/BlogPostItems/index.tsx +25 -0
  69. package/src/theme/BlogPostPage/Metadata/index.tsx +39 -0
  70. package/src/theme/BlogPostPage/StructuredData/index.tsx +16 -0
  71. package/src/theme/BlogPostPage/index.tsx +74 -0
  72. package/src/theme/BlogPostPaginator/index.tsx +46 -0
  73. package/src/theme/BlogSidebar/Content/index.tsx +52 -0
  74. package/src/theme/BlogSidebar/Desktop/index.tsx +52 -0
  75. package/src/theme/BlogSidebar/Desktop/styles.module.css +46 -0
  76. package/src/theme/BlogSidebar/Mobile/index.tsx +47 -0
  77. package/src/theme/BlogSidebar/Mobile/styles.module.css +5 -0
  78. package/src/theme/BlogSidebar/index.tsx +19 -0
  79. package/src/theme/BlogTagsListPage/index.tsx +33 -0
  80. package/src/theme/BlogTagsPostsPage/index.tsx +68 -0
  81. package/src/theme/CodeBlock/Buttons/Button/index.tsx +14 -0
  82. package/src/theme/CodeBlock/Buttons/CopyButton/index.tsx +82 -0
  83. package/src/theme/CodeBlock/Buttons/CopyButton/styles.module.css +42 -0
  84. package/src/theme/CodeBlock/Buttons/WordWrapButton/index.tsx +40 -0
  85. package/src/theme/CodeBlock/Buttons/WordWrapButton/styles.module.css +10 -0
  86. package/src/theme/CodeBlock/Buttons/index.tsx +27 -0
  87. package/src/theme/CodeBlock/Buttons/styles.module.css +32 -0
  88. package/src/theme/CodeBlock/Container/index.tsx +27 -0
  89. package/src/theme/CodeBlock/Container/styles.module.css +9 -0
  90. package/src/theme/CodeBlock/Content/Element.tsx +24 -0
  91. package/src/theme/CodeBlock/Content/String.tsx +37 -0
  92. package/src/theme/CodeBlock/Content/index.tsx +79 -0
  93. package/src/theme/CodeBlock/Content/styles.module.css +30 -0
  94. package/src/theme/CodeBlock/Layout/index.tsx +29 -0
  95. package/src/theme/CodeBlock/Layout/styles.module.css +22 -0
  96. package/src/theme/CodeBlock/Line/Token/index.tsx +13 -0
  97. package/src/theme/CodeBlock/Line/index.tsx +61 -0
  98. package/src/theme/CodeBlock/Line/styles.module.css +47 -0
  99. package/src/theme/CodeBlock/Title/index.tsx +10 -0
  100. package/src/theme/CodeBlock/index.tsx +40 -0
  101. package/src/theme/CodeInline/index.tsx +11 -0
  102. package/src/theme/ColorModeToggle/index.tsx +140 -0
  103. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  104. package/src/theme/ContentVisibility/Draft/index.tsx +22 -0
  105. package/src/theme/ContentVisibility/Unlisted/index.tsx +37 -0
  106. package/src/theme/ContentVisibility/index.tsx +20 -0
  107. package/src/theme/Details/index.tsx +21 -0
  108. package/src/theme/Details/styles.module.css +8 -0
  109. package/src/theme/DocBreadcrumbs/Items/Home/index.tsx +29 -0
  110. package/src/theme/DocBreadcrumbs/Items/Home/styles.module.css +9 -0
  111. package/src/theme/DocBreadcrumbs/StructuredData/index.tsx +19 -0
  112. package/src/theme/DocBreadcrumbs/index.tsx +98 -0
  113. package/src/theme/DocBreadcrumbs/styles.module.css +14 -0
  114. package/src/theme/DocCard/index.tsx +133 -0
  115. package/src/theme/DocCard/styles.module.css +29 -0
  116. package/src/theme/DocCardList/index.tsx +43 -0
  117. package/src/theme/DocCardList/styles.module.css +9 -0
  118. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +68 -0
  119. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +13 -0
  120. package/src/theme/DocItem/Content/index.tsx +43 -0
  121. package/src/theme/DocItem/Footer/index.tsx +51 -0
  122. package/src/theme/DocItem/Layout/index.tsx +66 -0
  123. package/src/theme/DocItem/Layout/styles.module.css +12 -0
  124. package/src/theme/DocItem/Metadata/index.tsx +17 -0
  125. package/src/theme/DocItem/Paginator/index.tsx +20 -0
  126. package/src/theme/DocItem/TOC/Desktop/index.tsx +19 -0
  127. package/src/theme/DocItem/TOC/Mobile/index.tsx +22 -0
  128. package/src/theme/DocItem/TOC/Mobile/styles.module.css +26 -0
  129. package/src/theme/DocItem/index.tsx +23 -0
  130. package/src/theme/DocPaginator/index.tsx +46 -0
  131. package/src/theme/DocRoot/Layout/Main/index.tsx +31 -0
  132. package/src/theme/DocRoot/Layout/Main/styles.module.css +23 -0
  133. package/src/theme/DocRoot/Layout/Sidebar/ExpandButton/index.tsx +36 -0
  134. package/src/theme/DocRoot/Layout/Sidebar/ExpandButton/styles.module.css +29 -0
  135. package/src/theme/DocRoot/Layout/Sidebar/index.tsx +79 -0
  136. package/src/theme/DocRoot/Layout/Sidebar/styles.module.css +34 -0
  137. package/src/theme/DocRoot/Layout/index.tsx +32 -0
  138. package/src/theme/DocRoot/Layout/styles.module.css +11 -0
  139. package/src/theme/DocRoot/index.tsx +29 -0
  140. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +34 -0
  141. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +42 -0
  142. package/src/theme/DocSidebar/Desktop/Content/index.tsx +56 -0
  143. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +18 -0
  144. package/src/theme/DocSidebar/Desktop/index.tsx +36 -0
  145. package/src/theme/DocSidebar/Desktop/styles.module.css +39 -0
  146. package/src/theme/DocSidebar/Mobile/index.tsx +49 -0
  147. package/src/theme/DocSidebar/index.tsx +25 -0
  148. package/src/theme/DocSidebarItem/Category/index.tsx +309 -0
  149. package/src/theme/DocSidebarItem/Category/styles.module.css +35 -0
  150. package/src/theme/DocSidebarItem/Html/index.tsx +30 -0
  151. package/src/theme/DocSidebarItem/Html/styles.module.css +8 -0
  152. package/src/theme/DocSidebarItem/Link/index.tsx +62 -0
  153. package/src/theme/DocSidebarItem/Link/styles.module.css +13 -0
  154. package/src/theme/DocSidebarItem/index.tsx +19 -0
  155. package/src/theme/DocSidebarItems/index.tsx +24 -0
  156. package/src/theme/DocTagDocListPage/index.tsx +113 -0
  157. package/src/theme/DocTagsListPage/index.tsx +52 -0
  158. package/src/theme/DocVersionBadge/index.tsx +29 -0
  159. package/src/theme/DocVersionBanner/index.tsx +171 -0
  160. package/src/theme/DocVersionRoot/index.tsx +46 -0
  161. package/src/theme/DocsRoot/index.tsx +17 -0
  162. package/src/theme/EditMetaRow/index.tsx +31 -0
  163. package/src/theme/EditMetaRow/styles.module.css +19 -0
  164. package/src/theme/EditThisPage/index.tsx +21 -0
  165. package/src/theme/ErrorPageContent.tsx +38 -0
  166. package/src/theme/Footer/Copyright/index.tsx +15 -0
  167. package/src/theme/Footer/Layout/index.tsx +42 -0
  168. package/src/theme/Footer/LinkItem/index.tsx +31 -0
  169. package/src/theme/Footer/Links/MultiColumn/index.tsx +53 -0
  170. package/src/theme/Footer/Links/Simple/index.tsx +38 -0
  171. package/src/theme/Footer/Links/index.tsx +16 -0
  172. package/src/theme/Footer/Logo/index.tsx +41 -0
  173. package/src/theme/Footer/Logo/styles.module.css +11 -0
  174. package/src/theme/Footer/index.tsx +28 -0
  175. package/src/theme/Heading/index.tsx +50 -0
  176. package/src/theme/Heading/styles.module.css +17 -0
  177. package/src/theme/Homepage/index.tsx +178 -0
  178. package/src/theme/Icon/AI/index.tsx +21 -0
  179. package/src/theme/Icon/AWS/index.tsx +22 -0
  180. package/src/theme/Icon/Arrow/index.tsx +15 -0
  181. package/src/theme/Icon/Azure/index.tsx +28 -0
  182. package/src/theme/Icon/Changelog/index.tsx +26 -0
  183. package/src/theme/Icon/ChatBubble/index.tsx +29 -0
  184. package/src/theme/Icon/ChatBubbles/index.tsx +42 -0
  185. package/src/theme/Icon/Close/index.tsx +21 -0
  186. package/src/theme/Icon/Cog/index.tsx +45 -0
  187. package/src/theme/Icon/Copy/index.tsx +15 -0
  188. package/src/theme/Icon/DarkMode/index.tsx +15 -0
  189. package/src/theme/Icon/Edit/index.tsx +24 -0
  190. package/src/theme/Icon/Edit/styles.module.css +6 -0
  191. package/src/theme/Icon/Envelope/index.tsx +33 -0
  192. package/src/theme/Icon/ExternalLink/index.tsx +30 -0
  193. package/src/theme/Icon/ExternalLink/styles.module.css +5 -0
  194. package/src/theme/Icon/Fusion/index.tsx +32 -0
  195. package/src/theme/Icon/GoogleCloud/index.tsx +56 -0
  196. package/src/theme/Icon/Home/index.tsx +15 -0
  197. package/src/theme/Icon/Language/index.tsx +24 -0
  198. package/src/theme/Icon/LightMode/index.tsx +15 -0
  199. package/src/theme/Icon/MCP/index.tsx +84 -0
  200. package/src/theme/Icon/Menu/index.tsx +29 -0
  201. package/src/theme/Icon/MultiQC/index.tsx +25 -0
  202. package/src/theme/Icon/Nextflow/index.tsx +25 -0
  203. package/src/theme/Icon/QuestionMark/index.tsx +46 -0
  204. package/src/theme/Icon/SeqeraCloud/index.tsx +35 -0
  205. package/src/theme/Icon/SeqeraEnterprise/index.tsx +372 -0
  206. package/src/theme/Icon/SeqeraLogo/index.tsx +22 -0
  207. package/src/theme/Icon/ServiceStatus/index.tsx +101 -0
  208. package/src/theme/Icon/Sidebar/index.tsx +8 -0
  209. package/src/theme/Icon/Socials/Bluesky/index.tsx +23 -0
  210. package/src/theme/Icon/Socials/Bluesky/styles.module.css +9 -0
  211. package/src/theme/Icon/Socials/Default/index.tsx +28 -0
  212. package/src/theme/Icon/Socials/Email/index.tsx +23 -0
  213. package/src/theme/Icon/Socials/GitHub/index.tsx +24 -0
  214. package/src/theme/Icon/Socials/GitHub/styles.module.css +9 -0
  215. package/src/theme/Icon/Socials/Instagram/index.tsx +23 -0
  216. package/src/theme/Icon/Socials/Instagram/styles.module.css +9 -0
  217. package/src/theme/Icon/Socials/LinkedIn/index.tsx +23 -0
  218. package/src/theme/Icon/Socials/LinkedIn/styles.module.css +9 -0
  219. package/src/theme/Icon/Socials/Mastodon/index.tsx +40 -0
  220. package/src/theme/Icon/Socials/StackOverflow/index.tsx +25 -0
  221. package/src/theme/Icon/Socials/Threads/index.tsx +25 -0
  222. package/src/theme/Icon/Socials/Threads/styles.module.css +9 -0
  223. package/src/theme/Icon/Socials/Twitch/index.tsx +32 -0
  224. package/src/theme/Icon/Socials/Twitter/index.tsx +22 -0
  225. package/src/theme/Icon/Socials/X/index.tsx +24 -0
  226. package/src/theme/Icon/Socials/X/styles.module.css +9 -0
  227. package/src/theme/Icon/Socials/YouTube/index.tsx +22 -0
  228. package/src/theme/Icon/Success/index.tsx +15 -0
  229. package/src/theme/Icon/SystemColorMode/index.tsx +15 -0
  230. package/src/theme/Icon/Wave/index.tsx +32 -0
  231. package/src/theme/Icon/WordWrap/index.tsx +15 -0
  232. package/src/theme/LastUpdated/index.tsx +91 -0
  233. package/src/theme/Layout/Provider/index.tsx +26 -0
  234. package/src/theme/Layout/index.tsx +59 -0
  235. package/src/theme/Layout/styles.module.css +23 -0
  236. package/src/theme/Logo/index.tsx +78 -0
  237. package/src/theme/MDXComponents/A/index.tsx +16 -0
  238. package/src/theme/MDXComponents/Button/index.tsx +43 -0
  239. package/src/theme/MDXComponents/Code.tsx +26 -0
  240. package/src/theme/MDXComponents/Details.tsx +26 -0
  241. package/src/theme/MDXComponents/Heading.tsx +9 -0
  242. package/src/theme/MDXComponents/Img/index.tsx +23 -0
  243. package/src/theme/MDXComponents/Img/styles.module.css +5 -0
  244. package/src/theme/MDXComponents/Li.tsx +17 -0
  245. package/src/theme/MDXComponents/Pre.tsx +10 -0
  246. package/src/theme/MDXComponents/Ul/index.tsx +25 -0
  247. package/src/theme/MDXComponents/Ul/styles.module.css +9 -0
  248. package/src/theme/MDXComponents/index.tsx +47 -0
  249. package/src/theme/MDXContent/index.tsx +10 -0
  250. package/src/theme/MDXPage/index.tsx +87 -0
  251. package/src/theme/MDXPage/styles.module.css +5 -0
  252. package/src/theme/Mermaid.tsx +11 -0
  253. package/src/theme/Navbar/ColorModeToggle/index.tsx +29 -0
  254. package/src/theme/Navbar/ColorModeToggle/styles.module.css +5 -0
  255. package/src/theme/Navbar/Content/index.tsx +152 -0
  256. package/src/theme/Navbar/Content/styles.module.css +19 -0
  257. package/src/theme/Navbar/Layout/index.tsx +59 -0
  258. package/src/theme/Navbar/Layout/styles.module.css +9 -0
  259. package/src/theme/Navbar/Logo/index.tsx +14 -0
  260. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +37 -0
  261. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +72 -0
  262. package/src/theme/Navbar/MobileSidebar/Layout/styles.module.css +11 -0
  263. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +90 -0
  264. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +34 -0
  265. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  266. package/src/theme/Navbar/MobileSidebar/index.tsx +28 -0
  267. package/src/theme/Navbar/Search/index.tsx +15 -0
  268. package/src/theme/Navbar/Search/styles.module.css +22 -0
  269. package/src/theme/Navbar/Submenu/SubmenuLinks.tsx +136 -0
  270. package/src/theme/Navbar/Submenu/index.tsx +84 -0
  271. package/src/theme/Navbar/Submenu/styles.module.css +82 -0
  272. package/src/theme/Navbar/index.tsx +13 -0
  273. package/src/theme/NavbarItem/ComponentTypes.tsx +27 -0
  274. package/src/theme/NavbarItem/DefaultNavbarItem/Desktop/index.tsx +29 -0
  275. package/src/theme/NavbarItem/DefaultNavbarItem/Mobile/index.tsx +18 -0
  276. package/src/theme/NavbarItem/DefaultNavbarItem/index.tsx +23 -0
  277. package/src/theme/NavbarItem/DocNavbarItem.tsx +38 -0
  278. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +33 -0
  279. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +189 -0
  280. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +22 -0
  281. package/src/theme/NavbarItem/DropdownNavbarItem/Desktop/index.tsx +81 -0
  282. package/src/theme/NavbarItem/DropdownNavbarItem/Mobile/index.tsx +161 -0
  283. package/src/theme/NavbarItem/DropdownNavbarItem/Mobile/styles.module.css +5 -0
  284. package/src/theme/NavbarItem/DropdownNavbarItem/index.tsx +14 -0
  285. package/src/theme/NavbarItem/HtmlNavbarItem.tsx +27 -0
  286. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx +128 -0
  287. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +6 -0
  288. package/src/theme/NavbarItem/NavbarNavLink.tsx +69 -0
  289. package/src/theme/NavbarItem/SearchNavbarItem.tsx +21 -0
  290. package/src/theme/NavbarItem/index.tsx +23 -0
  291. package/src/theme/NotFound/Content/index.tsx +34 -0
  292. package/src/theme/NotFound/index.tsx +22 -0
  293. package/src/theme/PaginatorNavLink/index.tsx +21 -0
  294. package/src/theme/SearchBar.tsx +8 -0
  295. package/src/theme/SearchMetadata/index.tsx +38 -0
  296. package/src/theme/SiteMetadata/index.tsx +153 -0
  297. package/src/theme/SkipToContent/index.tsx +9 -0
  298. package/src/theme/SkipToContent/styles.module.css +16 -0
  299. package/src/theme/TOC/index.tsx +26 -0
  300. package/src/theme/TOC/styles.module.css +23 -0
  301. package/src/theme/TOCCollapsible/CollapseButton/index.tsx +30 -0
  302. package/src/theme/TOCCollapsible/CollapseButton/styles.module.css +27 -0
  303. package/src/theme/TOCCollapsible/index.tsx +42 -0
  304. package/src/theme/TOCCollapsible/styles.module.css +26 -0
  305. package/src/theme/TOCInline/index.tsx +25 -0
  306. package/src/theme/TOCInline/styles.module.css +7 -0
  307. package/src/theme/TOCItems/Tree.tsx +40 -0
  308. package/src/theme/TOCItems/index.tsx +56 -0
  309. package/src/theme/TabItem/index.tsx +22 -0
  310. package/src/theme/TabItem/styles.module.css +5 -0
  311. package/src/theme/Tabs/index.tsx +167 -0
  312. package/src/theme/Tabs/styles.module.css +9 -0
  313. package/src/theme/Tag/index.tsx +30 -0
  314. package/src/theme/Tag/styles.module.css +65 -0
  315. package/src/theme/TagsListByLetter/index.tsx +40 -0
  316. package/src/theme/TagsListByLetter/styles.module.css +6 -0
  317. package/src/theme/TagsListInline/index.tsx +30 -0
  318. package/src/theme/TagsListInline/styles.module.css +10 -0
  319. package/src/theme/ThemeProvider/TitleFormatter/index.tsx +22 -0
  320. package/src/theme/ThemeProvider/index.tsx +9 -0
  321. package/src/theme/ThemedImage/index.tsx +21 -0
  322. package/src/theme/ThemedImage/styles.module.css +13 -0
  323. package/src/theme/pages/Home/index.tsx +19 -0
  324. package/src/theme/prism-include-languages.ts +39 -0
  325. package/src/theme-seqera.d.ts +2277 -0
  326. package/src/translations.ts +240 -0
  327. package/tailwind.config.js +7 -0
@@ -0,0 +1,34 @@
1
+
2
+
3
+ :root {
4
+ --docusaurus-blog-social-icon-size: 1rem;
5
+ }
6
+
7
+ .authorSocials {
8
+ /*
9
+ This ensures that container takes height even if there's no social link
10
+ This keeps author names aligned even if only some have socials
11
+ */
12
+ height: var(--docusaurus-blog-social-icon-size);
13
+
14
+ display: flex;
15
+ flex-wrap: wrap;
16
+ align-items: center;
17
+ line-height: 0;
18
+ overflow: hidden;
19
+ line-clamp: 1;
20
+ -webkit-line-clamp: 1;
21
+ -webkit-box-orient: vertical;
22
+ }
23
+
24
+ .authorSocialLink {
25
+ height: var(--docusaurus-blog-social-icon-size);
26
+ width: var(--docusaurus-blog-social-icon-size);
27
+ line-height: 0;
28
+ margin-right: 0.4rem;
29
+ }
30
+
31
+ .authorSocialIcon {
32
+ width: var(--docusaurus-blog-social-icon-size);
33
+ height: var(--docusaurus-blog-social-icon-size);
34
+ }
@@ -0,0 +1,98 @@
1
+
2
+
3
+ import React, {type ReactNode} from 'react';
4
+ import clsx from 'clsx';
5
+ import Link, {type Props as LinkProps} from '@docusaurus/Link';
6
+ import AuthorSocials from '@theme/Blog/Components/Author/Socials';
7
+ import type {Props} from '@theme/Blog/Components/Author';
8
+ import Heading from '@theme/Heading';
9
+ import styles from './styles.module.css';
10
+
11
+ function MaybeLink(props: LinkProps): ReactNode {
12
+ if (props.href) {
13
+ return <Link {...props} />;
14
+ }
15
+ return <>{props.children}</>;
16
+ }
17
+
18
+ function AuthorTitle({title}: {title: string}) {
19
+ return (
20
+ <small className={styles.authorTitle} title={title}>
21
+ {title}
22
+ </small>
23
+ );
24
+ }
25
+
26
+ function AuthorName({name, as}: {name: string; as: Props['as']}) {
27
+ if (!as) {
28
+ return (
29
+ <span className={styles.authorName} translate="no">
30
+ {name}
31
+ </span>
32
+ );
33
+ } else {
34
+ return (
35
+ <Heading as={as} className={styles.authorName} translate="no">
36
+ {name}
37
+ </Heading>
38
+ );
39
+ }
40
+ }
41
+
42
+ function AuthorBlogPostCount({count}: {count: number}) {
43
+ return <span className={clsx(styles.authorBlogPostCount)}>{count}</span>;
44
+ }
45
+
46
+ // Note: in the future we might want to have multiple "BlogAuthor" components
47
+ // Creating different display modes with the "as" prop may not be the best idea
48
+ // Explainer: https://kyleshevlin.com/prefer-multiple-compositions/
49
+ // For now, we almost use the same design for all cases, so it's good enough
50
+ export default function BlogAuthor({
51
+ as,
52
+ author,
53
+ className,
54
+ count,
55
+ }: Props): ReactNode {
56
+ const {name, title, url, imageURL, email, page} = author;
57
+ const link =
58
+ page?.permalink || url || (email && `mailto:${email}`) || undefined;
59
+
60
+ return (
61
+ <div
62
+ className={clsx(
63
+ 'avatar margin-bottom--sm',
64
+ className,
65
+ styles[`author-as-${as}`],
66
+ )}>
67
+ {imageURL && (
68
+ <MaybeLink href={link} className="avatar__photo-link">
69
+ <img
70
+ className={clsx('avatar__photo', styles.authorImage)}
71
+ src={imageURL}
72
+ alt={name}
73
+ />
74
+ </MaybeLink>
75
+ )}
76
+
77
+ {(name || title) && (
78
+ <div className={clsx('avatar__intro', styles.authorDetails)}>
79
+ <div className="avatar__name">
80
+ {name && (
81
+ <MaybeLink href={link}>
82
+ <AuthorName name={name} as={as} />
83
+ </MaybeLink>
84
+ )}
85
+ {count !== undefined && <AuthorBlogPostCount count={count} />}
86
+ </div>
87
+ {!!title && <AuthorTitle title={title} />}
88
+
89
+ {/*
90
+ We always render AuthorSocials even if there's none
91
+ This keeps other things aligned with flexbox layout
92
+ */}
93
+ <AuthorSocials author={author} />
94
+ </div>
95
+ )}
96
+ </div>
97
+ );
98
+ }
@@ -0,0 +1,69 @@
1
+
2
+
3
+ .authorImage {
4
+ --ifm-avatar-photo-size: 3.6rem;
5
+ }
6
+
7
+ .author-as-h1 .authorImage {
8
+ --ifm-avatar-photo-size: 7rem;
9
+ }
10
+
11
+ .author-as-h2 .authorImage {
12
+ --ifm-avatar-photo-size: 5.4rem;
13
+ }
14
+
15
+ .authorDetails {
16
+ display: flex;
17
+ flex-direction: column;
18
+ align-items: flex-start;
19
+ justify-content: space-around;
20
+ }
21
+
22
+ .authorName {
23
+ font-size: 1.1rem;
24
+ line-height: 1.1rem;
25
+ display: flex;
26
+ flex-direction: row;
27
+ }
28
+
29
+ .author-as-h1 .authorName {
30
+ font-size: 2.4rem;
31
+ line-height: 2.4rem;
32
+ display: inline;
33
+ }
34
+
35
+ .author-as-h2 .authorName {
36
+ font-size: 1.4rem;
37
+ line-height: 1.4rem;
38
+ display: inline;
39
+ }
40
+
41
+ .authorTitle {
42
+ font-size: 0.8rem;
43
+ line-height: 1rem;
44
+ display: -webkit-box;
45
+ overflow: hidden;
46
+ line-clamp: 1;
47
+ -webkit-line-clamp: 1;
48
+ -webkit-box-orient: vertical;
49
+ }
50
+
51
+ .author-as-h1 .authorTitle {
52
+ font-size: 1.2rem;
53
+ line-height: 1.6rem;
54
+ }
55
+
56
+ .author-as-h2 .authorTitle {
57
+ font-size: 1rem;
58
+ line-height: 1.3rem;
59
+ }
60
+
61
+ .authorBlogPostCount {
62
+ background: var(--ifm-color-secondary);
63
+ color: var(--ifm-color-black);
64
+ font-size: 0.8rem;
65
+ line-height: 1.2;
66
+ border-radius: var(--ifm-global-radius);
67
+ padding: 0.1rem 0.4rem;
68
+ margin-left: 0.3rem;
69
+ }
@@ -0,0 +1,57 @@
1
+
2
+ import React, {type ReactNode} from 'react';
3
+ import clsx from 'clsx';
4
+ import {
5
+ PageMetadata,
6
+ HtmlClassNameProvider,
7
+ ThemeClassNames,
8
+ } from '@docusaurus/theme-common';
9
+ import {translateBlogAuthorsListPageTitle} from '@docusaurus/theme-common/internal';
10
+ import BlogLayout from '@theme/BlogLayout';
11
+ import type {Props} from '@theme/Blog/Pages/BlogAuthorsListPage';
12
+ import SearchMetadata from '@theme/SearchMetadata';
13
+ import Heading from '@theme/Heading';
14
+ import Author from '@theme/Blog/Components/Author';
15
+ import type {AuthorItemProp} from '@docusaurus/plugin-content-blog';
16
+ import styles from './styles.module.css';
17
+
18
+ function AuthorListItem({author}: {author: AuthorItemProp}) {
19
+ return (
20
+ <li className={styles.authorListItem}>
21
+ <Author as="h2" author={author} count={author.count} />
22
+ </li>
23
+ );
24
+ }
25
+
26
+ function AuthorsList({authors}: {authors: Props['authors']}) {
27
+ return (
28
+ <section className={clsx('margin-vert--lg', styles.authorsListSection)}>
29
+ <ul>
30
+ {authors.map((author) => (
31
+ <AuthorListItem key={author.key} author={author} />
32
+ ))}
33
+ </ul>
34
+ </section>
35
+ );
36
+ }
37
+
38
+ export default function BlogAuthorsListPage({
39
+ authors,
40
+ sidebar,
41
+ }: Props): ReactNode {
42
+ const title: string = translateBlogAuthorsListPageTitle();
43
+ return (
44
+ <HtmlClassNameProvider
45
+ className={clsx(
46
+ ThemeClassNames.wrapper.blogPages,
47
+ ThemeClassNames.page.blogAuthorsListPage,
48
+ )}>
49
+ <PageMetadata title={title} />
50
+ <SearchMetadata tag="blog_authors_list" />
51
+ <BlogLayout sidebar={sidebar}>
52
+ <Heading as="h1">{title}</Heading>
53
+ <AuthorsList authors={authors} />
54
+ </BlogLayout>
55
+ </HtmlClassNameProvider>
56
+ );
57
+ }
@@ -0,0 +1,6 @@
1
+
2
+
3
+ .authorListItem {
4
+ list-style-type: none;
5
+ margin-bottom: 2rem;
6
+ }
@@ -0,0 +1,77 @@
1
+
2
+
3
+ import React, {type ReactNode} from 'react';
4
+ import clsx from 'clsx';
5
+ import {
6
+ PageMetadata,
7
+ HtmlClassNameProvider,
8
+ ThemeClassNames,
9
+ } from '@docusaurus/theme-common';
10
+ import {
11
+ useBlogAuthorPageTitle,
12
+ BlogAuthorsListViewAllLabel,
13
+ BlogAuthorNoPostsLabel,
14
+ } from '@docusaurus/theme-common/internal';
15
+ import Link from '@docusaurus/Link';
16
+ import {useBlogMetadata} from '@docusaurus/plugin-content-blog/client';
17
+ import BlogLayout from '@theme/BlogLayout';
18
+ import BlogListPaginator from '@theme/BlogListPaginator';
19
+ import SearchMetadata from '@theme/SearchMetadata';
20
+ import type {Props} from '@theme/Blog/Pages/BlogAuthorsPostsPage';
21
+ import BlogPostItems from '@theme/BlogPostItems';
22
+ import Author from '@theme/Blog/Components/Author';
23
+
24
+ function Metadata({author}: Props): ReactNode {
25
+ const title = useBlogAuthorPageTitle(author);
26
+ return (
27
+ <>
28
+ <PageMetadata title={title} />
29
+ <SearchMetadata tag="blog_authors_posts" />
30
+ </>
31
+ );
32
+ }
33
+
34
+ function ViewAllAuthorsLink() {
35
+ const {authorsListPath} = useBlogMetadata();
36
+ return (
37
+ <Link href={authorsListPath}>
38
+ <BlogAuthorsListViewAllLabel />
39
+ </Link>
40
+ );
41
+ }
42
+
43
+ function Content({author, items, sidebar, listMetadata}: Props): ReactNode {
44
+ return (
45
+ <BlogLayout sidebar={sidebar}>
46
+ <header className="margin-bottom--xl">
47
+ <Author as="h1" author={author} />
48
+ {author.description && <p>{author.description}</p>}
49
+ <ViewAllAuthorsLink />
50
+ </header>
51
+ {items.length === 0 ? (
52
+ <p>
53
+ <BlogAuthorNoPostsLabel />
54
+ </p>
55
+ ) : (
56
+ <>
57
+ <hr />
58
+ <BlogPostItems items={items} />
59
+ <BlogListPaginator metadata={listMetadata} />
60
+ </>
61
+ )}
62
+ </BlogLayout>
63
+ );
64
+ }
65
+
66
+ export default function BlogAuthorsPostsPage(props: Props): ReactNode {
67
+ return (
68
+ <HtmlClassNameProvider
69
+ className={clsx(
70
+ ThemeClassNames.wrapper.blogPages,
71
+ ThemeClassNames.page.blogAuthorsPostsPage,
72
+ )}>
73
+ <Metadata {...props} />
74
+ <Content {...props} />
75
+ </HtmlClassNameProvider>
76
+ );
77
+ }
@@ -0,0 +1,102 @@
1
+
2
+
3
+ import React, {type ReactNode} from 'react';
4
+ import Link from '@docusaurus/Link';
5
+ import {translate} from '@docusaurus/Translate';
6
+ import {PageMetadata} from '@docusaurus/theme-common';
7
+ import {useDateTimeFormat} from '@docusaurus/theme-common/internal';
8
+ import Layout from '@theme/Layout';
9
+ import type {ArchiveBlogPost, Props} from '@theme/BlogArchivePage';
10
+ import Heading from '@theme/Heading';
11
+
12
+ type YearProp = {
13
+ year: string;
14
+ posts: ArchiveBlogPost[];
15
+ };
16
+
17
+ function Year({year, posts}: YearProp) {
18
+ const dateTimeFormat = useDateTimeFormat({
19
+ day: 'numeric',
20
+ month: 'long',
21
+ timeZone: 'UTC',
22
+ });
23
+
24
+ const formatDate = (lastUpdated: string) =>
25
+ dateTimeFormat.format(new Date(lastUpdated));
26
+
27
+ return (
28
+ <>
29
+ <Heading as="h3" id={year}>
30
+ {year}
31
+ </Heading>
32
+ <ul>
33
+ {posts.map((post) => (
34
+ <li key={post.metadata.date}>
35
+ <Link to={post.metadata.permalink}>
36
+ {formatDate(post.metadata.date)} - {post.metadata.title}
37
+ </Link>
38
+ </li>
39
+ ))}
40
+ </ul>
41
+ </>
42
+ );
43
+ }
44
+
45
+ function YearsSection({years}: {years: YearProp[]}) {
46
+ return (
47
+ <section className="margin-vert--lg">
48
+ <div className="container">
49
+ <div className="row">
50
+ {years.map((_props, idx) => (
51
+ <div key={idx} className="col col--4 margin-vert--lg">
52
+ <Year {..._props} />
53
+ </div>
54
+ ))}
55
+ </div>
56
+ </div>
57
+ </section>
58
+ );
59
+ }
60
+
61
+ function listPostsByYears(blogPosts: readonly ArchiveBlogPost[]): YearProp[] {
62
+ const postsByYear = blogPosts.reduce((posts, post) => {
63
+ const year = post.metadata.date.split('-')[0]!;
64
+ const yearPosts = posts.get(year) ?? [];
65
+ return posts.set(year, [post, ...yearPosts]);
66
+ }, new Map<string, ArchiveBlogPost[]>());
67
+
68
+ return Array.from(postsByYear, ([year, posts]) => ({
69
+ year,
70
+ posts,
71
+ }));
72
+ }
73
+
74
+ export default function BlogArchive({archive}: Props): ReactNode {
75
+ const title = translate({
76
+ id: 'theme.blog.archive.title',
77
+ message: 'Archive',
78
+ description: 'The page & hero title of the blog archive page',
79
+ });
80
+ const description = translate({
81
+ id: 'theme.blog.archive.description',
82
+ message: 'Archive',
83
+ description: 'The page & hero description of the blog archive page',
84
+ });
85
+ const years = listPostsByYears(archive.blogPosts);
86
+ return (
87
+ <>
88
+ <PageMetadata title={title} description={description} />
89
+ <Layout>
90
+ <header className="hero hero--primary">
91
+ <div className="container">
92
+ <Heading as="h1" className="hero__title">
93
+ {title}
94
+ </Heading>
95
+ <p className="hero__subtitle">{description}</p>
96
+ </div>
97
+ </header>
98
+ <main>{years.length > 0 && <YearsSection years={years} />}</main>
99
+ </Layout>
100
+ </>
101
+ );
102
+ }
@@ -0,0 +1,31 @@
1
+
2
+
3
+ import React, {type ReactNode} from 'react';
4
+ import clsx from 'clsx';
5
+ import Layout from '@theme/Layout';
6
+ import BlogSidebar from '@theme/BlogSidebar';
7
+
8
+ import type {Props} from '@theme/BlogLayout';
9
+
10
+ export default function BlogLayout(props: Props): ReactNode {
11
+ const {sidebar, toc, children, ...layoutProps} = props;
12
+ const hasSidebar = sidebar && sidebar.items.length > 0;
13
+
14
+ return (
15
+ <Layout {...layoutProps}>
16
+ <div className="container">
17
+ <div className="row">
18
+ <BlogSidebar sidebar={sidebar} />
19
+ <main
20
+ className={clsx('prose__wrapper col p-6', {
21
+ 'col--7': hasSidebar,
22
+ 'col--9 col--offset-1': !hasSidebar,
23
+ })}>
24
+ {children}
25
+ </main>
26
+ {toc && <div className="col col--2">{toc}</div>}
27
+ </div>
28
+ </div>
29
+ </Layout>
30
+ );
31
+ }
@@ -0,0 +1,17 @@
1
+
2
+
3
+ import React, {type ReactNode} from 'react';
4
+ import Head from '@docusaurus/Head';
5
+ import {useBlogListPageStructuredData} from '@docusaurus/plugin-content-blog/client';
6
+ import type {Props} from '@theme/BlogListPage/StructuredData';
7
+
8
+ export default function BlogListPageStructuredData(props: Props): ReactNode {
9
+ const structuredData = useBlogListPageStructuredData(props);
10
+ return (
11
+ <Head>
12
+ <script type="application/ld+json">
13
+ {JSON.stringify(structuredData)}
14
+ </script>
15
+ </Head>
16
+ );
17
+ }
@@ -0,0 +1,57 @@
1
+
2
+
3
+ import React, {type ReactNode} from 'react';
4
+ import clsx from 'clsx';
5
+
6
+ import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
7
+ import {
8
+ PageMetadata,
9
+ HtmlClassNameProvider,
10
+ ThemeClassNames,
11
+ } from '@docusaurus/theme-common';
12
+ import BlogLayout from '@theme/BlogLayout';
13
+ import BlogListPaginator from '@theme/BlogListPaginator';
14
+ import SearchMetadata from '@theme/SearchMetadata';
15
+ import type {Props} from '@theme/BlogListPage';
16
+ import BlogPostItems from '@theme/BlogPostItems';
17
+ import BlogListPageStructuredData from '@theme/BlogListPage/StructuredData';
18
+
19
+ function BlogListPageMetadata(props: Props): ReactNode {
20
+ const {metadata} = props;
21
+ const {
22
+ siteConfig: {title: siteTitle},
23
+ } = useDocusaurusContext();
24
+ const {blogDescription, blogTitle, permalink} = metadata;
25
+ const isBlogOnlyMode = permalink === '/';
26
+ const title = isBlogOnlyMode ? siteTitle : blogTitle;
27
+ return (
28
+ <>
29
+ <PageMetadata title={title} description={blogDescription} />
30
+ <SearchMetadata tag="blog_posts_list" />
31
+ </>
32
+ );
33
+ }
34
+
35
+ function BlogListPageContent(props: Props): ReactNode {
36
+ const {metadata, items, sidebar} = props;
37
+ return (
38
+ <BlogLayout sidebar={sidebar}>
39
+ <BlogPostItems items={items} />
40
+ <BlogListPaginator metadata={metadata} />
41
+ </BlogLayout>
42
+ );
43
+ }
44
+
45
+ export default function BlogListPage(props: Props): ReactNode {
46
+ return (
47
+ <HtmlClassNameProvider
48
+ className={clsx(
49
+ ThemeClassNames.wrapper.blogPages,
50
+ ThemeClassNames.page.blogListPage,
51
+ )}>
52
+ <BlogListPageMetadata {...props} />
53
+ <BlogListPageStructuredData {...props} />
54
+ <BlogListPageContent {...props} />
55
+ </HtmlClassNameProvider>
56
+ );
57
+ }
@@ -0,0 +1,47 @@
1
+
2
+
3
+ import React, {type ReactNode} from 'react';
4
+ import Translate, {translate} from '@docusaurus/Translate';
5
+ import PaginatorNavLink from '@theme/PaginatorNavLink';
6
+ import type {Props} from '@theme/BlogListPaginator';
7
+
8
+ export default function BlogListPaginator(props: Props): ReactNode {
9
+ const {metadata} = props;
10
+ const {previousPage, nextPage} = metadata;
11
+
12
+ return (
13
+ <nav
14
+ className="pagination-nav"
15
+ aria-label={translate({
16
+ id: 'theme.blog.paginator.navAriaLabel',
17
+ message: 'Blog list page navigation',
18
+ description: 'The ARIA label for the blog pagination',
19
+ })}>
20
+ {previousPage && (
21
+ <PaginatorNavLink
22
+ permalink={previousPage}
23
+ title={
24
+ <Translate
25
+ id="theme.blog.paginator.newerEntries"
26
+ description="The label used to navigate to the newer blog posts page (previous page)">
27
+ Newer entries
28
+ </Translate>
29
+ }
30
+ />
31
+ )}
32
+ {nextPage && (
33
+ <PaginatorNavLink
34
+ permalink={nextPage}
35
+ title={
36
+ <Translate
37
+ id="theme.blog.paginator.olderEntries"
38
+ description="The label used to navigate to the older blog posts page (next page)">
39
+ Older entries
40
+ </Translate>
41
+ }
42
+ isNext
43
+ />
44
+ )}
45
+ </nav>
46
+ );
47
+ }
@@ -0,0 +1,11 @@
1
+
2
+
3
+ import React, {type ReactNode} from 'react';
4
+ import type {Props} from '@theme/BlogPostItem/Container';
5
+
6
+ export default function BlogPostItemContainer({
7
+ children,
8
+ className,
9
+ }: Props): ReactNode {
10
+ return <article className={className}>{children}</article>;
11
+ }
@@ -0,0 +1,23 @@
1
+
2
+
3
+ import React, {type ReactNode} from 'react';
4
+ import clsx from 'clsx';
5
+ import {blogPostContainerID} from '@docusaurus/utils-common';
6
+ import {useBlogPost} from '@docusaurus/plugin-content-blog/client';
7
+ import MDXContent from '@theme/MDXContent';
8
+ import type {Props} from '@theme/BlogPostItem/Content';
9
+
10
+ export default function BlogPostItemContent({
11
+ children,
12
+ className,
13
+ }: Props): ReactNode {
14
+ const {isBlogPostPage} = useBlogPost();
15
+ return (
16
+ <div
17
+ // This ID is used for the feed generation to locate the main content
18
+ id={isBlogPostPage ? blogPostContainerID : undefined}
19
+ className={clsx('markdown', className)}>
20
+ <MDXContent>{children}</MDXContent>
21
+ </div>
22
+ );
23
+ }
@@ -0,0 +1,39 @@
1
+
2
+
3
+ import React, {type ReactNode} from 'react';
4
+ import Translate, {translate} from '@docusaurus/Translate';
5
+ import Link from '@docusaurus/Link';
6
+ import type {Props} from '@theme/BlogPostItem/Footer/ReadMoreLink';
7
+
8
+ function ReadMoreLabel() {
9
+ return (
10
+ <b>
11
+ <Translate
12
+ id="theme.blog.post.readMore"
13
+ description="The label used in blog post item excerpts to link to full blog posts">
14
+ Read more
15
+ </Translate>
16
+ </b>
17
+ );
18
+ }
19
+
20
+ export default function BlogPostItemFooterReadMoreLink(
21
+ props: Props,
22
+ ): ReactNode {
23
+ const {blogPostTitle, ...linkProps} = props;
24
+ return (
25
+ <Link
26
+ aria-label={translate(
27
+ {
28
+ message: 'Read more about {title}',
29
+ id: 'theme.blog.post.readMoreLabel',
30
+ description:
31
+ 'The ARIA label for the link to full blog posts from excerpts',
32
+ },
33
+ {title: blogPostTitle},
34
+ )}
35
+ {...linkProps}>
36
+ <ReadMoreLabel />
37
+ </Link>
38
+ );
39
+ }