@allurereport/web-awesome 3.0.0 → 3.0.1

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/dist/multi/{173.app-9931797d1602fc52db5b.js → 173.app-bae2a0fe5738d77cd976.js} +1 -1
  2. package/dist/multi/174.app-bae2a0fe5738d77cd976.js +1 -0
  3. package/dist/multi/{252.app-9931797d1602fc52db5b.js → 252.app-bae2a0fe5738d77cd976.js} +1 -1
  4. package/dist/multi/{282.app-9931797d1602fc52db5b.js → 282.app-bae2a0fe5738d77cd976.js} +1 -1
  5. package/dist/multi/{29.app-9931797d1602fc52db5b.js → 29.app-bae2a0fe5738d77cd976.js} +1 -1
  6. package/dist/multi/{416.app-9931797d1602fc52db5b.js → 416.app-bae2a0fe5738d77cd976.js} +1 -1
  7. package/dist/multi/{527.app-9931797d1602fc52db5b.js → 527.app-bae2a0fe5738d77cd976.js} +1 -1
  8. package/dist/multi/{600.app-9931797d1602fc52db5b.js → 600.app-bae2a0fe5738d77cd976.js} +1 -1
  9. package/dist/multi/{605.app-9931797d1602fc52db5b.js → 605.app-bae2a0fe5738d77cd976.js} +1 -1
  10. package/dist/multi/{638.app-9931797d1602fc52db5b.js → 638.app-bae2a0fe5738d77cd976.js} +1 -1
  11. package/dist/multi/{672.app-9931797d1602fc52db5b.js → 672.app-bae2a0fe5738d77cd976.js} +1 -1
  12. package/dist/multi/{686.app-9931797d1602fc52db5b.js → 686.app-bae2a0fe5738d77cd976.js} +1 -1
  13. package/dist/multi/{725.app-9931797d1602fc52db5b.js → 725.app-bae2a0fe5738d77cd976.js} +1 -1
  14. package/dist/multi/{741.app-9931797d1602fc52db5b.js → 741.app-bae2a0fe5738d77cd976.js} +1 -1
  15. package/dist/multi/{755.app-9931797d1602fc52db5b.js → 755.app-bae2a0fe5738d77cd976.js} +1 -1
  16. package/dist/multi/{894.app-9931797d1602fc52db5b.js → 894.app-bae2a0fe5738d77cd976.js} +1 -1
  17. package/dist/multi/{91.app-9931797d1602fc52db5b.js → 91.app-bae2a0fe5738d77cd976.js} +1 -1
  18. package/dist/multi/{943.app-9931797d1602fc52db5b.js → 943.app-bae2a0fe5738d77cd976.js} +1 -1
  19. package/dist/multi/{980.app-9931797d1602fc52db5b.js → 980.app-bae2a0fe5738d77cd976.js} +1 -1
  20. package/dist/multi/app-bae2a0fe5738d77cd976.js +2 -0
  21. package/dist/multi/manifest.json +21 -21
  22. package/dist/multi/{styles-8fe37354d1c2270c691e.css → styles-bbf68b2ba63c38b53c38.css} +3 -3
  23. package/dist/single/app-996d3b5869f8fc942b66.js +2 -0
  24. package/dist/single/manifest.json +1 -1
  25. package/package.json +8 -8
  26. package/src/assets/scss/palette.scss +102 -102
  27. package/src/components/ReportBody/Filters.tsx +84 -33
  28. package/src/components/ReportBody/HeaderActions.tsx +2 -2
  29. package/src/components/ReportBody/SortBy.tsx +4 -7
  30. package/src/components/ReportBody/index.tsx +12 -17
  31. package/src/components/ReportTabs/index.tsx +37 -0
  32. package/src/components/SplitLayout/index.tsx +0 -2
  33. package/src/components/TestResult/TestStepsEmpty/index.tsx +1 -7
  34. package/src/components/TestResult/TrEmpty/index.tsx +1 -7
  35. package/src/components/TestResult/TrError/index.tsx +9 -2
  36. package/src/components/TestResult/TrSteps/TrStep.tsx +3 -3
  37. package/src/components/Tree/index.tsx +9 -17
  38. package/src/index.tsx +0 -1
  39. package/src/locales/az.json +3 -1
  40. package/src/locales/de.json +3 -1
  41. package/src/locales/en.json +4 -2
  42. package/src/locales/es.json +3 -1
  43. package/src/locales/fr.json +3 -1
  44. package/src/locales/he.json +3 -1
  45. package/src/locales/hy.json +3 -1
  46. package/src/locales/it.json +3 -1
  47. package/src/locales/ja.json +3 -1
  48. package/src/locales/ka.json +3 -1
  49. package/src/locales/kr.json +3 -1
  50. package/src/locales/nl.json +3 -1
  51. package/src/locales/pl.json +3 -1
  52. package/src/locales/pt.json +3 -1
  53. package/src/locales/ru.json +3 -1
  54. package/src/locales/sv.json +3 -1
  55. package/src/locales/tr.json +3 -1
  56. package/src/locales/ua.json +3 -1
  57. package/src/locales/zh.json +3 -1
  58. package/src/stores/tree.ts +37 -121
  59. package/src/stores/treeFilters/actions.ts +67 -0
  60. package/src/stores/treeFilters/constants.ts +7 -0
  61. package/src/stores/treeFilters/index.ts +3 -0
  62. package/src/stores/treeFilters/store.ts +73 -0
  63. package/src/stores/treeFilters/types.ts +12 -0
  64. package/src/utils/persist.ts +23 -0
  65. package/src/utils/tree.ts +12 -5
  66. package/src/utils/treeFilters.ts +16 -4
  67. package/test/stores/treeFilters.test.ts +302 -0
  68. package/test/utils/treeFilters.test.ts +145 -0
  69. package/types.d.ts +2 -0
  70. package/dist/multi/174.app-9931797d1602fc52db5b.js +0 -1
  71. package/dist/multi/app-9931797d1602fc52db5b.js +0 -2
  72. package/dist/single/app-6199dc1c2fd3bddc2526.js +0 -2
  73. package/src/components/Tabs/index.tsx +0 -62
  74. /package/dist/multi/{app-9931797d1602fc52db5b.js.LICENSE.txt → app-bae2a0fe5738d77cd976.js.LICENSE.txt} +0 -0
  75. /package/dist/single/{app-6199dc1c2fd3bddc2526.js.LICENSE.txt → app-996d3b5869f8fc942b66.js.LICENSE.txt} +0 -0
  76. /package/src/components/{Tabs → ReportTabs}/styles.scss +0 -0
