@seqera/docusaurus-theme-seqera 1.0.6 → 1.0.7

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 (76) hide show
  1. package/lib/index.js +1 -0
  2. package/lib/languages/prism-nextflow.d.ts +1 -0
  3. package/lib/languages/prism-nextflow.js +24 -0
  4. package/lib/main-styles.css +66 -42
  5. package/lib/styles/admonition-alerts.css +5 -1
  6. package/lib/styles/api.css +16 -0
  7. package/lib/styles/buttons.css +55 -0
  8. package/lib/styles/other-overrides.css +0 -5
  9. package/lib/styles/typography.css +25 -6
  10. package/lib/theme/Admonition/Layout/styles.module.css +2 -1
  11. package/lib/theme/BlogLayout/index.js +1 -1
  12. package/lib/theme/BlogPostItem/index.js +3 -1
  13. package/lib/theme/BlogPostPaginator/index.js +1 -1
  14. package/lib/theme/BlogSidebar/Content/index.js +3 -1
  15. package/lib/theme/BlogSidebar/Desktop/index.js +40 -4
  16. package/lib/theme/BlogSidebar/Desktop/rss.svg +1 -0
  17. package/lib/theme/BlogSidebar/Desktop/styles.module.css +11 -1
  18. package/lib/theme/BlogSidebar/Mobile/index.js +3 -3
  19. package/lib/theme/DocItem/Layout/index.js +2 -2
  20. package/lib/theme/DocItem/Layout/styles.module.css +1 -1
  21. package/lib/theme/DocRoot/Layout/Main/styles.module.css +4 -1
  22. package/lib/theme/DocSidebar/Desktop/Content/VersionSwitcher/index.js +11 -0
  23. package/lib/theme/DocSidebar/Desktop/Content/index.js +6 -2
  24. package/lib/theme/DocSidebar/Desktop/index.js +9 -1
  25. package/lib/theme/DocSidebarItem/Html/index.js +1 -1
  26. package/lib/theme/DocSidebarItem/Link/index.js +1 -1
  27. package/lib/theme/DocSidebarItem/index.js +3 -3
  28. package/lib/theme/Footer/Layout/index.js +1 -1
  29. package/lib/theme/Homepage/index.d.ts +1 -4
  30. package/lib/theme/Homepage/index.js +37 -43
  31. package/lib/theme/Navbar/Content/index.js +6 -12
  32. package/lib/theme/Navbar/Layout/index.js +1 -1
  33. package/lib/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +3 -3
  34. package/lib/theme/Navbar/Submenu/SubmenuLinks.js +1 -2
  35. package/lib/theme/NavbarItem/DefaultNavbarItem/Desktop/index.js +1 -1
  36. package/lib/theme/NotFound/Content/index.js +1 -3
  37. package/lib/theme/TOCItems/index.js +1 -1
  38. package/lib/theme/prism-include-languages.js +13 -2
  39. package/package.json +1 -2
  40. package/package.json.bak +66 -0
  41. package/src/index.ts +1 -0
  42. package/src/languages/prism-nextflow.js +24 -0
  43. package/src/main-styles.css +66 -42
  44. package/src/styles/admonition-alerts.css +5 -1
  45. package/src/styles/api.css +16 -0
  46. package/src/styles/buttons.css +55 -0
  47. package/src/styles/other-overrides.css +0 -5
  48. package/src/styles/typography.css +25 -6
  49. package/src/theme/Admonition/Layout/styles.module.css +2 -1
  50. package/src/theme/BlogLayout/index.tsx +1 -1
  51. package/src/theme/BlogPostItem/index.tsx +1 -1
  52. package/src/theme/BlogPostPaginator/index.tsx +1 -1
  53. package/src/theme/BlogSidebar/Content/index.tsx +1 -1
  54. package/src/theme/BlogSidebar/Desktop/index.tsx +41 -8
  55. package/src/theme/BlogSidebar/Desktop/rss.svg +1 -0
  56. package/src/theme/BlogSidebar/Desktop/styles.module.css +11 -1
  57. package/src/theme/BlogSidebar/Mobile/index.tsx +3 -3
  58. package/src/theme/DocItem/Layout/index.tsx +2 -2
  59. package/src/theme/DocItem/Layout/styles.module.css +1 -1
  60. package/src/theme/DocRoot/Layout/Main/styles.module.css +4 -1
  61. package/src/theme/DocSidebar/Desktop/Content/VersionSwitcher/index.tsx +10 -0
  62. package/src/theme/DocSidebar/Desktop/Content/index.tsx +2 -2
  63. package/src/theme/DocSidebar/Desktop/index.tsx +8 -1
  64. package/src/theme/DocSidebarItem/Html/index.tsx +1 -1
  65. package/src/theme/DocSidebarItem/Link/index.tsx +1 -1
  66. package/src/theme/DocSidebarItem/index.tsx +3 -3
  67. package/src/theme/Footer/Layout/index.tsx +1 -1
  68. package/src/theme/Homepage/index.tsx +37 -47
  69. package/src/theme/Navbar/Content/index.tsx +6 -12
  70. package/src/theme/Navbar/Layout/index.tsx +1 -1
  71. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +3 -3
  72. package/src/theme/Navbar/Submenu/SubmenuLinks.tsx +1 -2
  73. package/src/theme/NavbarItem/DefaultNavbarItem/Desktop/index.tsx +1 -1
  74. package/src/theme/NotFound/Content/index.tsx +1 -1
  75. package/src/theme/TOCItems/index.tsx +1 -1
  76. package/src/theme/prism-include-languages.ts +14 -2
