@allurereport/web-classic 3.8.2 → 3.10.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 (70) hide show
  1. package/allurerc-dev.mjs +10 -0
  2. package/dist/multi/app-0638edd2daa9730d5153.js +2 -0
  3. package/dist/multi/manifest.json +23 -23
  4. package/dist/multi/styles-1f77adc2ac439c7a4c4b.css +284 -0
  5. package/dist/single/app-099b8ba247b13f22ce56.js +2 -0
  6. package/dist/single/manifest.json +1 -1
  7. package/package.json +18 -14
  8. package/src/assets/scss/code.scss +6 -6
  9. package/src/assets/scss/index.scss +8 -8
  10. package/src/components/Behaviors/styles.scss +38 -33
  11. package/src/components/Categories/styles.scss +38 -33
  12. package/src/components/HeaderActions/styles.scss +1 -1
  13. package/src/components/Modal/index.tsx +3 -1
  14. package/src/components/Modal/styles.scss +2 -2
  15. package/src/components/Packages/styles.scss +38 -33
  16. package/src/components/ReportBody/styles.scss +1 -1
  17. package/src/components/TestResult/TestResultError/styles.scss +4 -4
  18. package/src/components/TestResult/TestResultLinks/styles.scss +1 -1
  19. package/src/components/TestResult/TestResultNavigation/index.tsx +1 -1
  20. package/src/components/TestResult/TestResultPrevStatuses/styles.scss +5 -5
  21. package/src/components/TestResult/TestResultSeverity/styles.scss +4 -4
  22. package/src/components/TestResult/TestResultStatus/styles.scss +2 -35
  23. package/src/components/TestResult/TestResultSteps/attachment.tsx +24 -2
  24. package/src/components/TestResult/TestResultSteps/attachmentVideo.tsx +3 -1
  25. package/src/components/TestResult/TestResultSteps/styles.scss +35 -17
  26. package/src/components/TestResult/TestResultSteps/testResultAttachmentInfo.tsx +1 -0
  27. package/src/components/TestResult/TestResultSteps/testResultStep.tsx +2 -2
  28. package/src/components/TestResult/TestResultTabs/styles.scss +1 -1
  29. package/src/components/Tree/TreeHeader.tsx +1 -1
  30. package/src/components/Tree/styles.scss +38 -33
  31. package/src/index.html +3 -3
  32. package/src/index.js +1 -0
  33. package/src/utils/attachments.ts +6 -0
  34. package/test/dummy.test.ts +9 -1
  35. package/test/utils/treeFilters.test.ts +9 -1
  36. package/types.d.ts +1 -0
  37. package/webpack.config.js +8 -5
  38. package/dist/multi/app-f80e40e5d4a6b2591c77.js +0 -2
  39. package/dist/multi/styles-782990bab862d8dfb55a.css +0 -284
  40. package/dist/single/app-d95b6198c4d471014aa1.js +0 -2
  41. package/src/assets/scss/day.scss +0 -51
  42. package/src/assets/scss/fonts.scss +0 -3
  43. package/src/assets/scss/night.scss +0 -61
  44. package/src/assets/scss/palette.scss +0 -393
  45. package/src/assets/scss/theme.scss +0 -326
  46. package/src/assets/scss/typography.scss +0 -218
  47. package/src/assets/scss/vars.scss +0 -8
  48. /package/dist/multi/{10.app-f80e40e5d4a6b2591c77.js → 10.app-0638edd2daa9730d5153.js} +0 -0
  49. /package/dist/multi/{222.app-f80e40e5d4a6b2591c77.js → 222.app-0638edd2daa9730d5153.js} +0 -0
  50. /package/dist/multi/{26.app-f80e40e5d4a6b2591c77.js → 26.app-0638edd2daa9730d5153.js} +0 -0
  51. /package/dist/multi/{302.app-f80e40e5d4a6b2591c77.js → 302.app-0638edd2daa9730d5153.js} +0 -0
  52. /package/dist/multi/{304.app-f80e40e5d4a6b2591c77.js → 304.app-0638edd2daa9730d5153.js} +0 -0
  53. /package/dist/multi/{333.app-f80e40e5d4a6b2591c77.js → 333.app-0638edd2daa9730d5153.js} +0 -0
  54. /package/dist/multi/{369.app-f80e40e5d4a6b2591c77.js → 369.app-0638edd2daa9730d5153.js} +0 -0
  55. /package/dist/multi/{389.app-f80e40e5d4a6b2591c77.js → 389.app-0638edd2daa9730d5153.js} +0 -0
  56. /package/dist/multi/{498.app-f80e40e5d4a6b2591c77.js → 498.app-0638edd2daa9730d5153.js} +0 -0
  57. /package/dist/multi/{60.app-f80e40e5d4a6b2591c77.js → 60.app-0638edd2daa9730d5153.js} +0 -0
  58. /package/dist/multi/{643.app-f80e40e5d4a6b2591c77.js → 643.app-0638edd2daa9730d5153.js} +0 -0
  59. /package/dist/multi/{671.app-f80e40e5d4a6b2591c77.js → 671.app-0638edd2daa9730d5153.js} +0 -0
  60. /package/dist/multi/{725.app-f80e40e5d4a6b2591c77.js → 725.app-0638edd2daa9730d5153.js} +0 -0
  61. /package/dist/multi/{770.app-f80e40e5d4a6b2591c77.js → 770.app-0638edd2daa9730d5153.js} +0 -0
  62. /package/dist/multi/{848.app-f80e40e5d4a6b2591c77.js → 848.app-0638edd2daa9730d5153.js} +0 -0
  63. /package/dist/multi/{853.app-f80e40e5d4a6b2591c77.js → 853.app-0638edd2daa9730d5153.js} +0 -0
  64. /package/dist/multi/{872.app-f80e40e5d4a6b2591c77.js → 872.app-0638edd2daa9730d5153.js} +0 -0
  65. /package/dist/multi/{895.app-f80e40e5d4a6b2591c77.js → 895.app-0638edd2daa9730d5153.js} +0 -0
  66. /package/dist/multi/{920.app-f80e40e5d4a6b2591c77.js → 920.app-0638edd2daa9730d5153.js} +0 -0
  67. /package/dist/multi/{979.app-f80e40e5d4a6b2591c77.js → 979.app-0638edd2daa9730d5153.js} +0 -0
  68. /package/dist/multi/{991.app-f80e40e5d4a6b2591c77.js → 991.app-0638edd2daa9730d5153.js} +0 -0
  69. /package/dist/multi/{app-f80e40e5d4a6b2591c77.js.LICENSE.txt → app-0638edd2daa9730d5153.js.LICENSE.txt} +0 -0
  70. /package/dist/single/{app-d95b6198c4d471014aa1.js.LICENSE.txt → app-099b8ba247b13f22ce56.js.LICENSE.txt} +0 -0