@@ -1,3 +1,3 @@
1
1
  {
2
- "main.js": "app-6199dc1c2fd3bddc2526.js"
2
+ "main.js": "app-996d3b5869f8fc942b66.js"
3
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allurereport/web-awesome",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "The static files for Allure Awesome Report",
5
5
  "keywords": [
6
6
  "allure",
@@ -31,17 +31,17 @@
31
31
  "IE 11"
32
32
  ],
33
33
  "dependencies": {
34
- "@allurereport/charts-api": "3.0.0",
35
- "@allurereport/core-api": "3.0.0",
36
- "@allurereport/plugin-api": "3.0.0",
37
- "@allurereport/web-commons": "3.0.0",
38
- "@allurereport/web-components": "3.0.0",
39
- "@preact/signals": "^1.3.0",
34
+ "@allurereport/charts-api": "3.0.1",
35
+ "@allurereport/core-api": "3.0.1",
36
+ "@allurereport/plugin-api": "3.0.1",
37
+ "@allurereport/web-commons": "3.0.1",
38
+ "@allurereport/web-components": "3.0.1",
39
+ "@preact/signals": "^2.5.1",
40
40
  "clsx": "^2.1.1",
41
41
  "d3-shape": "^3.2.0",
42
42
  "i18next": "^24.0.2",
43
43
  "md5": "^2.3.0",
44
- "preact": "^10.24.0",
44
+ "preact": "^10.28.2",
45
45
  "prismjs": "^1.30.0",
46
46
  "reset.css": "^2.0.2"
47
47
  },
@@ -98,13 +98,13 @@
98
98
  --gray-neutral-0: #ffffffff;
99
99
  --gray-neutral-alpha-day-25: #36799b08;
100
100
  --gray-neutral-alpha-day-50: #1d4f810a;
101
- --gray-neutral-alpha-day-75: #1658790f;
101
+ --gray-neutral-alpha-day-75: #165879f;
102
102
  --gray-neutral-alpha-day-100: #1d4f8114;
103
103
  --gray-neutral-alpha-day-150: #1a4c751a;
104
104
  --gray-neutral-alpha-day-200: #092f5d21;
105
105
  --gray-neutral-alpha-day-250: #0b305629;
106
106
  --gray-neutral-alpha-day-300: #05264d3d;
107
- --gray-neutral-alpha-day-350: #07254654;
107
+ --gray-neutral-alpha-day-350: #072546547;
108
108
  --gray-neutral-alpha-day-400: #031c3a6b;
109
109
  --gray-neutral-alpha-day-450: #0316308f;
110
110
  --gray-neutral-alpha-day-500: #02132c99;
@@ -124,7 +124,7 @@
124
124
  --gray-neutral-alpha-night-200: #f5f9ffe8;
125
125
  --gray-neutral-alpha-night-250: #f2f7fde3;
126
126
  --gray-neutral-alpha-night-300: #ecf4fdd1;
127
- --gray-neutral-alpha-night-350: #e3effdbd;
127
+ --gray-neutral-alpha-night-350: #e3efffbd;
128
128
  --gray-neutral-alpha-night-400: #deecfca6;
129
129
  --gray-neutral-alpha-night-450: #d2e4fe80;
130
130
  --gray-neutral-alpha-night-500: #d1e5ff73;
@@ -138,69 +138,69 @@
138
138
  --gray-neutral-alpha-night-950: #769ac108;
139
139
  --gray-neutral-alpha-day-850: #000714db;
140
140
  --gray-neutral-alpha-night-850: #afc5f31f;
141
- --capella-day-base: #eb5c46ff;
142
- --capella-day-darken-1: #e8452cff;
143
- --capella-day-darken-2: #df3319ff;
144
- --capella-day-darken-3: #cf2f17ff;
145
- --capella-day-darken-4: #c62e16ff;
146
- --capella-day-darken-5: #ba2b15ff;
147
- --capella-day-darken-6: #a52612ff;
148
- --capella-night-base: #ff8c7aff;
149
- --capella-night-darken-1: #ff6b55ff;
150
- --capella-night-darken-2: #f66751ff;
151
- --capella-night-darken-3: #ff4b2fff;
152
- --capella-night-darken-4: #f44c32ff;
153
- --capella-night-darken-5: #e8452cff;
154
- --capella-night-darken-6: #df3319ff;
155
- --capella-night-darken-7: #c62e16ff;
156
- --capella-day-darken-1-8: #e8452c14;
157
- --capella-night-darken-5-12: #e8452c1f;
158
- --capella-day-darken-1-16: #e8452c29;
159
- --capella-day-darken-1-24: #e8452c3d;
160
- --capella-night-darken-5-20: #e8452c33;
161
- --capella-night-darken-5-28: #e8452c47;
162
- --gliese-day-base: #eb4672ff;
163
- --gliese-day-darken-1: #e82b5eff;
164
- --gliese-day-darken-2: #df194eff;
165
- --gliese-day-darken-3: #cf1648ff;
166
- --gliese-day-darken-4: #c61645ff;
167
- --gliese-day-darken-5: #bb1440ff;
168
- --gliese-day-darken-6: #a61139ff;
169
- --gliese-day-darken-1-8: #e82b5e14;
170
- --gliese-day-darken-1-16: #e82b5e29;
171
- --gliese-day-darken-1-24: #e82b5e3d;
172
- --gliese-night-base: #ff7a9eff;
173
- --gliese-night-darken-1: #ff5582ff;
174
- --gliese-night-darken-2: #f6517dff;
175
- --gliese-night-darken-3: #ff2f66ff;
176
- --gliese-night-darken-4: #f43265ff;
177
- --gliese-night-darken-5: #e82c5eff;
178
- --gliese-night-darken-6: #df194eff;
179
- --gliese-night-darken-7: #c61645ff;
180
- --gliese-night-darken-5-12: #e82c5e1f;
181
- --gliese-night-darken-5-20: #e82c5e33;
182
- --gliese-night-darken-5-28: #e82c5e47;
183
- --antares-day-base: #eb468bff;
184
- --antares-day-darken-1: #e82c7aff;
185
- --antares-day-darken-2: #df196bff;
186
- --antares-day-darken-3: #cf1764ff;
187
- --antares-day-darken-4: #c6165fff;
188
- --antares-day-darken-5: #ba155aff;
189
- --antares-day-darken-6: #a51250ff;
190
- --antares-day-darken-1-8: #e82c7a14;
191
- --antares-day-darken-1-16: #e82c7a29;
192
- --antares-day-darken-1-24: #e82c7a3d;
193
- --antares-night-base: #ff7ab1ff;
194
- --antares-night-darken-1: #ff559cff;
195
- --antares-night-darken-2: #f65195ff;
196
- --antares-night-darken-3: #ff2f86ff;
197
- --antares-night-darken-4: #f43283ff;
198
- --antares-night-darken-5: #e82c7aff;
199
- --antares-night-darken-6: #df196bff;
200
- --antares-night-darken-7: #c6165fff;
201
- --antares-night-darken-5-12: #e82c7a1f;
202
- --antares-night-darken-5-20: #e82c7a33;
203
- --antares-night-darken-5-28: #e82c7a47;
141
+ --capella-day-base: #eb5146ff;
142
+ --capella-day-darken-1: #e8392cff;
143
+ --capella-day-darken-2: #df2619ff;
144
+ --capella-day-darken-3: #cf2317ff;
145
+ --capella-day-darken-4: #c62216ff;
146
+ --capella-day-darken-5: #ba2015ff;
147
+ --capella-day-darken-6: #a51c12ff;
148
+ --capella-night-base: #ff584dff;
149
+ --capella-night-darken-1: #f55c51ff;
150
+ --capella-night-darken-2: #ff392bff;
151
+ --capella-night-darken-3: #f34033ff;
152
+ --capella-night-darken-4: #e8392cff;
153
+ --capella-night-darken-5: #ff1b0aff;
154
+ --capella-night-darken-6: #df2619ff;
155
+ --capella-night-darken-7: #c62216ff;
156
+ --capella-day-darken-1-8: #e8392c14;
157
+ --capella-night-darken-4-12: #e8392c1f;
158
+ --capella-day-darken-1-16: #e8392c29;
159
+ --capella-day-darken-1-24: #e8392c3d;
160
+ --capella-night-darken-4-20: #e8392c33;
161
+ --capella-night-darken-4-28: #e8392c47;
162
+ --gliese-day-base: #eb467dff;
163
+ --gliese-day-darken-1: #e82c6aff;
164
+ --gliese-day-darken-2: #df195bff;
165
+ --gliese-day-darken-3: #cf1753ff;
166
+ --gliese-day-darken-4: #c61651ff;
167
+ --gliese-day-darken-5: #ba154cff;
168
+ --gliese-day-darken-6: #a51243ff;
169
+ --gliese-day-darken-1-8: #e82c6a14;
170
+ --gliese-day-darken-1-16: #e82c6a29;
171
+ --gliese-day-darken-1-24: #e82c6a3d;
172
+ --gliese-night-base: #ff4d87ff;
173
+ --gliese-night-darken-1: #f55187ff;
174
+ --gliese-night-darken-2: #ff2b72ff;
175
+ --gliese-night-darken-3: #f33373ff;
176
+ --gliese-night-darken-4: #e82c6aff;
177
+ --gliese-night-darken-5: #ff0a5cff;
178
+ --gliese-night-darken-6: #df195bff;
179
+ --gliese-night-darken-7: #c61651ff;
180
+ --gliese-night-darken-4-12: #e82c6a1f;
181
+ --gliese-night-darken-4-20: #e82c6a33;
182
+ --gliese-night-darken-4-28: #e82c6a47;
183
+ --antares-day-base: #e846ebff;
184
+ --antares-day-darken-1: #e42ce8ff;
185
+ --antares-day-darken-2: #dc19dfff;
186
+ --antares-day-darken-3: #cb17cfff;
187
+ --antares-day-darken-4: #c316c6ff;
188
+ --antares-day-darken-5: #b715baff;
189
+ --antares-day-darken-6: #a312a5ff;
190
+ --antares-day-darken-1-8: #e42ce814;
191
+ --antares-day-darken-1-16: #e42ce829;
192
+ --antares-day-darken-1-24: #e42ce83d;
193
+ --antares-night-base: #fc4dffff;
194
+ --antares-night-darken-1: #f251f5ff;
195
+ --antares-night-darken-2: #fb2bffff;
196
+ --antares-night-darken-3: #f033f3ff;
197
+ --antares-night-darken-4: #e52ce8ff;
198
+ --antares-night-darken-5: #fb0affff;
199
+ --antares-night-darken-6: #dc19dfff;
200
+ --antares-night-darken-7: #c316c6ff;
201
+ --antares-night-darken-4-12: #e52ce81f;
202
+ --antares-night-darken-4-20: #e52ce833;
203
+ --antares-night-darken-4-28: #e52ce847;
204
204
  --atlas-day-base: #eb9b46ff;
205
205
  --atlas-day-darken-1: #e88d2cff;
206
206
  --atlas-day-darken-2: #df7f19ff;
@@ -211,17 +211,17 @@
211
211
  --atlas-day-darken-1-8: #e88d2c14;
212
212
  --atlas-day-darken-1-16: #e88d2c29;
213
213
  --atlas-day-darken-1-24: #e88d2c3d;
214
- --atlas-night-base: #ffbf7aff;
215
- --atlas-night-darken-1: #ffad55ff;
216
- --atlas-night-darken-2: #f6a651ff;
217
- --atlas-night-darken-3: #ff9a2fff;
218
- --atlas-night-darken-4: #f49632ff;
219
- --atlas-night-darken-5: #e88d2cff;
214
+ --atlas-night-base: #ffa94dff;
215
+ --atlas-night-darken-1: #f6a651ff;
216
+ --atlas-night-darken-2: #ff992bff;
217
+ --atlas-night-darken-3: #f49632ff;
218
+ --atlas-night-darken-4: #e88d2cff;
219
+ --atlas-night-darken-5: #ff890aff;
220
220
  --atlas-night-darken-6: #df7f19ff;
221
221
  --atlas-night-darken-7: #c67116ff;
222
- --atlas-night-darken-5-12: #e88d2c1f;
223
- --atlas-night-darken-5-20: #e88d2c33;
224
- --atlas-night-darken-5-28: #e88d2c47;
222
+ --atlas-night-darken-4-12: #e88d2c1f;
223
+ --atlas-night-darken-4-20: #e88d2c33;
224
+ --atlas-night-darken-4-28: #e88d2c47;
225
225
  --rigel-day-base: #ebc746ff;
226
226
  --rigel-day-darken-1: #e8bf2cff;
227
227
  --rigel-day-darken-2: #dfb419ff;
@@ -232,17 +232,17 @@
232
232
  --rigel-day-darken-1-8: #e8bf2c14;
233
233
  --rigel-day-darken-1-16: #e8bf2c29;
234
234
  --rigel-day-darken-1-24: #e8bf2c3d;
235
- --rigel-night-base: #ffe27aff;
236
- --rigel-night-darken-1: #ffda55ff;
237
- --rigel-night-darken-2: #f6d251ff;
238
- --rigel-night-darken-3: #ffd22fff;
239
- --rigel-night-darken-4: #f4ca32ff;
240
- --rigel-night-darken-5: #e8bf2cff;
235
+ --rigel-night-base: #ffd84dff;
236
+ --rigel-night-darken-1: #f6d251ff;
237
+ --rigel-night-darken-2: #ffd12bff;
238
+ --rigel-night-darken-3: #f4ca32ff;
239
+ --rigel-night-darken-4: #e8bf2cff;
240
+ --rigel-night-darken-5: #ffca0aff;
241
241
  --rigel-night-darken-6: #dfb419ff;
242
242
  --rigel-night-darken-7: #c6a016ff;
243
- --rigel-night-darken-5-12: #e8bf2c1f;
244
- --rigel-night-darken-5-20: #e8bf2c33;
245
- --rigel-night-darken-5-28: #e8bf2c47;
243
+ --rigel-night-darken-4-12: #e8bf2c1f;
244
+ --rigel-night-darken-4-20: #e8bf2c33;
245
+ --rigel-night-darken-4-28: #e8bf2c47;
246
246
  --castor-day-base: #09a232ff;
247
247
  --castor-day-darken-1: #099337ff;
248
248
  --castor-day-darken-2: #098632ff;
@@ -253,9 +253,9 @@
253
253
  --castor-day-darken-1-8: #09933714;
254
254
  --castor-day-darken-1-16: #09933729;
255
255
  --castor-day-darken-1-24: #0993373d;
256
- --castor-night-base: #40dd75ff;
257
- --castor-night-darken-1: #28d963ff;
258
- --castor-night-darken-2: #22c258ff;
256
+ --castor-night-base: #45e57bff;
257
+ --castor-night-darken-1: #2ae167ff;
258
+ --castor-night-darken-2: #1ecf59ff;
259
259
  --castor-night-darken-3: #40bf6aff;
260
260
  --castor-night-darken-4: #39ac60ff;
261
261
  --castor-night-darken-5: #29a352ff;
@@ -274,9 +274,9 @@
274
274
  --mirach-day-darken-1-8: #09937814;
275
275
  --mirach-day-darken-1-16: #09937829;
276
276
  --mirach-day-darken-1-24: #0993783d;
277
- --mirach-night-base: #40ddbeff;
278
- --mirach-night-darken-1: #28d9b6ff;
279
- --mirach-night-darken-2: #22c2a2ff;
277
+ --mirach-night-base: #45e5c5ff;
278
+ --mirach-night-darken-1: #2ae1bcff;
279
+ --mirach-night-darken-2: #1ecfacff;
280
280
  --mirach-night-darken-3: #40bfa6ff;
281
281
  --mirach-night-darken-4: #39ac95ff;
282
282
  --mirach-night-darken-5: #29a38bff;
@@ -295,10 +295,10 @@
295
295
  --aldebaran-day-darken-1-8: #2c67e814;
296
296
  --aldebaran-day-darken-1-16: #2c67e829;
297
297
  --aldebaran-day-darken-1-24: #2c67e83d;
298
- --aldebaran-night-base: #99bdffff;
299
- --aldebaran-night-darken-1: #70a2ffff;
298
+ --aldebaran-night-base: #7aa8ffff;
299
+ --aldebaran-night-darken-1: #5590ffff;
300
300
  --aldebaran-night-darken-2: #518af6ff;
301
- --aldebaran-night-darken-3: #4788ffff;
301
+ --aldebaran-night-darken-3: #2f78ffff;
302
302
  --aldebaran-night-darken-4: #3276f4ff;
303
303
  --aldebaran-night-darken-5: #2c6de8ff;
304
304
  --aldebaran-night-darken-6: #195edfff;
@@ -316,10 +316,10 @@
316
316
  --sirius-day-darken-1-8: #2c99e814;
317
317
  --sirius-day-darken-1-16: #2c99e829;
318
318
  --sirius-day-darken-1-24: #2c99e83d;
319
- --sirius-night-base: #99d4ffff;
320
- --sirius-night-darken-1: #70c4ffff;
319
+ --sirius-night-base: #7ac7ffff;
320
+ --sirius-night-darken-1: #55b8ffff;
321
321
  --sirius-night-darken-2: #51b0f6ff;
322
- --sirius-night-darken-3: #47b3ffff;
322
+ --sirius-night-darken-3: #2fa8ffff;
323
323
  --sirius-night-darken-4: #32a3f4ff;
324
324
  --sirius-night-darken-5: #2c99e8ff;
325
325
  --sirius-night-darken-6: #198cdfff;
@@ -337,10 +337,10 @@
337
337
  --betelgeuse-day-darken-1-8: #7a2ce814;
338
338
  --betelgeuse-day-darken-1-16: #7a2ce829;
339
339
  --betelgeuse-day-darken-1-24: #7a2ce83d;
340
- --betelgeuse-night-base: #c399ffff;
341
- --betelgeuse-night-darken-1: #ac70ffff;
340
+ --betelgeuse-night-base: #b17affff;
341
+ --betelgeuse-night-darken-1: #9c55ffff;
342
342
  --betelgeuse-night-darken-2: #9551f6ff;
343
- --betelgeuse-night-darken-3: #9447ffff;
343
+ --betelgeuse-night-darken-3: #862fffff;
344
344
  --betelgeuse-night-darken-4: #8332f4ff;
345
345
  --betelgeuse-night-darken-5: #7a2ce8ff;
346
346
  --betelgeuse-night-darken-6: #6b19dfff;
@@ -358,10 +358,10 @@
358
358
  --skat-day-darken-1-8: #b92ce814;
359
359
  --skat-day-darken-1-16: #b92ce829;
360
360
  --skat-day-darken-1-24: #b92ce83d;
361
- --skat-night-base: #e599ffff;
362
- --skat-night-darken-1: #db70ffff;
361
+ --skat-night-base: #dd7affff;
362
+ --skat-night-darken-1: #d455ffff;
363
363
  --skat-night-darken-2: #cc51f6ff;
364
- --skat-night-darken-3: #d147ffff;
364
+ --skat-night-darken-3: #cb2fffff;
365
365
  --skat-night-darken-4: #c432f4ff;
366
366
  --skat-night-darken-5: #b82ce8ff;
367
367
  --skat-night-darken-6: #ae19dfff;
@@ -1,6 +1,17 @@
1
1
  import { Button, Menu, Toggle, TooltipWrapper, allureIcons } from "@allurereport/web-components";
2
+ import { computed } from "@preact/signals";
3
+ import { For } from "@preact/signals/utils";
4
+ import { useEffect } from "preact/hooks";
2
5
  import { useI18n } from "@/stores/locale";
3
- import { type TreeFilters, setTreeFilter, treeFiltersStore } from "@/stores/tree";
6
+ import {
7
+ type TreeFilters,
8
+ setFilters,
9
+ setTestTypeFilter,
10
+ setTransitionFilter,
11
+ testTypeFilters,
12
+ transitionFilters,
13
+ } from "@/stores/treeFilters";
14
+ import { filtersList } from "@/stores/treeFilters/constants";
4
15
  import * as styles from "./styles.scss";
5
16
 
6
17
  const filterIcons: Record<TreeFilters, string> = {
@@ -12,45 +23,64 @@ const filterIcons: Record<TreeFilters, string> = {
12
23
  malfunctioned: allureIcons.lineAlertsMalfunctioned,
13
24
  };
14
25
 
15
- const MENU_KEYS = ["flaky", "retry", "new", "fixed", "regressed", "malfunctioned"] as TreeFilters[];
26
+ const FilterItem = (props: { filter: TreeFilters; value: boolean; onChange: (value: boolean) => void }) => {
27
+ const { filter, value, onChange } = props;
28
+ const { t: tooltip } = useI18n("filters.description");
29
+ const { t } = useI18n("filters");
30
+
31
+ return (
32
+ <TooltipWrapper data-testid="filter-tooltip" tooltipText={tooltip(filter)}>
33
+ <Menu.Item
34
+ closeMenuOnClick={false}
35
+ ariaLabel={t("enable-filter", { filter: t(filter) })}
36
+ onClick={() => onChange(!value)}
37
+ leadingIcon={filterIcons[filter]}
38
+ rightSlot={
39
+ <div className={styles.filterToggle}>
40
+ <Toggle
41
+ focusable={false}
42
+ value={value}
43
+ label={t("enable-filter", { filter: t(filter) })}
44
+ data-testid={`${filter}-filter`}
45
+ onChange={(changeValue) => onChange(changeValue)}
46
+ />
47
+ </div>
48
+ }
49
+ >
50
+ {t(filter)}
51
+ </Menu.Item>
52
+ </TooltipWrapper>
53
+ );
54
+ };
55
+
56
+ const hasFilter = computed(
57
+ () => transitionFilters.value.some(([, value]) => value) || testTypeFilters.value.some(([, value]) => value),
58
+ );
16
59
 
17
60
  export const Filters = () => {
18
61
  const { t } = useI18n("filters");
19
- const { t: tooltip } = useI18n("filters.description");
20
- const hasFilter = MENU_KEYS.some((key) => treeFiltersStore.value.filter[key]);
21
62
 
22
- const renderFilterItem = (filter: TreeFilters, value: boolean) => {
23
- return (
24
- <TooltipWrapper data-testid="filter-tooltip" tooltipText={tooltip(filter)}>
25
- <Menu.Item
26
- closeMenuOnClick={false}
27
- ariaLabel={t("enable-filter", { filter: t(filter) })}
28
- onClick={() => {
29
- setTreeFilter(filter, !value);
30
- }}
31
- leadingIcon={filterIcons[filter]}
32
- rightSlot={
33
- <div className={styles.filterToggle}>
34
- <Toggle
35
- focusable={false}
36
- value={value}
37
- label={t("enable-filter", { filter: t(filter) })}
38
- data-testid={`${filter}-filter`}
39
- onChange={(changeValue) => setTreeFilter(filter, changeValue)}
40
- />
41
- </div>
42
- }
43
- >
44
- {t(filter)}
45
- </Menu.Item>
46
- </TooltipWrapper>
47
- );
48
- };
63
+ useEffect(() => {
64
+ const params = new URLSearchParams(window.location.search);
65
+ const filtersParams = params.getAll("filter");
66
+
67
+ if (filtersParams.length > 0) {
68
+ const activeFilters = filtersList.reduce(
69
+ (acc, key) => ({
70
+ ...acc,
71
+ [key]: filtersParams.includes(key),
72
+ }),
73
+ {} as Record<string, boolean>,
74
+ );
75
+
76
+ setFilters(activeFilters);
77
+ }
78
+ }, []);
49
79
 
50
80
  return (
51
81
  <Menu
52
82
  menuTrigger={({ isOpened, onClick }) => (
53
- <div className={hasFilter && styles.filtersBtnWithFilters}>
83
+ <div className={hasFilter.value && styles.filtersBtnWithFilters}>
54
84
  <Button
55
85
  icon={allureIcons.lineGeneralSettings1}
56
86
  text={t("more-filters")}
@@ -63,8 +93,29 @@ export const Filters = () => {
63
93
  </div>
64
94
  )}
65
95
  >
96
+ <Menu.Section>
97
+ <For each={testTypeFilters}>
98
+ {([filter, value]) => (
99
+ <FilterItem
100
+ key={filter}
101
+ filter={filter}
102
+ value={value}
103
+ onChange={(newValue) => setTestTypeFilter(filter, newValue)}
104
+ />
105
+ )}
106
+ </For>
107
+ </Menu.Section>
66
108
  <Menu.Section data-testid="filters-menu">
67
- {MENU_KEYS.map((key: TreeFilters) => renderFilterItem(key, treeFiltersStore.value.filter[key]))}
109
+ <For each={transitionFilters}>
110
+ {([filter, value]) => (
111
+ <FilterItem
112
+ key={filter}
113
+ filter={filter}
114
+ value={value}
115
+ onChange={(newValue) => setTransitionFilter(filter, newValue)}
116
+ />
117
+ )}
118
+ </For>
68
119
  </Menu.Section>
69
120
  </Menu>
70
121
  );
@@ -1,12 +1,12 @@
1
1
  import { SearchBox } from "@allurereport/web-components";
2
2
  import { useI18n } from "@/stores/locale";
3
- import { setTreeQuery, treeFiltersStore } from "@/stores/tree";
3
+ import { setTreeQuery, treeQuery } from "@/stores/treeFilters";
4
4
  import { Filters } from "./Filters";
5
5
  import * as styles from "./styles.scss";
6
6
 
7
7
  const Search = () => {
8
- const { query } = treeFiltersStore.value;
9
8
  const { t } = useI18n("search");
9
+ const query = treeQuery.value;
10
10
 
11
11
  return <SearchBox placeholder={t("search-placeholder")} value={query} onChange={setTreeQuery} />;
12
12
  };
@@ -1,12 +1,8 @@
1
- import { DropdownButton, allureIcons } from "@allurereport/web-components";
2
- import { Link } from "@allurereport/web-components";
3
- import { Menu } from "@allurereport/web-components";
4
- import { SvgIcon } from "@allurereport/web-components";
5
- import { Text } from "@allurereport/web-components";
1
+ import { DropdownButton, Link, Menu, SvgIcon, Text, allureIcons } from "@allurereport/web-components";
6
2
  import clsx from "clsx";
7
3
  import type { ComponentChildren } from "preact";
8
4
  import { useI18n } from "@/stores/locale";
9
- import { setTreeDirection, setTreeSortBy, treeFiltersStore } from "@/stores/tree";
5
+ import { setTreeDirection, setTreeSortBy, treeDirection, treeSortBy } from "@/stores/treeFilters";
10
6
  import * as styles from "./styles.scss";
11
7
 
12
8
  const BtnWrapper = ({ children }: { children: ComponentChildren }) => {
@@ -17,7 +13,8 @@ export const SortBy = () => {
17
13
  const { t: sortByLocale } = useI18n("sort-by");
18
14
  const { t: sortByValuesLocale } = useI18n("sort-by.values");
19
15
  const { t: sortByDirectionsLocale } = useI18n("sort-by.directions");
20
- const { sortBy, direction } = treeFiltersStore.value;
16
+ const sortBy = treeSortBy.value;
17
+ const direction = treeDirection.value;
21
18
 
22
19
  const displayedSortByValue = sortByValuesLocale(sortBy);
23
20
  const displayedDirection = sortByDirectionsLocale(`${sortBy}-${direction}-short`);
@@ -3,8 +3,8 @@ import { Counter, Loadable } from "@allurereport/web-components";
3
3
  import { reportStatsStore, statsByEnvStore } from "@/stores";
4
4
  import { currentEnvironment } from "@/stores/env";
5
5
  import { useI18n } from "@/stores/locale";
6
- import { setTreeStatus, treeFiltersStore } from "@/stores/tree";
7
- import { Tab, Tabs, TabsList, useTabsContext } from "../Tabs";
6
+ import { setTreeStatus, treeStatus } from "@/stores/treeFilters";
7
+ import { ReportTab, ReportTabsList } from "../ReportTabs";
8
8
  import { TreeList } from "../Tree";
9
9
  import { HeaderActions } from "./HeaderActions";
10
10
  import { SortBy } from "./SortBy";
@@ -15,13 +15,12 @@ const ALL_TAB = "total";
15
15
 
16
16
  const Header = () => {
17
17
  const { t } = useI18n("statuses");
18
- const { currentTab, setCurrentTab } = useTabsContext();
19
18
 
20
19
  return (
21
20
  <header className={styles.header}>
22
21
  <HeaderActions />
23
22
  <div className={styles.headerRow}>
24
- <TabsList>
23
+ <ReportTabsList>
25
24
  <Loadable
26
25
  source={statsByEnvStore}
27
26
  renderData={(stats) => {
@@ -31,29 +30,28 @@ const Header = () => {
31
30
  return { status, value: currentEnv[status] };
32
31
  })
33
32
  .filter(({ value }) => value);
34
- const isStatListHaveCurrentTab = statList.filter(({ status }) => status === currentTab);
35
- if (!isStatListHaveCurrentTab.length && currentTab !== "total") {
36
- setCurrentTab("total");
33
+ const isStatListHaveCurrentTab = statList.filter(({ status }) => status === treeStatus.value);
34
+ if (!isStatListHaveCurrentTab.length && treeStatus.value !== "total") {
37
35
  setTreeStatus("total");
38
36
  }
39
37
 
40
38
  const allStatuses = statList.map(({ status, value }) => (
41
- <Tab data-testid={`tab-${status}`} key={status} id={status}>
39
+ <ReportTab data-testid={`tab-${status}`} key={status} id={status}>
42
40
  {capitalize(t(status) ?? status)} <Counter count={value} size="s" status={status} />
43
- </Tab>
41
+ </ReportTab>
44
42
  ));
45
43
 
46
44
  return (
47
45
  <>
48
- <Tab data-testid="tab-all" id={ALL_TAB}>
46
+ <ReportTab data-testid="tab-all" id={ALL_TAB}>
49
47
  {capitalize(t("total"))} <Counter count={currentEnv?.total ?? 0} size="s" />
50
- </Tab>
48
+ </ReportTab>
51
49
  {allStatuses}
52
50
  </>
53
51
  );
54
52
  }}
55
53
  />
56
- </TabsList>
54
+ </ReportTabsList>
57
55
  <SortBy />
58
56
  </div>
59
57
  </header>
@@ -69,14 +67,11 @@ const Body = () => {
69
67
  };
70
68
 
71
69
  export const ReportBody = () => {
72
- const initialTab = treeFiltersStore.value.status;
73
70
  return (
74
71
  <ReportContentProvider>
75
72
  <section>
76
- <Tabs initialTab={initialTab}>
77
- <Header />
78
- <Body />
79
- </Tabs>
73
+ <Header />
74
+ <Body />
80
75
  </section>
81
76
  </ReportContentProvider>
82
77
  );
@@ -0,0 +1,37 @@
1
+ import { Text } from "@allurereport/web-components";
2
+ import { useComputed } from "@preact/signals";
3
+ import { type ComponentChildren } from "preact";
4
+ import { useCallback } from "preact/hooks";
5
+ import { setTreeStatus, treeStatus } from "@/stores/treeFilters";
6
+ import type { AwesomeStatus } from "../../../types.js";
7
+ import * as styles from "./styles.scss";
8
+
9
+ export const ReportTabsList = (props: { children: ComponentChildren }) => {
10
+ return <div className={styles.tabsList}>{props.children}</div>;
11
+ };
12
+
13
+ export const ReportTab = (props: { id: AwesomeStatus; children: ComponentChildren }) => {
14
+ const { id, children, ...rest } = props;
15
+ const isCurrentTab = useComputed(() => treeStatus.value === id);
16
+
17
+ const handleCurrentTabClick = useCallback(() => {
18
+ setTreeStatus("total");
19
+ }, []);
20
+
21
+ const handleTabClick = useCallback(() => {
22
+ setTreeStatus(id);
23
+ }, [id]);
24
+
25
+ return (
26
+ <button
27
+ {...rest}
28
+ className={styles.tab}
29
+ onClick={isCurrentTab.value ? handleCurrentTabClick : handleTabClick}
30
+ aria-current={isCurrentTab.value || undefined}
31
+ >
32
+ <Text type="paragraph" size="m" bold>
33
+ {children}
34
+ </Text>
35
+ </button>
36
+ );
37
+ };
@@ -1,8 +1,6 @@
1
1
  import { Loadable, PageLoader, Text } from "@allurereport/web-components";
2
2
  import type { JSX } from "preact";
3
3
  import { useEffect, useRef, useState } from "preact/hooks";
4
- import { Footer } from "@/components/Footer";
5
- import { Header } from "@/components/Header";
6
4
  import MainReport from "@/components/MainReport";
7
5
  import SideBySide from "@/components/SideBySide";
8
6
  import TestResult from "@/components/TestResult";
@@ -7,13 +7,7 @@ const TrStepsEmpty = () => {
7
7
  return (
8
8
  <div className={styles["test-steps-empty"]}>
9
9
  <div className={styles["test-steps-empty-wrapper"]}>
10
- <SvgIcon
11
- size={"m"}
12
- width={"32px"}
13
- height={"32px"}
14
- id={allureIcons.lineDevCodeSquare}
15
- className={styles["test-steps-empty-icon"]}
16
- />
10
+ <SvgIcon size={"xl"} id={allureIcons.lineDevCodeSquare} className={styles["test-steps-empty-icon"]} />
17
11
  <Text className={styles["test-steps-empty-text"]}>{t("no-test-steps-results")}</Text>
18
12
  </div>
19
13
  </div>