package/lib/index.js CHANGED
@@ -54,6 +54,7 @@ function themeSeqera(context, options) {
54
54
  './nprogress',
55
55
  './styles/typography.css',
56
56
  './main-styles.css',
57
+ './styles/buttons.css',
57
58
  './styles/api.css',
58
59
  './styles/search.css',
59
60
  './styles/admonition-alerts.css',
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ (function (Prism) {
2
+ Prism.languages.nextflow = Prism.languages.extend('groovy', {
3
+ 'keyword': /\b(?:as|assert|boolean|byte|catch|char|def|double|else|enum|float|if|in|instanceof|int|long|new|return|short|throw|try|void|process|workflow|input|output|exec|shell|script|stub|include|from)\b/,
4
+ 'string': {
5
+ pattern: /"""(?:[^\\]|\\[\s\S])*?"""|'''(?:[^\\]|\\[\s\S])*?'''|'(?:\\.|[^\\'\r\n])*'|"(?:\\.|[^\\"\r\n])*"/,
6
+ greedy: true
7
+ },
8
+ 'operator': {
9
+ pattern: /(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,
10
+ lookbehind: true
11
+ },
12
+ 'punctuation': /\.+|[{}[\];(),:$]/
13
+ });
14
+
15
+ // Add support for Nextflow-specific directives
16
+ Prism.languages.insertBefore('nextflow', 'keyword', {
17
+ 'directive': {
18
+ pattern: /(?:^|\n)\s*(?:process|workflow|exec|shell|script|stub|container|conda|module|include|from|publishDir|input|output):/,
19
+ lookbehind: true,
20
+ alias: 'keyword'
21
+ }
22
+ });
23
+
24
+ }(Prism));
@@ -1,44 +1,11 @@
1
1
  @import 'tailwindcss';
2
- @plugin "daisyui";
3
2
  @config "../tailwind.config.js";
4
3
 
5
4
  /* Dark mode variant */
6
5
  @custom-variant dark (&:is([data-theme="dark"] *));
7
6
 
8
- /* Daisy UI settings */
9
- @plugin "daisyui/theme" {
10
- name: 'light';
11
- default: true;
12
- --color-primary: var(--color-nextflow-800);
13
- --color-secondary: var(--color-nextflow-500);
14
- --color-accent: #f59e0b;
15
- --color-neutral: #3d4451;
16
- --color-base-100: #ffffff;
17
- --color-base-200: #f2f2f2;
18
- --color-base-300: #e5e6e6;
19
- --color-info: #3abff8;
20
- --color-success: #36d399;
21
- --color-warning: #fbbd23;
22
- --color-error: #f87272;
23
- }
24
-
25
- @plugin "daisyui/theme" {
26
- name: 'dark';
27
- --color-primary: var(--color-nextflow-500);
28
- --color-secondary: var(--color-nextflow-500);
29
- --color-accent: #1fb2a5;
30
- --color-neutral: #191d24;
31
- --color-base-100: rgb(28, 28, 30);
32
- --color-base-200: #242933;
33
- --color-base-300: #20252e;
34
- --color-info: #3abff8;
35
- --color-success: #36d399;
36
- --color-warning: #fbbd23;
37
- --color-error: #f87272;
38
- }
39
-
40
7
  /***
41
- Infima is Docusaurus's built in CSS framework.
8
+ Infima is Docusaurus's built in CSS framework.
42
9
 
43
10
  - We have removed Infima using CSS Cascade Layers (https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-css-cascade-layers),
44
11
  - We do this so we can more seamless integrate Tailwind 4
@@ -47,14 +14,22 @@ Infima is Docusaurus's built in CSS framework.
47
14
  **/