@@ -13,7 +13,7 @@
13
13
  position: relative;
14
14
 
15
15
  &:not(:first-child) {
16
- border-top: 1px solid var(--on-border-muted);
16
+ border-top: 1px solid var(--color-border-subtle);
17
17
  }
18
18
  }
19
19
 
@@ -30,7 +30,7 @@
30
30
  padding: 4px 8px 4px 6px;
31
31
 
32
32
  &:hover {
33
- background: var(--bg-control-flat-medium);
33
+ background: var(--color-control-bg-ghost-hover);
34
34
  }
35
35
  }
36
36
 
@@ -64,15 +64,15 @@
64
64
  position: relative;
65
65
 
66
66
  &:hover {
67
- background: var(--bg-control-flat-medium);
67
+ background: var(--color-control-bg-ghost-hover);
68
68
  }
69
69
 
70
70
  &:not(:first-child) {
71
- border-top: 1px solid var(--on-border-muted);
71
+ border-top: 1px solid var(--color-border-subtle);
72
72
  }
73
73
  }
74
74
  .tree-item-marked {
75
- background: var(--bg-base-secondary);
75
+ background: var(--color-bg-secondary);
76
76
  }
77
77
 
78
78
  .item-title {
@@ -82,7 +82,7 @@
82
82
  .item-time {
83
83
  flex: none;
84
84
  margin-left: auto;
85
- color: var(--on-text-hint);
85
+ color: var(--color-text-muted);
86
86
  }
87
87
 
88
88
  .test-count {
@@ -94,7 +94,7 @@
94
94
  display: block;
95
95
  padding-left: 24px;
96
96
  margin-bottom: 12px;
97
- border-top: 1px solid var(--on-border-muted);
97
+ border-top: 1px solid var(--color-border-subtle);
98
98
  }
99
99
 
100
100
  .tree-item-icon {
@@ -103,71 +103,76 @@
103
103
  }
104
104
 
105
105
  .status-passed {
106
- color: var(--bg-support-castor);
106
+ color: var(--color-status-passed-bg);
107
107
  }
108
108
 
109
109
  .status-failed {
110
- color: var(--bg-support-capella);
110
+ color: var(--color-status-failed-bg);
111
111
  }
112
112
 
113
113
  .status-broken {
114
- color: var(--bg-support-atlas);
114
+ color: var(--color-status-broken-bg);
115
115
  }
116
116
 
117
117
  .status-skipped {
118
- color: var(--bg-support-rau);
118
+ color: var(--color-status-skipped-bg);
119
119
  }
120
120
 
121
121
  .status-unknown {
122
- color: var(--bg-support-skat);
122
+ color: var(--color-status-unknown-bg);
123
123
  }
124
124
 
125
125
  .tree-header-bar {
126
126
  display: inline-flex;
127
+ align-items: center;
128
+ gap: var(--space-0-25);
127
129
  font-family: var(--font-family);
128
130
  max-width: 140px;
129
131
  min-width: 46px;
130
- border-radius: 4px;
131
- height: 12px;
132
- background: var(--on-text-hint);
132
+ height: var(--space-2);
133
+ background: transparent;
133
134
  margin-left: auto;
134
- font-size: 10px;
135
- font-weight: var(--font-weight-extra-bold);
136
- line-height: 12px;
137
- overflow: hidden;
135
+ font-size: var(--font-size-xs);
136
+ font-weight: var(--font-weight-bold);
137
+ line-height: var(--line-height-s);
138
+ overflow: visible;
138
139
  }
139
140
 
140
141
  .tree-header-bar-item {
141
142
  display: flex;
142
- min-width: 16px;
143
+ align-items: center;
143
144
  justify-content: center;
145
+ box-sizing: border-box;
146
+ min-width: var(--space-2);
147
+ height: var(--space-2);
148
+ border-radius: var(--radius-pill);
144
149
  text-align: center;
145
- padding: 0 6px;
150
+ padding: 0 var(--space-0-75);
146
151
  flex-grow: 1;
147
152
 
148
153
  &.passed {
149
- background-color: var(--bg-support-castor);
150
- color: var(--constant-on-text-primary);
154
+ background-color: var(--color-status-passed-bg);
155
+ color: var(--color-status-passed-on-bg);
151
156
  }
152
157
 
153
158
  &.failed {
154
- background-color: var(--bg-support-capella);
155
- color: var(--constant-on-text-primary);
159
+ background-color: var(--color-status-failed-bg);
160
+ color: var(--color-status-failed-on-bg);
156
161
  }
157
162
 
158
163
  &.broken {
159
- background-color: var(--bg-support-atlas);
160
- color: var(--constant-on-text-primary);
164
+ background-color: var(--color-status-broken-bg);
165
+ color: var(--color-status-broken-on-bg);
161
166
  }
162
167
 
163
168
  &.skipped {
164
- background-color: var(--bg-support-rau);
165
- color: var(--constant-on-text-primary);
169
+ background-color: var(--color-status-skipped-bg);
170
+ color: var(--color-status-skipped-on-bg);
166
171
  }
167
172
 
168
173
  &.unknown {
169
- background-color: var(--bg-support-skat);
170
- color: var(--constant-on-text-primary);
174
+ background-color: var(--color-status-unknown-bg);
175
+ color: var(--color-status-unknown-on-bg);
171
176
  }
172
177
  }
173
178
 
@@ -177,7 +182,7 @@
177
182
  }
