@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
package/README.md ADDED
@@ -0,0 +1,26 @@
1
+ # Docusaurus Theme Classic
2
+
3
+ A custom Docusaurustheme for Seqera.
4
+
5
+ ## Installation
6
+
7
+ Add `docusaurus/theme-classic` to your package:
8
+
9
+ ```bash
10
+ npm i @seqeralabs/docusaurus-theme-seqera
11
+ # or
12
+ yarn add @seqeralabs/docusaurus-theme-seqera
13
+ ```
14
+
15
+ Modify your `docusaurus.config.js`:
16
+
17
+ ```diff
18
+ module.exports = {
19
+ ...
20
+ + themes: ['@seqeralabs/docusaurus-theme-seqera'],
21
+ ...
22
+ }
23
+ ```
24
+
25
+ ## Based on Docusaurus's Classic theme
26
+ See all original components from classic theme can be found [here](https://github.com/facebook/docusaurus/tree/main/packages/docusaurus-theme-classic/src/theme)
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@seqera/docusaurus-theme-seqera",
3
+ "version": "1.0.0",
4
+ "description": "Seqera docs theme for Docusaurus",
5
+ "author": "Seqera docs team <education@seqera.io>",
6
+ "license": "Apache-2.0",
7
+ "main": "lib/index.js",
8
+ "types": "src/theme-seqera.d.ts",
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "scripts": {
13
+ "build": "tsc --build && node ../../admin/scripts/copyUntypedFiles.js && prettier --config ../../.prettierrc --write \"lib/theme/**/*.js\"",
14
+ "watch": "run-p -c copy:watch build:watch",
15
+ "build:watch": "tsc --build --watch",
16
+ "copy:watch": "node ../../admin/scripts/copyUntypedFiles.js --watch"
17
+ },
18
+ "dependencies": {
19
+ "@docusaurus/core": "3.9.2",
20
+ "@docusaurus/logger": "3.9.2",
21
+ "@docusaurus/mdx-loader": "3.9.2",
22
+ "@docusaurus/module-type-aliases": "3.9.2",
23
+ "@docusaurus/plugin-content-blog": "3.9.2",
24
+ "@docusaurus/plugin-content-docs": "3.9.2",
25
+ "@docusaurus/plugin-content-pages": "3.9.2",
26
+ "@docusaurus/theme-common": "3.9.2",
27
+ "@docusaurus/theme-translations": "3.9.2",
28
+ "@docusaurus/types": "3.9.2",
29
+ "@docusaurus/utils": "3.9.2",
30
+ "@docusaurus/utils-common": "3.9.2",
31
+ "@docusaurus/utils-validation": "3.9.2",
32
+ "@mdx-js/react": "^3.0.0",
33
+ "@seqera/docusaurus-preset-seqera": "1.0.0",
34
+ "@tailwindcss/postcss": "^4.1.17",
35
+ "clsx": "^2.0.0",
36
+ "infima": "0.2.0-alpha.45",
37
+ "lodash": "^4.17.21",
38
+ "nprogress": "^0.2.0",
39
+ "postcss": "^8.5.6",
40
+ "prism-react-renderer": "^2.3.0",
41
+ "prismjs": "^1.29.0",
42
+ "raw-loader": "^4.0.2",
43
+ "react-router-dom": "^5.3.4",
44
+ "rtlcss": "^4.1.0",
45
+ "tailwindcss": "^4.1.17",
46
+ "tslib": "^2.6.0",
47
+ "utility-types": "^3.10.0"
48
+ },
49
+ "devDependencies": {
50
+ "@tailwindcss/typography": "^0.5.19",
51
+ "@types/nprogress": "^0.2.0",
52
+ "@types/prismjs": "^1.26.0",
53
+ "@types/rtlcss": "^3.5.1",
54
+ "daisyui": "^5.5.5",
55
+ "fs-extra": "^11.1.1",
56
+ "react-test-renderer": "^18.0.0",
57
+ "utility-types": "^3.10.0"
58
+ },
59
+ "peerDependencies": {
60
+ "react": "^18.0.0 || ^19.0.0",
61
+ "react-dom": "^18.0.0 || ^19.0.0"
62
+ },
63
+ "engines": {
64
+ "node": ">=20.0"
65
+ }
66
+ }
@@ -0,0 +1,433 @@
1
+
2
+
3
+ import type {SwizzleConfig} from '@docusaurus/types';
4
+
5
+ /* eslint sort-keys: "error" */
6
+
7
+ export default function getSwizzleConfig(): SwizzleConfig {
8
+ return {
9
+ components: {
10
+ 'Admonition/Icon': {
11
+ actions: {
12
+ eject: 'safe',
13
+ wrap: 'forbidden', // Can't wrap a folder
14
+ },
15
+ description: 'The folder containing all admonition icons',
16
+ },
17
+ 'Admonition/Icon/Danger': {
18
+ actions: {
19
+ eject: 'safe',
20
+ wrap: 'safe',
21
+ },
22
+ description: 'The admonition danger icon',
23
+ },
24
+ 'Admonition/Icon/Info': {
25
+ actions: {
26
+ eject: 'safe',
27
+ wrap: 'safe',
28
+ },
29
+ description: 'The admonition info icon',
30
+ },
31
+ 'Admonition/Icon/Note': {
32
+ actions: {
33
+ eject: 'safe',
34
+ wrap: 'safe',
35
+ },
36
+ description: 'The admonition note icon',
37
+ },
38
+ 'Admonition/Icon/Tip': {
39
+ actions: {
40
+ eject: 'safe',
41
+ wrap: 'safe',
42
+ },
43
+ description: 'The admonition tip icon',
44
+ },
45
+ 'Admonition/Icon/Warning': {
46
+ actions: {
47
+ eject: 'safe',
48
+ wrap: 'safe',
49
+ },
50
+ description: 'The admonition warning icon',
51
+ },
52
+ 'Admonition/Layout': {
53
+ actions: {
54
+ eject: 'safe',
55
+ wrap: 'safe',
56
+ },
57
+ description:
58
+ 'The standard admonition layout applied to all default admonition types',
59
+ },
60
+ 'Admonition/Type': {
61
+ actions: {
62
+ eject: 'safe',
63
+ wrap: 'forbidden',
64
+ },
65
+ description:
66
+ 'The folder containing all the admonition type components.',
67
+ },
68
+ 'Admonition/Type/Caution': {
69
+ actions: {
70
+ eject: 'safe',
71
+ wrap: 'safe',
72
+ },
73
+ description:
74
+ 'The component responsible for rendering a :::caution admonition type',
75
+ },
76
+ 'Admonition/Type/Danger': {
77
+ actions: {
78
+ eject: 'safe',
79
+ wrap: 'safe',
80
+ },
81
+ description:
82
+ 'The component responsible for rendering a :::danger admonition type',
83
+ },
84
+ 'Admonition/Type/Info': {
85
+ actions: {
86
+ eject: 'safe',
87
+ wrap: 'safe',
88
+ },
89
+ description:
90
+ 'The component responsible for rendering a :::info admonition type',
91
+ },
92
+ 'Admonition/Type/Note': {
93
+ actions: {
94
+ eject: 'safe',
95
+ wrap: 'safe',
96
+ },
97
+ description:
98
+ 'The component responsible for rendering a :::note admonition type',
99
+ },
100
+ 'Admonition/Type/Tip': {
101
+ actions: {
102
+ eject: 'safe',
103
+ wrap: 'safe',
104
+ },
105
+ description:
106
+ 'The component responsible for rendering a :::tip admonition type',
107
+ },
108
+ 'Admonition/Type/Warning': {
109
+ actions: {
110
+ eject: 'safe',
111
+ wrap: 'safe',
112
+ },
113
+ description:
114
+ 'The component responsible for rendering a :::warning admonition type',
115
+ },
116
+ 'Admonition/Types': {
117
+ actions: {
118
+ eject: 'safe',
119
+ // TODO the swizzle CLI should provide a way to wrap such objects
120
+ wrap: 'forbidden',
121
+ },
122
+ description:
123
+ 'The object mapping admonition type to a React component.\nUse it to add custom admonition type components, or replace existing ones.\nCan be ejected or wrapped (only manually, see our documentation).',
124
+ },
125
+ Blog: {
126
+ actions: {
127
+ // Forbidden because it's a parent folder, makes the CLI crash atm
128
+ eject: 'forbidden',
129
+ wrap: 'forbidden',
130
+ },
131
+ },
132
+ 'Blog/Components': {
133
+ actions: {
134
+ // Forbidden because it's a parent folder, makes the CLI crash atm
135
+ eject: 'forbidden',
136
+ wrap: 'forbidden',
137
+ },
138
+ },
139
+ 'Blog/Pages': {
140
+ actions: {
141
+ // Forbidden because it's a parent folder, makes the CLI crash atm
142
+ eject: 'forbidden',
143
+ wrap: 'forbidden',
144
+ },
145
+ },
146
+ CodeBlock: {
147
+ actions: {
148
+ eject: 'safe',
149
+ wrap: 'safe',
150
+ },
151
+ description:
152
+ 'The component used to render multi-line code blocks, generally used in Markdown files.',
153
+ },
154
+ 'CodeBlock/Content': {
155
+ actions: {
156
+ eject: 'unsafe',
157
+ wrap: 'unsafe',
158
+ },
159
+ description:
160
+ 'The folder containing components responsible for rendering different types of CodeBlock content.',
161
+ },
162
+ ColorModeToggle: {
163
+ actions: {
164
+ eject: 'safe',
165
+ wrap: 'safe',
166
+ },
167
+ description:
168
+ 'The color mode toggle to switch between light and dark mode.',
169
+ },
170
+ 'DocBreadcrumbs/Items': {
171
+ actions: {
172
+ eject: 'unsafe',
173
+ wrap: 'forbidden', // Can't wrap a folder
174
+ },
175
+ description:
176
+ 'The components responsible for rendering the breadcrumb items',
177
+ },
178
+ DocCardList: {
179
+ actions: {
180
+ eject: 'safe',
181
+ wrap: 'safe',
182
+ },
183
+ description:
184
+ 'The component responsible for rendering a list of sidebar items cards.\nNotable used on the category generated-index pages.',
185
+ },
186
+ 'DocItem/TOC': {
187
+ actions: {
188
+ // Forbidden because it's a parent folder, makes the CLI crash atm
189
+ // TODO the CLI should rather support --eject
190
+ // Subfolders can be swizzled
191
+ eject: 'forbidden',
192
+ wrap: 'forbidden',
193
+ },
194
+ description:
195
+ 'The DocItem TOC is not directly swizzle-able, but you can swizzle its sub-components.',
196
+ },
197
+ DocSidebar: {
198
+ actions: {
199
+ eject: 'unsafe', // Too much technical code in sidebar, not very safe atm
200
+ wrap: 'safe',
201
+ },
202
+ description: 'The sidebar component on docs pages',
203
+ },
204
+ Footer: {
205
+ actions: {
206
+ eject: 'safe',
207
+ wrap: 'safe',
208
+ },
209
+ description: "The footer component of your site's layout",
210
+ },
211
+ 'Footer/Copyright': {
212
+ actions: {
213
+ eject: 'safe',
214
+ wrap: 'safe',
215
+ },
216
+ description: 'The footer copyright',
217
+ },
218
+ 'Footer/Layout': {
219
+ actions: {
220
+ eject: 'safe',
221
+ wrap: 'safe',
222
+ },
223
+ description: 'The footer main layout component',
224
+ },
225
+ 'Footer/LinkItem': {
226
+ actions: {
227
+ eject: 'safe',
228
+ wrap: 'safe',
229
+ },
230
+ description: 'The footer link item component',
231
+ },
232
+ 'Footer/Links': {
233
+ actions: {
234
+ eject: 'safe',
235
+ wrap: 'safe',
236
+ },
237
+ description: 'The footer component rendering the footer links',
238
+ },
239
+ 'Footer/Links/MultiColumn': {
240
+ actions: {
241
+ eject: 'safe',
242
+ wrap: 'safe',
243
+ },
244
+ description:
245
+ 'The footer component rendering the footer links with a multi-column layout',
246
+ },
247
+ 'Footer/Links/Simple': {
248
+ actions: {
249
+ eject: 'safe',
250
+ wrap: 'safe',
251
+ },
252
+ description:
253
+ 'The footer component rendering the footer links with a simple layout (single row)',
254
+ },
255
+ 'Footer/Logo': {
256
+ actions: {
257
+ eject: 'safe',
258
+ wrap: 'safe',
259
+ },
260
+ description: 'The footer logo',
261
+ },
262
+ Icon: {
263
+ actions: {
264
+ // Forbidden because it's a parent folder, makes the CLI crash atm
265
+ // TODO the CLI should rather support --eject
266
+ // Subfolders can be swizzled
267
+ eject: 'forbidden',
268
+ wrap: 'forbidden',
269
+ },
270
+ description:
271
+ 'The Icon folder is not directly swizzle-able, but you can swizzle its sub-components.',
272
+ },
273
+ 'Icon/Arrow': {
274
+ actions: {
275
+ eject: 'safe',
276
+ wrap: 'safe',
277
+ },
278
+ description: 'The arrow icon component',
279
+ },
280
+ 'Icon/DarkMode': {
281
+ actions: {
282
+ eject: 'safe',
283
+ wrap: 'safe',
284
+ },
285
+ description: 'The dark mode icon component.',
286
+ },
287
+ 'Icon/Edit': {
288
+ actions: {
289
+ eject: 'safe',
290
+ wrap: 'safe',
291
+ },
292
+ description: 'The edit icon component',
293
+ },
294
+ 'Icon/LightMode': {
295
+ actions: {
296
+ eject: 'safe',
297
+ wrap: 'safe',
298
+ },
299
+ description: 'The light mode icon component.',
300
+ },
301
+ 'Icon/Menu': {
302
+ actions: {
303
+ eject: 'safe',
304
+ wrap: 'safe',
305
+ },
306
+ description: 'The menu icon component',
307
+ },
308
+ 'Icon/Socials': {
309
+ actions: {
310
+ // Forbidden because it's a parent folder, makes the CLI crash atm
311
+ // TODO the CLI should rather support --eject
312
+ // Subfolders can be swizzled
313
+ eject: 'forbidden',
314
+ wrap: 'forbidden',
315
+ },
316
+ description:
317
+ 'The Icon/Socials folder is not directly swizzle-able, but you can swizzle its sub-components.',
318
+ },
319
+ MDXComponents: {
320
+ actions: {
321
+ eject: 'safe',
322
+ wrap: 'forbidden', /// TODO allow wrapping objects???
323
+ },
324
+ description:
325
+ 'The MDX components to use for rendering MDX files. Meant to be ejected.',
326
+ },
327
+ 'MDXComponents/A': {
328
+ actions: {
329
+ eject: 'safe',
330
+ wrap: 'safe',
331
+ },
332
+ description:
333
+ 'The component used to render <a> tags and Markdown links in MDX',
334
+ },
335
+ 'MDXComponents/Code': {
336
+ actions: {
337
+ eject: 'safe',
338
+ wrap: 'safe',
339
+ },
340
+ description:
341
+ 'The component used to render <code> tags and Markdown code blocks in MDX',
342
+ },
343
+ 'MDXComponents/Details': {
344
+ actions: {
345
+ eject: 'safe',
346
+ wrap: 'safe',
347
+ },
348
+ description: 'The component used to render <details> tags in MDX',
349
+ },
350
+ 'MDXComponents/Heading': {
351
+ actions: {
352
+ eject: 'safe',
353
+ wrap: 'safe',
354
+ },
355
+ description:
356
+ 'The component used to render heading tags (<h1>, <h2>...) and Markdown headings in MDX',
357
+ },
358
+ 'MDXComponents/Img': {
359
+ actions: {
360
+ eject: 'safe',
361
+ wrap: 'safe',
362
+ },
363
+ description:
364
+ 'The component used to render <img> tags and Markdown images in MDX',
365
+ },
366
+ 'MDXComponents/Pre': {
367
+ actions: {
368
+ eject: 'safe',
369
+ wrap: 'safe',
370
+ },
371
+ description: 'The component used to render <pre> tags in MDX',
372
+ },
373
+ 'MDXComponents/Ul': {
374
+ actions: {
375
+ eject: 'safe',
376
+ wrap: 'safe',
377
+ },
378
+ description:
379
+ 'The component used to render <ul> tags and Markdown unordered lists in MDX',
380
+ },
381
+ MDXContent: {
382
+ actions: {
383
+ eject: 'safe',
384
+ wrap: 'safe',
385
+ },
386
+ description:
387
+ 'A component wrapping all MDX content and providing the MDXComponents to the MDX context',
388
+ },
389
+ 'NavbarItem/ComponentTypes': {
390
+ actions: {
391
+ eject: 'safe',
392
+ wrap: 'forbidden',
393
+ },
394
+ description:
395
+ 'The Navbar item components mapping. Can be ejected to add custom navbar item types.\nSee https://github.com/facebook/docusaurus/issues/7227.',
396
+ },
397
+ NotFound: {
398
+ actions: {
399
+ eject: 'safe',
400
+ wrap: 'safe',
401
+ },
402
+ description:
403
+ 'The global 404 page of your site, meant to be ejected and customized',
404
+ },
405
+ SearchBar: {
406
+ actions: {
407
+ eject: 'safe',
408
+ wrap: 'safe',
409
+ },
410
+ // TODO how to describe this one properly?
411
+ // By default it's an empty placeholder for the user to fill
412
+ description:
413
+ 'The search bar component of your site, appearing in the navbar.',
414
+ },
415
+ SkipToContent: {
416
+ actions: {
417
+ eject: 'safe',
418
+ wrap: 'safe',
419
+ },
420
+ description:
421
+ 'The component responsible for implementing the accessibility "skip to content" link (https://www.w3.org/TR/WCAG20-TECHS/G1.html)',
422
+ },
423
+ 'prism-include-languages': {
424
+ actions: {
425
+ eject: 'safe',
426
+ wrap: 'forbidden', // Not a component!
427
+ },
428
+ description:
429
+ 'The Prism languages to include for code block syntax highlighting. Meant to be ejected.',
430
+ },
431
+ },
432
+ };
433
+ }
package/src/index.ts ADDED
@@ -0,0 +1,154 @@
1
+ import path from 'path';
2
+ import rtlcss from 'rtlcss';
3
+ import {readDefaultCodeTranslationMessages} from '@docusaurus/theme-translations';
4
+ import {getTranslationFiles, translateThemeConfig} from './translations';
5
+ import {
6
+ getThemeInlineScript,
7
+ getAnnouncementBarInlineScript,
8
+ DataAttributeQueryStringInlineJavaScript,
9
+ } from './inlineScripts';
10
+ import {SvgSpriteDefs} from './inlineSvgSprites';
11
+ import type {LoadContext, Plugin, PostCssOptions} from '@docusaurus/types';
12
+ import type {Plugin as PostCssPlugin} from 'postcss';
13
+ import type {
14
+ PluginOptions,
15
+ ThemeConfig,
16
+ } from "@seqeralabs/docusaurus-theme-seqera";
17
+ import postcssImport from "postcss-import";
18
+
19
+ function getInfimaCSSFile(direction: string) {
20
+ return `infima/dist/css/default/default${
21
+ direction === 'rtl' ? '-rtl' : ''
22
+ }.css`;
23
+ }
24
+
25
+ function getPurgeCSSPath(siteDir?: string): string[] {
26
+ const purge = [
27
+ '!**/node_modules/**', // Exclude node_modules first
28
+ `${__dirname}/theme/**/*.{js,jsx,ts,tsx}`
29
+ ];
30
+ if (siteDir) {
31
+ purge.push(`${siteDir}/**/*.{js,jsx,ts,tsx,mdx}`);
32
+ }
33
+ return purge;
34
+ }
35
+
36
+ export default function themeSeqera(
37
+ context: LoadContext,
38
+ options: PluginOptions,
39
+ ): Plugin<undefined> {
40
+ const {
41
+ siteDir,
42
+ i18n: {currentLocale, localeConfigs},
43
+ siteStorage,
44
+ } = context;
45
+ const themeConfig = context.siteConfig.themeConfig as ThemeConfig;
46
+ const {
47
+ announcementBar,
48
+ colorMode,
49
+ prism: {additionalLanguages},
50
+ } = themeConfig;
51
+ const {customCss} = options;
52
+ const {direction} = localeConfigs[currentLocale]!;
53
+
54
+ return {
55
+ name: 'docusaurus-theme-seqera',
56
+
57
+ getThemePath() {
58
+ return '../lib/theme';
59
+ },
60
+
61
+ getTypeScriptThemePath() {
62
+ return '../src/theme';
63
+ },
64
+
65
+ getTranslationFiles: () => getTranslationFiles({themeConfig}),
66
+
67
+ translateThemeConfig: (params) =>
68
+ translateThemeConfig({
69
+ themeConfig: params.themeConfig as ThemeConfig,
70
+ translationFiles: params.translationFiles,
71
+ }),
72
+
73
+ getDefaultCodeTranslationMessages() {
74
+ return readDefaultCodeTranslationMessages({
75
+ locale: currentLocale,
76
+ name: 'theme-common',
77
+ });
78
+ },
79
+
80
+ getClientModules() {
81
+ const modules = [
82
+ require.resolve(getInfimaCSSFile(direction)),
83
+ './prism-include-languages',
84
+ './nprogress',
85
+ './styles/typography.css',
86
+ './main-styles.css',
87
+ './styles/api.css',
88
+ ];
89
+
90
+ modules.push(...customCss.map((p) => path.resolve(context.siteDir, p)));
91
+
92
+ return modules;
93
+ },
94
+
95
+ configureWebpack(__config, __isServer, {currentBundler}) {
96
+ const prismLanguages = additionalLanguages
97
+ .map((lang) => `prism-${lang}`)
98
+ .join('|');
99
+
100
+ return {
101
+ module: {
102
+ rules: [
103
+ {
104
+ resourceQuery: /raw/,
105
+ type: 'asset/source',
106
+ },
107
+ ],
108
+ },
109
+ plugins: [
110
+ new currentBundler.instance.ContextReplacementPlugin(
111
+ /prismjs[\\/]components$/,
112
+ new RegExp(`^./(${prismLanguages})$`),
113
+ ),
114
+ ],
115
+ };
116
+ },
117
+
118
+ configurePostCss(postCssOptions: PostCssOptions): PostCssOptions {
119
+ // Tailwind v4 auto-discovers content and config from CSS files
120
+ // Just add the postcss plugin
121
+ postCssOptions.plugins.unshift(
122
+ postcssImport(),
123
+ require('@tailwindcss/postcss')(),
124
+ );
125
+
126
+ return postCssOptions;
127
+ },
128
+
129
+ injectHtmlTags() {
130
+ return {
131
+ preBodyTags: [
132
+ {
133
+ tagName: 'svg',
134
+ attributes: {
135
+ style: 'display: none;',
136
+ },
137
+ innerHTML: SvgSpriteDefs,
138
+ },
139
+ {
140
+ tagName: 'script',
141
+ innerHTML: `
142
+ ${getThemeInlineScript({colorMode, siteStorage})}
143
+ ${DataAttributeQueryStringInlineJavaScript}
144
+ ${announcementBar ? getAnnouncementBarInlineScript({siteStorage}) : ''}
145
+ `,
146
+ },
147
+ ],
148
+ };
149
+ },
150
+ };
151
+ }
152
+
153
+ export {default as getSwizzleConfig} from './getSwizzleConfig';
154
+ export {validateThemeConfig, validateOptions} from './options';