48
15
  :root {
49
16
  /* the primary color is set to nextflow-900 because it's the most web accessible */
50
- --ifm-color-primary: var(--color-nextflow-900);
17
+ /* --ifm-color-primary: var(--color-nextflow-900);
51
18
  --ifm-color-primary-dark: var(--color-nextflow-700);
52
19
  --ifm-color-primary-darker: var(--color-nextflow-800);
53
20
  --ifm-color-primary-darkest: var(--color-nextflow-900);
54
21
  --ifm-color-primary-light: var(--color-nextflow-400);
55
22
  --ifm-color-primary-lighter: var(--color-nextflow-300);
56
23
  --ifm-color-primary-lightest: var(--color-nextflow-200);
57
- --ifm-badge-background-color: var(--color-nextflow-300);
24
+ --ifm-badge-background-color: var(--color-nextflow-300); */
25
+ --ifm-color-primary: var(--color-blu-600);
26
+ --ifm-color-primary-dark: var(--color-blu-700);
27
+ --ifm-color-primary-darker: var(--color-blu-800);
28
+ --ifm-color-primary-darkest: var(--color-blu-900);
29
+ --ifm-color-primary-light: var(--color-blu-400);
30
+ --ifm-color-primary-lighter: var(--color-blu-300);
31
+ --ifm-color-primary-lightest: var(--color-blu-200);
32
+ --ifm-badge-background-color: var(--color-blu-300);
58
33
  --ifm-navbar-sidebar-width: 100%;
59
34
  --ifm-code-font-size: 95%;
60
35
  --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
@@ -65,13 +40,11 @@ Infima is Docusaurus's built in CSS framework.
65
40
 
66
41
  --ifm-color-info: var(--color-multiqc-600);
67
42
 
68
-
69
43
  /* remove box shadow variables */
70
44
  --ifm-global-shadow-lw: none;
71
45
  --ifm-global-shadow-md: none;
72
46
  --ifm-global-shadow-tl: none;
73
47
 
74
-
75
48
  /* Nextflow (green) colors */
76
49
  --color-nextflow-100: #e2f7f3;
77
50
  --color-nextflow-200: #b6ece2;
@@ -177,6 +150,20 @@ Infima is Docusaurus's built in CSS framework.
177
150
  --color-blu-900: #2c3999;
178
151
  --color-blu-1000: #1e2768;
179
152
  --color-blu: #4256e7;
153
+
154
+ /* --color-primary: var(--color-nextflow-800);
155
+ --color-secondary: var(--color-nextflow-500); */
156
+ --color-primary: var(--color-blu-800);
157
+ --color-secondary: var(--color-blu-600);
158
+ --color-accent: var(--color-blu-200);
159
+ --color-neutral: #3d4451;
160
+ --color-base-100: #ffffff;
161
+ --color-base-200: #f2f2f2;
162
+ --color-base-300: #e5e6e6;
163
+ --color-info: var(--color-wave-600);
164
+ --color-success: var(--color-nextflow-500);
165
+ --color-warning: var(--color-multiqc-600);
166
+ --color-error: var(--color-fusion-600);
180
167
  }
181
168
 
182
169
  /* Dark Mode Support */
@@ -189,19 +176,43 @@ Infima is Docusaurus's built in CSS framework.
189
176
  /* Dark mode */