178
183
 
179
184
  .tree-empty-results-title {
180
- color: var(--on-text-secondary);
185
+ color: var(--color-text-secondary);
181
186
  }
182
187
 
183
188
  .tree-empty-results-clear-button {
@@ -186,7 +191,7 @@
186
191
 
187
192
  .order {
188
193
  user-select: none;
189
- color: var(--on-text-hint);
194
+ color: var(--color-text-muted);
190
195
  min-width: 16px;
191
196
  text-align: center;
192
197
  box-sizing: content-box;
@@ -28,7 +28,7 @@
28
28
  /* This is a hack because button do not have this state */
29
29
  .filtersBtnWithFilters > button::after {
30
30
  content: "";
31
- background-color: var(--bg-support-aldebaran);
31
+ background-color: var(--color-intent-primary-bg);
32
32
  width: 6px;
33
33
  height: 6px;
34
34
  border-radius: 100px;
@@ -1,6 +1,6 @@
1
1
  .test-result-error {
2
2
  padding: 8px 8px 12px 16px;
3
- background-color: var(--bg-alpha-capella);
3
+ background-color: var(--color-status-failed-bg-subtle);
4
4
  border-radius: 8px;
5
5
  position: relative;
6
6
  overflow: hidden;
@@ -14,7 +14,7 @@
14
14
  position: absolute;
15
15
  left: 0;
16
16
  top: 0;
17
- background: var(--on-support-capella);
17
+ background: var(--color-status-failed-border);
18
18
  }
19
19
  }
20
20
 
@@ -27,7 +27,7 @@
27
27
  .test-result-error-text {
28
28
  margin-bottom: 8px;
29
29
  padding-left: 8px;
30
- color: var(--on-support-capella);
30
+ color: var(--color-status-failed-text);
31
31
  }
32
32
 
33
33
  .test-result-error-trace {
@@ -50,6 +50,6 @@
50
50
  transition: background-color 300ms;
51
51
 
52
52
  &:hover {
53
- background: var(--bg-alpha-capella);
53
+ background: var(--color-status-failed-bg-subtle);
54
54
  }
55
55
  }
@@ -19,7 +19,7 @@
19
19
  }
20
20
 
21
21
  .test-result-link-text {
22
- color: var(--on-support-aldebaran);
22
+ color: var(--color-link-text);
23
23
  }
24
24
 
25
25
  .test-result-links-list {
@@ -44,7 +44,7 @@ export const TestResultNavigation: FunctionalComponent<TestResultNavigationProps
44
44
  return (
45
45
  <div className={styles["test-result-nav"]}>
46
46
  {fullName && <FullName />}
47
- {data && !testResult?.hidden && (
47
+ {data && !testResult?.isRetry && (
48
48
  <div className={styles["test-result-navigator"]}>
49
49
  <TooltipWrapper tooltipText={tooltip("prevTR")} isTriggerActive={currentIndex > 1}>
50
50
  <IconButton
@@ -26,23 +26,23 @@
26
26
  }
27
27
 
28
28
  .status-passed {
29
- color: var(--bg-support-castor);
29
+ color: var(--color-status-passed-chart);
30
30
  }
31
31
 
32
32
  .status-failed {
33
- color: var(--bg-support-capella);
33
+ color: var(--color-status-failed-chart);
34
34
  }
35
35
 
36
36
  .status-broken {
37
- color: var(--bg-support-atlas);
37
+ color: var(--color-status-broken-chart);
38
38
  }
39
39
 
40
40
  .status-skipped {
41
- color: var(--bg-support-rau);
41
+ color: var(--color-status-skipped-chart);
42
42
  }
43
43
 
44
44
  .status-unknown {
45
- color: var(--bg-support-skat);
45
+ color: var(--color-status-unknown-chart);
46
46
  }
47
47
 
48
48
  .test-result-prev-status-tooltip {
@@ -9,11 +9,11 @@
9
9
  }
10
10
 
11
11
  .severity-blocker {
12
- color: var(--on-support-capella);
12
+ color: var(--color-intent-danger-text);
13
13
  }
14
14
 
15
15
  .severity-critical {
16
- color: var(--on-support-atlas);
16
+ color: var(--color-intent-warning-text);
17
17
  }
18
18
 
19
19
  .severity-normal {
@@ -21,9 +21,9 @@
21
21
  }
22
22
 
23
23
  .severity-minor {
24
- color: var(--on-support-aldebaran);
24
+ color: var(--color-intent-primary-text);
25
25
  }
26
26
 
27
27
  .severity-trivial {
28
- color: var(--on-support-castor);
28
+ color: var(--color-intent-success-text);
29
29
  }
@@ -1,36 +1,3 @@
1
- .test-result-status {
2
- padding: 2px;
3
- display: flex;
4
- border-radius: 100px;
5
- color: var(--constant-on-text-primary);
6
- height: max-content;
7
- }
1
+ @import "~@allurereport/web-components/mixins.scss";
8
2
 
9
- .test-result-status-text {
10
- padding: 0 4px;
11
- }
12
-
13
- .test-result-status-icon {
14
- color: var(--constant-on-text-primary);
15
- padding: 0;
16
- }
17
-
18
- .status-passed {
19
- background-color: var(--bg-support-castor);
20
- }
21
-
22
- .status-failed {
23
- background-color: var(--bg-support-capella);
24
- }
25
-
26
- .status-broken {
27
- background-color: var(--bg-support-atlas);
28
- }
29
-
30
- .status-skipped {
31
- background-color: var(--bg-support-rau);
32
- }
33
-
34
- .status-unknown {
35
- background-color: var(--bg-support-skat);
36
- }
3
+ @include status-label-shape("test-result-status", "test-result-status-icon", "test-result-status-text");
@@ -1,5 +1,5 @@
1
1
  import type { AttachmentTestStepResult } from "@allurereport/core-api";
2
- import { Spinner } from "@allurereport/web-components";
2
+ import { MarkdownPreview, Spinner } from "@allurereport/web-components";
3
3
  import type { FunctionalComponent } from "preact";
4
4
  import { useEffect, useState } from "preact/hooks";
5
5
 
@@ -22,13 +22,17 @@ const componentsByAttachmentType: Record<string, any> = {
22
22
  css: AttachmentCode,
23
23
  table: AttachmentCode,
24
24
  html: AttachmentCode,
25
+ markdown: AttachmentCode,
25
26
  text: AttachmentCode,
26
27
  video: AttachmentVideo,
27
28
  };
28
29
  const previewComponentsByAttachmentType: Record<string, any> = {
29
30
  html: HtmlAttachmentPreview,
31
+ markdown: MarkdownPreview,
30
32
  };
31
33
 
34
+ const DUAL_VIEW_ATTACHMENT_TYPES = new Set(["html", "markdown"]);
35
+
32
36
  export interface AttachmentTestStepResultProps {
33
37
  item: AttachmentTestStepResult;
34
38
  previewable?: boolean;
@@ -61,8 +65,26 @@ export const Attachment: FunctionalComponent<AttachmentTestStepResultProps> = ({
61
65
  );
62
66
  }
63
67
 
68
+ const defaultRenderedPreview = attachmentComponent.type === "markdown" || attachmentComponent.type === "html";
69
+ const showPreview =
70
+ !!CurrentPreviewComponent &&
71
+ (defaultRenderedPreview ? !previewable || modalData.value.preview : !!(previewable && modalData.value.preview));
72
+
73
+ if (DUAL_VIEW_ATTACHMENT_TYPES.has(attachmentComponent.type) && CurrentPreviewComponent && CurrentComponent) {
74
+ return (
75
+ <div className={styles.attachmentViewStack}>
76
+ <div className={styles.attachmentViewPane} hidden={showPreview}>
77
+ <CurrentComponent attachment={attachment} item={item} />
78
+ </div>
79
+ <div className={styles.attachmentViewPane} hidden={!showPreview}>
80
+ <CurrentPreviewComponent attachment={attachment} item={item} />
81
+ </div>
82
+ </div>
83
+ );
84
+ }
85
+
64
86
  // temp solution before modal component refactoring
65
- if (CurrentPreviewComponent && previewable && modalData.value.preview) {
87
+ if (showPreview) {
66
88
  return <CurrentPreviewComponent attachment={attachment} item={item} />;
67
89
  }
68
90
 
@@ -1,6 +1,8 @@
1
1
  import { Spinner } from "@allurereport/web-components";
2
2
  import { type FunctionalComponent } from "preact";
3
3
 
4
+ import * as styles from "./styles.scss";
5
+
4
6
  export const AttachmentVideo: FunctionalComponent<{
5
7
  attachment: { src: string; contentType?: string };
6
8
  }> = ({ attachment }) => {
@@ -8,7 +10,7 @@ export const AttachmentVideo: FunctionalComponent<{
8
10
  return <Spinner />;
9
11
  }
10
12
  return (
11
- <video controls loop muted>
13
+ <video class={styles["test-result-attachment-video"]} controls loop muted>
12
14
  <source src={attachment?.src} type={attachment?.contentType} />
13
15
  </video>
14
16
  );
@@ -2,7 +2,7 @@
2
2
  padding-right: 24px;
3
3
 
4
4
  &:not(:first-child) {
5
- border-top: 1px solid var(--on-border-muted);
5
+ border-top: 1px solid var(--color-border-subtle);
6
6
  }
7
7
  }
8
8
 
@@ -12,19 +12,19 @@
12
12
 
13
13
  .test-result-step {
14
14
  &:not(:first-child) {
15
- border-top: 1px solid var(--on-border-muted);
15
+ border-top: 1px solid var(--color-border-subtle);
16
16
  }
17
17
  }
18
18
 
19
19
  .test-result-step-content {
20
20
  padding-left: 24px;
21
21
  margin-bottom: 12px;
22
- border-top: 1px solid var(--on-border-muted);
22
+ border-top: 1px solid var(--color-border-subtle);
23
23
  min-width: 0;
24
24
  }
25
25
 
26
26
  .test-result-attachment-content {
27
- border-top: 1px solid var(--on-border-muted);
27
+ border-top: 1px solid var(--color-border-subtle);
28
28
  }
29
29
 
30
30
  .test-result-attachment-content-wrapper {
@@ -46,7 +46,7 @@
46
46
  min-height: 32px;
47
47
 
48
48
  &:hover {
49
- background: var(--bg-control-flat-medium);
49
+ background: var(--color-control-bg-ghost-hover);
50
50
  }
51
51
  }
52
52
 
@@ -63,7 +63,7 @@
63
63
  }
64
64
 
65
65
  .test-result-step-number {
66
- color: var(--on-text-hint);
66
+ color: var(--color-text-muted);
67
67
  min-width: 16px;
68
68
  text-align: center;
69
69
  box-sizing: content-box;
@@ -72,7 +72,7 @@
72
72
  .item-time {
73
73
  flex: none;
74
74
  margin-left: auto;
75
- color: var(--on-text-hint);
75
+ color: var(--color-text-muted);
76
76
  line-height: 20px;
77
77
  min-width: 56px;
78
78
  text-align: right;
@@ -82,7 +82,7 @@
82
82
  margin-left: auto;
83
83
  display: flex;
84
84
  gap: 8px;
85
- color: var(--on-text-secondary);
85
+ color: var(--color-text-secondary);
86
86
  align-items: center;
87
87
  flex: 0 0 auto;
88
88
  }
@@ -91,7 +91,7 @@
91
91
  display: flex;
92
92
  align-items: center;
93
93
  gap: 4px;
94
- color: var(--on-icon-secondary);
94
+ color: var(--color-icon-secondary);
95
95
  min-width: 52px;
96
96
  justify-content: flex-end;
97
97
  }
@@ -103,7 +103,7 @@
103
103
  }
104
104
 
105
105
  .item-info-step-icon {
106
- color: var(--on-icon-secondary);
106
+ color: var(--color-icon-secondary);
107
107
  }
108
108
 
109
109
  .test-result-step-chevron {
@@ -126,7 +126,7 @@
126
126
  padding: 4px 8px 4px 6px;
127
127
 
128
128
  &:hover {
129
- background: var(--bg-control-flat-medium);
129
+ background: var(--color-control-bg-ghost-hover);
130
130
  }
131
131
  }
132
132
 
@@ -140,7 +140,7 @@
140
140
  }
141
141
 
142
142
  .test-result-attachment-icon {
143
- color: var(--on-icon-secondary);
143
+ color: var(--color-icon-secondary);
144
144
  padding: 2px 4px;
145
145
  height: max-content;
146
146
  }
@@ -159,9 +159,11 @@
159
159
  height: 100%;
160
160
 
161
161
  img {
162
- width: 100%;
163
- height: 100%;
164
- object-fit: scale-down;
162
+ display: block;
163
+ max-width: 100%;
164
+ max-height: 80vh;
165
+ width: auto;
166
+ height: auto;
165
167
  }
166
168
  }
167
169
 
@@ -189,7 +191,7 @@
189
191
  }
190
192
 
191
193
  .item-button {
192
- color: var(--bg-control-flat);
194
+ color: var(--color-control-bg-ghost);
193
195
  }
194
196
 
195
197
  .wrong-attachment-sign {
@@ -199,7 +201,7 @@
199
201
  }
200
202
 
201
203
  .test-result-attachment-missed {
202
- color: var(--on-text-secondary);
204
+ color: var(--color-text-secondary);
203
205
  line-height: 20px;
204
206
  margin-right: auto;
205
207
  padding-top: 2px;
@@ -217,6 +219,22 @@
217
219
  width: 24px;
218
220
  }
219
221
 
222
+ .attachmentViewStack {
223
+ width: 100%;
224
+ }
225
+
226
+ .attachmentViewPane[hidden] {
227
+ display: none !important;
228
+ }
229
+
220
230
  .html-attachment-preview {
221
231
  padding: 0 16px;
222
232
  }
233
+
234
+ .test-result-attachment-video {
235
+ display: block;
236
+ max-width: 100%;
237
+ max-height: 80vh;
238
+ width: auto;
239
+ height: auto;
240
+ }
@@ -35,6 +35,7 @@ export const TestResultAttachmentInfo: FunctionalComponent<TestResultAttachmentI
35
35
  openModal({
36
36
  data: item,
37
37
  component: <Attachment item={item} previewable={true} />,
38
+ preview: contentType === "text/markdown" || contentType === "text/html",
38
39
  });
39
40
  };
40
41
 
@@ -1,5 +1,5 @@
1
1
  import type { DefaultTestStepResult } from "@allurereport/core-api";
2
- import { Code, Text, allureIcons } from "@allurereport/web-components";
2
+ import { Code, LinkifiedText, allureIcons } from "@allurereport/web-components";
3
3
  import type { FunctionComponent } from "preact";
4
4
  import { useState } from "preact/hooks";
5
5
 
@@ -71,7 +71,7 @@ export const TestResultStep: FunctionComponent<{
71
71
  <Code size={"s"} className={styles["test-result-step-number"]}>
72
72
  {stepIndex}
73
73
  </Code>
74
- <Text className={styles["test-result-header-text"]}>{item.name}</Text>
74
+ <LinkifiedText className={styles["test-result-header-text"]} text={item.name} />
75
75
  <TestResultStepInfo item={item} />
76
76
  </div>
77
77
  {hasContent && isOpened && <TestResultStepsContent item={item} />}
@@ -45,7 +45,7 @@
45
45
  cursor: default;
46
46
 
47
47
  &:after {
48
- border-bottom: 2px solid var(--on-support-aldebaran);
48
+ border-bottom: 2px solid var(--color-link-text);
49
49
  }
50
50
 
51
51
  span {
@@ -70,7 +70,7 @@ const TreeHeader: FunctionComponent<TreeHeaderProps> = ({
70
70
  {categoryTitle}
71
71
  </Text>
72
72
  {treeHeaderBar && (
73
- <div className={styles["tree-header-bar"]} style={{ width: `${width}px` }}>
73
+ <div className={styles["tree-header-bar"]} style={{ minWidth: `${width}px` }}>
74
74
  {treeHeaderBar}
75
75
  </div>
76
76
  )}