190
177
  [data-theme='dark'] {
191
178
  color-scheme: dark;
192
- --ifm-color-primary: var(--color-nextflow-300);
179
+ /* --ifm-color-primary: var(--color-nextflow-300);
193
180
  --ifm-color-primary-dark: var(--color-nextflow-400);
194
181
  --ifm-color-primary-darker: var(--color-nextflow-500);
195
182
  --ifm-color-primary-darkest: var(--color-nextflow-600);
196
183
  --ifm-color-primary-light: var(--color-nextflow-300);
197
184
  --ifm-color-primary-lighter: var(--color-nextflow-200);
198
- --ifm-color-primary-lightest: var(--color-nextflow-100);
185
+ --ifm-color-primary-lightest: var(--color-nextflow-100); */
186
+ --ifm-color-primary: var(--color-blu-300);
187
+ --ifm-color-primary-dark: var(--color-blu-400);
188
+ --ifm-color-primary-darker: var(--color-blu-500);
189
+ --ifm-color-primary-darkest: var(--color-blu-600);
190
+ --ifm-color-primary-light: var(--color-blu-300);
191
+ --ifm-color-primary-lighter: var(--color-blu-200);
192
+ --ifm-color-primary-lightest: var(--color-blu-100);
199
193
  --ifm-navbar-background-color: rgb(28, 28, 30);
200
194
  --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
201
195
  --ifm-code-color: var(--color-red-400);
202
196
  --ifm-color-content: #e3e3e3;
203
197
  --ifm-font-color-base: #e3e3e3;
204
198
  --ifm-heading-color: #e3e3e3;
199
+
200
+ /* dark mode overrides */
201
+ /* --color-primary: var(--color-nextflow-500);
202
+ --color-secondary: var(--color-nextflow-500); */
203
+ --color-primary: var(--color-blu-500);
204
+ --color-secondary: var(--color-blu-500);
205
+ --color-accent: var(--color-blu-300);
206
+ /* --color-accent: #1fb2a5; */
207
+ --color-neutral: #191d24;
208
+ --color-base-100: rgb(28, 28, 30);
209
+ --color-base-200: #242933;
210
+ --color-base-300: #20252e;
211
+
212
+ --color-info: var(--color-wave-300);
213
+ --color-success: var(--color-nextflow-300);
214
+ --color-warning: var(--color-multiqc-300);
215
+ --color-error: var(--color-fusion-300);
205
216
  }
206
217
 
207
218
  /* Seqera Tailwind */
@@ -350,7 +361,7 @@ Infima is Docusaurus's built in CSS framework.
350
361
  --color-product-900: #362c5d;
351
362
  --color-product-1000: #251e3f;
352
363
 
353
- /* Seqera "blue" Cclors */
364
+ /* Seqera "blue" Colors */
354
365
  --color-blu-100: #e8ebfc;
355
366
  --color-blu-200: #c6ccf8;
356
367
  --color-blu-300: #a1abf3;
@@ -363,6 +374,20 @@ Infima is Docusaurus's built in CSS framework.
363
374
  --color-blu-1000: #1e2768;
364
375
  --color-blu: #4256e7;
365
376
 
377
+ /* --color-primary: var(--color-nextflow-800);
378
+ --color-secondary: var(--color-nextflow-500); */
379
+ --color-primary: var(--color-blu-600);
380
+ --color-secondary: var(--color-blu-500);
381
+ --color-accent: #f59e0b;
382
+ --color-neutral: #3d4451;
383
+ --color-base-100: #ffffff;
384
+ --color-base-200: #f2f2f2;
385
+ --color-base-300: #e5e6e6;
386
+ --color-info: #3abff8;
387
+ --color-success: #36d399;
388
+ --color-warning: #fbbd23;
389
+ --color-error: #f87272;
390
+
366
391
  /* Border Radius */
367
392
  --radius-sm: 4px;
368
393
  --radius-md: 8px;
@@ -443,7 +468,6 @@ Infima is Docusaurus's built in CSS framework.
443
468
  border-radius: var(--ifm-badge-border-radius);
444
469
  padding: var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal);
445
470
  }
446
-
447
471
  .badge--primary {
448
472
  background-color: var(--color-wave-600);
449
473
  border-color: var(--color-wave-600);
@@ -4,12 +4,15 @@
4
4
  flex-direction: column;
5
5
  justify-content: flex-start;
6
6
  align-items: flex-start;
7
+ padding: 1rem;
8
+ font-size: 1rem;
9
+ line-height: 1.6;
7
10
  }
8
11
 
9
12
  .theme-admonition {
10
13
  margin: .75rem 0;
11
14
  p {
12
- line-height: 1.8;
15
+ line-height: 1.6;
13
16
  margin-top: 0;
14
17
  }
15
18
  }
@@ -53,6 +56,7 @@
53
56
  border-color: var(--color-multiqc-300);
54
57
  }
55
58
  [data-theme='dark'] {
59
+ .alert--warning,
56
60
  .theme-admonition-warning {
57
61
  background-color: var(--color-multiqc-1000);
58
62
  border-color: var(--color-multiqc-600);
@@ -27,6 +27,9 @@ Platform API style overrides
27
27
  .openapi__method-endpoint-path {
28
28
  margin-left: 0.5rem;
29
29
  }
30
+ .openapi-tabs__schema-item {
31
+ border: 1px solid var(--color-gray-300);
32
+ }
30
33
 
31
34
  pre,
32
35
  summary,
@@ -140,4 +143,17 @@ Platform API style overrides
140
143
  background: rgba(255, 255, 255, 0.4);
141
144
  border-color: rgba(255, 255, 255, 0.7);
142
145
  }
146
+ table,
147
+ code:not(pre code) {
148
+ background: none;
149
+ }
150
+ .alert--info {
151
+ background: none;
152
+ }
153
+ .openapi-tabs__schema-item {
154
+ border: 1px solid white;
155
+ }
156
+ .openapi-tabs__schema-item.active {
157
+ border: 1px solid var(--color-nextflow-200);
158
+ }
143
159
  }
@@ -0,0 +1,55 @@
1
+ .btn {
2
+ border-radius: 4px;
3
+ transition: all 0.3s;
4
+ /* background: var(--color-nextflow-500);
5
+ border: 1px solid var(--color-nextflow-700); */
6
+ color: white;
7
+ background: var(--color-blu);
8
+ border: 1px solid var(--color-blu);
9
+ font-weight: 500;
10
+ font-size: 0.9rem;
11
+ text-align: center;
12
+ padding: 0.3rem 1rem;
13
+ width: auto;
14
+ text-decoration: none !important;
15
+ &:hover {
16
+ /* background: var(--color-nextflow-600); */
17
+ background: var(--color-blu-700);
18
+ }
19
+ }
20
+
21
+ .btn-outline {
22
+ background: transparent;
23
+ border: 1px solid black;
24
+ color: black;
25
+ &:hover {
26
+ background: black;
27
+ color: white;
28
+ }
29
+ }
30
+
31
+ [data-theme='dark'] {
32
+ .btn {
33
+ color: black;
34
+ background: var(--color-blu-400);
35
+ border: 1px solid var(--color-blu-400);
36
+ &:hover {
37
+ /* background: var(--color-nextflow-600); */
38
+ background: var(--color-blu-700);
39
+ border: 1px solid var(--color-blu-700);
40
+ }
41
+ }
42
+ .btn-outline {
43
+ /* background: var(--color-nextflow-900);
44
+ border: 1px solid var(--color-nextflow-900); */
45
+ background: var(--color-gray-900);
46
+ border: 1px solid var(--color-gray-100);
47
+ color: white;
48
+ &:hover {
49
+ /* background: var(--color-nextflow-800); */
50
+ color: black;
51
+ background: var(--color-gray-400);
52
+ border: 1px solid var(--color-gray-500);
53
+ }
54
+ }
55
+ }
@@ -3,9 +3,4 @@ svg.excalidraw {
3
3
  max-width: 100%;
4
4
  height: 100%;
5
5
  margin-bottom: 2rem;
6
- }
7
-
8
- /* force height on searchbar to match button heights */
9
- .DocSearch-Button {
10
- height: 33px!important;
11
6
  }
@@ -18,7 +18,8 @@ h6 {
18
18
  border-bottom: 4px solid transparent;
19
19
  }
20
20
  .navbar__link--active {
21
- border-bottom: 4px solid var(--color-nextflow-600);
21
+ /* border-bottom: 4px solid var(--color-nextflow-600); */
22
+ border-bottom: 4px solid var(--color-blu-600);
22
23
  padding-bottom: 0.1rem;
23
24
  }
24
25
 
@@ -27,7 +28,7 @@ h6 {
27
28
  }
28
29
 
29
30
  /***
30
- main prose styles
31
+ main prose styles
31
32
 
32
33
  .prose__wrapper for main prose layout styles
33
34
  .theme-doc-markdown specifies open-api pages
@@ -36,13 +37,13 @@ main prose styles
36
37
 
37
38
  .prose__wrapper,
38
39
  .theme-doc-markdown {
40
+ max-width: 100%;
39
41
  /* H1 */
40
42
  h1 {
41
43
  font-size: 2rem;
42
44
  line-height: 1.5;
43
45
  margin-top: 0;
44
46
  margin-bottom: 1.5rem;
45
-
46
47
  @media (min-width: 997px) {
47
48
  font-size: 2.45rem;
48
49
  }
@@ -57,6 +58,7 @@ main prose styles
57
58
 
58
59
  @media (min-width: 997px) {
59
60
  font-size: 2.25rem;
61
+ line-height: 1.3;
60
62
  }
61
63
  }
62
64
 
@@ -195,6 +197,7 @@ main prose styles
195
197
  border: 1px solid var(--color-gray-400);
196
198
  filter: none;
197
199
  box-shadow: none;
200
+ word-break: break-all;
198
201
  &::before,
199
202
  &::after {
200
203
  content: none;
@@ -349,7 +352,7 @@ main prose styles
349
352
  background: #0000004d;
350
353
  }
351
354
  table {
352
- background: rgba(255, 255, 255, 0.2);
355
+ background: transparent;
353
356
  }
354
357
 
355
358
  table tr:nth-child(2n) {
@@ -367,7 +370,23 @@ main prose styles
367
370
 
368
371
  a {
369
372
  &:hover {
370
- color: var(--color-primary)!important;
373
+ color: var(--color-primary) !important;
374
+ }
375
+ }
376
+ }
377
+
378
+ .blog-wrapper {
379
+ h1,
380
+ h2,
381
+ h3,
382
+ h4,
383
+ h5,
384
+ h6 {
385
+ margin-top: 1rem;
386
+ margin-bottom: 0;
387
+
388
+ a {
389
+ text-decoration: none !important;
371
390
  }
372
391
  }
373
- }
392
+ }
@@ -10,11 +10,12 @@
10
10
  flex-direction: row;
11
11
  justify-content: items-center;
12
12
  align-items: center;
13
+ font-size: .875rem;
13
14
  }
14
15
 
15
16
  /* Heading alone without content (does not handle fragment content) */
16
17
  .admonitionHeading:not(:last-child) {
17
- margin-bottom: 0.3rem;
18
+ margin-bottom: .75rem;
18
19
  }
19
20
 
20
21
  .admonitionHeading code {
@@ -11,7 +11,7 @@ export default function BlogLayout(props) {
11
11
  <div className="row">
12
12
  <BlogSidebar sidebar={sidebar} />
13
13
  <main
14
- className={clsx('prose__wrapper col p-6', {
14
+ className={clsx('w-full prose__wrapper col max-w-3xl mx-auto', {
15
15
  'col--7': hasSidebar,
16
16
  'col--9 col--offset-1': !hasSidebar,
17
17
  })}>
@@ -8,7 +8,9 @@ import BlogPostItemFooter from '@theme/BlogPostItem/Footer';
8
8
  // apply a bottom margin in list view
9
9
  function useContainerClassName() {
10
10
  const {isBlogPostPage} = useBlogPost();
11
- return !isBlogPostPage ? 'margin-bottom--xl' : undefined;
11
+ return !isBlogPostPage
12
+ ? 'margin-bottom--xl border-b border-black/20 dark:border-white/20 pb-4'
13
+ : undefined;
12
14
  }
13
15
  export default function BlogPostItem({children, className}) {
14
16
  const containerClassName = useContainerClassName();
@@ -5,7 +5,7 @@ export default function BlogPostPaginator(props) {
5
5
  const {nextItem, prevItem} = props;
6
6
  return (
7
7
  <nav
8
- className="pagination-nav docusaurus-mt-lg"
8
+ className="pagination-nav docusaurus-mt-lg pb-6"
9
9
  aria-label={translate({
10
10
  id: 'theme.blog.post.paginator.navAriaLabel',
11
11
  message: 'Blog post page navigation',
@@ -5,7 +5,9 @@ import Heading from '@theme/Heading';
5
5
  function BlogSidebarYearGroup({year, yearGroupHeadingClassName, children}) {
6
6
  return (
7
7
  <div role="group">
8
- <Heading as="h3" className={yearGroupHeadingClassName}>
8
+ <Heading
9
+ as="h3"
10
+ className={`${yearGroupHeadingClassName} text-2xl no-underline!`}>
9
11
  {year}
10
12
  </Heading>
11
13
  {children}
@@ -5,8 +5,11 @@ import {
5
5
  useVisibleBlogSidebarItems,
6
6
  BlogSidebarItemList,
7
7
  } from '@docusaurus/plugin-content-blog/client';
8
+ import {useLocation} from '@docusaurus/router';
8
9
  import BlogSidebarContent from '@theme/BlogSidebar/Content';
10
+ import RssIcon from './rss.svg';
9
11
  import styles from './styles.module.css';
12
+ import Link from '@docusaurus/Link';
10
13
  const ListComponent = ({items}) => {
11
14
  return (
12
15
  <BlogSidebarItemList
@@ -20,21 +23,54 @@ const ListComponent = ({items}) => {
20
23
  };
21
24
  function BlogSidebarDesktop({sidebar}) {
22
25
  const items = useVisibleBlogSidebarItems(sidebar.items);
26
+ // Figure out if we're looking at a product tag or changelog entry
27
+ const location = useLocation();
28
+ const pathMatch = location.pathname.match(
29
+ /\/changelog\/(?:tags\/)?([^\/]+)(?:\/v[\d.]+.*)?/,
30
+ );
31
+ const product = pathMatch ? pathMatch[1] : null;
32
+ // Map product names to their correct documentation paths
33
+ const getProductPath = (product) => {
34
+ if (!product || product === 'tags' || product === 'page') return '/';
35
+ const mapping = {
36
+ 'seqera-cloud': '/platform-cloud',
37
+ 'seqera-enterprise': '/platform-enterprise',
38
+ };
39
+ return mapping[product] || `/${product}`;
40
+ };
41
+ // Filter the sidebar for just this product
42
+ const filteredItems = product
43
+ ? items.filter((item) => item.permalink.includes(`/changelog/${product}/`))
44
+ : items;
23
45
  return (
24
46
  <aside
25
- className={`${styles.sidebarWrapper} col col--3 border-r border-base-content/20`}>
47
+ className={`${styles.sidebarWrapper} col col--3 border-r border-black/20 dark:border-white/20`}>
26
48
  <nav
27
- className={clsx(styles.sidebar, 'thin-scrollbar p-6 ')}
49
+ className={clsx(styles.sidebar, 'thin-scrollbar ')}
28
50
  aria-label={translate({
29
51
  id: 'theme.blog.sidebar.navAriaLabel',
30
52
  message: 'Blog recent posts navigation',
31
53
  description: 'The ARIA label for recent posts in the blog sidebar',
32
54
  })}>
33
- <div className={clsx(styles.sidebarItemTitle, 'margin-bottom--md')}>
55
+ <div
56
+ className={clsx(
57
+ styles.sidebarItemTitle,
58
+ 'margin-bottom--md w-full flex justify-between items-center pr-4',
59
+ )}>
34
60
  {sidebar.title}
61
+
62
+ <Link
63
+ href="/changelog/rss.xml"
64
+ target="_blank"
65
+ rel="noopener noreferrer"
66
+ title="Subscribe to RSS"
67
+ className={styles.RssIconLink}>
68
+ <RssIcon />
69
+ </Link>
35
70
  </div>
71
+
36
72
  <BlogSidebarContent
37
- items={items}
73
+ items={filteredItems}
38
74
  ListComponent={ListComponent}
39
75
  yearGroupHeadingClassName={styles.yearGroupHeading}
40
76
  />
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m2.5 12A1.5 1.5 0 0 0 6 16.5A1.5 1.5 0 0 0 7.5 18A1.5 1.5 0 0 0 9 16.5A1.5 1.5 0 0 0 7.5 15M6 10v2a6 6 0 0 1 6 6h2a8 8 0 0 0-8-8m0-4v2a10 10 0 0 1 10 10h2A12 12 0 0 0 6 6"/></svg>
@@ -9,10 +9,20 @@
9
9
  }
10
10
 
11
11
  .sidebarItemTitle {
12
- font-size: var(--ifm-h3-font-size);
12
+ font-size: 1.8rem;
13
13
  font-weight: var(--ifm-font-weight-bold);
14
14
  }
15
15
 
16
+ .RssIconLink {
17
+ display: inline-block;
18
+ height: 24px;
19
+ & svg {
20
+ color: var(--color-multiqc-600);
21
+ width: 24px;
22
+ height: 24px;
23
+ }
24
+ }
25
+
16
26
  .sidebarItemList {
17
27
  font-size: 0.9rem;
18
28
  }
@@ -10,9 +10,9 @@ const ListComponent = ({items}) => {
10
10
  return (
11
11
  <BlogSidebarItemList
12
12
  items={items}
13
- ulClassName="menu__list"
14
- liClassName="menu__list-item"
15
- linkClassName="menu__link"
13
+ ulClassName="menu__list mx-6"
14
+ liClassName="menu__list-item mx-6"
15
+ linkClassName="menu__link mx-6"
16
16
  linkActiveClassName="menu__link--active"
17
17
  />
18
18
  );
@@ -43,8 +43,8 @@ export default function DocItemLayout({children}) {
43
43
  )}>
44
44
  <ContentVisibility metadata={metadata} />
45
45
  <DocVersionBanner />
46
- <div className={styles.docItemContainer}>
47
- <article className="max-w-3xl md:pr-4">
46
+ <div className={clsx(styles.docItemContainer, 'w-full')}>
47
+ <article className="max-w-3xl mx-auto md:pr-4">
48
48
  <DocBreadcrumbs />
49
49
  <DocVersionBadge />
50
50
  {docTOC.mobile}
@@ -7,6 +7,6 @@
7
7
 
8
8
  @media (min-width: 997px) {
9
9
  .docItemCol {
10
- max-width: 75% !important;
10
+ width: 75% !important;
11
11
  }
12
12
  }
@@ -3,7 +3,10 @@
3
3
  .docMainContainer {
4
4
  display: flex;
5
5
  width: 100%;
6
- padding: 0 1rem;
6
+ padding: 0;
7
+ @media (min-width: 997px) {
8
+ padding: 0 1rem;
9
+ }
7
10
  }
8
11
 
9
12
  @media (min-width: 997px) {
@@ -4,11 +4,22 @@ import {
4
4
  useDocsVersion,
5
5
  useDocsPreferredVersion,
6
6
  } from '@docusaurus/plugin-content-docs/client';
7
+ import {usePluginData} from '@docusaurus/useGlobalData';
7
8
  import {useLocation} from '@docusaurus/router';
8
9
  import Link from '@docusaurus/Link';
9
10
  const VersionSwitcher = ({isOpen, setIsOpen}) => {
10
11
  const dropdownRef = useRef(null);
11
12
  const location = useLocation();
13
+ // check if the plugin exists first
14
+ let pluginData;
15
+ try {
16
+ pluginData = usePluginData(
17
+ 'docusaurus-plugin-content-docs',
18
+ 'platform-enterprise',
19
+ );
20
+ } catch (e) {
21
+ return null;
22
+ }
12
23
  const {savePreferredVersionName} = useDocsPreferredVersion(
13
24
  'platform-enterprise',
14
25
  );
@@ -31,12 +31,16 @@ export default function DocSidebarDesktopContent({path, sidebar, className}) {
31
31
  description: 'The ARIA label for the sidebar navigation',
32
32
  })}
33
33
  className={clsx(
34
- 'menu thin-scrollbar w-full block font-normal mt-2',
34
+ 'menu thin-scrollbar w-full block font-normal mt-2 text-[.9rem]',
35
35
  styles.menu,
36
36
  showAnnouncementBar && styles.menuWithAnnouncementBar,
37
37
  className,
38
38
  )}>
39
- <ul className={clsx(ThemeClassNames.docs.docSidebarMenu, 'menu__list')}>
39
+ <ul
40
+ className={clsx(
41
+ ThemeClassNames.docs.docSidebarMenu,
42
+ 'menu__list px-2',
43
+ )}>
40
44
  <DocSidebarItems items={sidebar} activePath={path} level={1} />
41
45
  </ul>
42
46
  </nav>