Version not found. Please check the version and try again.

@cucumber/react-components 24.2.0 → 24.4.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 (691) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/dist/CucumberQueryContext.d.ts +3 -0
  4. package/dist/CucumberQueryContext.js +4 -0
  5. package/dist/GherkinQueryContext.d.ts +3 -0
  6. package/dist/GherkinQueryContext.js +4 -0
  7. package/dist/SearchContext.d.ts +18 -0
  8. package/dist/SearchContext.js +10 -0
  9. package/dist/ciCommitLink.d.ts +2 -0
  10. package/dist/ciCommitLink.js +12 -0
  11. package/dist/components/app/CICommitLink.d.ts +5 -0
  12. package/dist/components/app/CICommitLink.js +16 -0
  13. package/dist/components/app/CIJobLink.d.ts +5 -0
  14. package/dist/components/app/CIJobLink.js +10 -0
  15. package/dist/{src/components → components}/app/ControlledSearchProvider.d.ts +2 -3
  16. package/dist/components/app/ControlledSearchProvider.js +39 -0
  17. package/dist/components/app/CopyButton.d.ts +5 -0
  18. package/dist/components/app/CopyButton.js +23 -0
  19. package/dist/{src/components → components}/app/DocumentAccordion.d.ts +3 -4
  20. package/dist/components/app/DocumentAccordion.js +22 -0
  21. package/dist/{src/components → components}/app/DocumentAccordion.module.scss +15 -7
  22. package/dist/components/app/EnvelopesProvider.d.ts +7 -0
  23. package/dist/components/app/EnvelopesProvider.js +18 -0
  24. package/dist/components/app/ExecutionSummary.d.ts +2 -0
  25. package/dist/components/app/ExecutionSummary.js +38 -0
  26. package/dist/components/app/FilteredDocuments.d.ts +2 -0
  27. package/dist/components/app/FilteredDocuments.js +15 -0
  28. package/dist/components/app/GherkinDocumentList.d.ts +8 -0
  29. package/dist/components/app/GherkinDocumentList.js +23 -0
  30. package/dist/{src/components → components}/app/Header.d.ts +1 -2
  31. package/dist/components/app/Header.js +12 -0
  32. package/dist/components/app/HealthChart.d.ts +2 -0
  33. package/dist/components/app/HealthChart.js +14 -0
  34. package/dist/components/app/HighLight.d.ts +8 -0
  35. package/dist/components/app/HighLight.js +38 -0
  36. package/dist/components/app/ImplementationIcon.d.ts +5 -0
  37. package/dist/components/app/ImplementationIcon.js +10 -0
  38. package/dist/{src/components → components}/app/InMemorySearchProvider.d.ts +2 -3
  39. package/dist/components/app/InMemorySearchProvider.js +11 -0
  40. package/dist/components/app/NavigationButton.d.ts +2 -0
  41. package/dist/components/app/NavigationButton.js +6 -0
  42. package/dist/components/app/OSIcon.d.ts +5 -0
  43. package/dist/components/app/OSIcon.js +18 -0
  44. package/dist/components/app/QueriesProvider.d.ts +9 -0
  45. package/dist/components/app/QueriesProvider.js +7 -0
  46. package/dist/components/app/Report.d.ts +2 -0
  47. package/dist/components/app/Report.js +10 -0
  48. package/dist/components/app/RuntimeIcon.d.ts +5 -0
  49. package/dist/components/app/RuntimeIcon.js +18 -0
  50. package/dist/components/app/SearchBar.d.ts +2 -0
  51. package/dist/components/app/SearchBar.js +33 -0
  52. package/dist/components/app/StatusesSummary.d.ts +2 -0
  53. package/dist/components/app/StatusesSummary.js +16 -0
  54. package/dist/components/app/TestRunHooks.d.ts +2 -0
  55. package/dist/components/app/TestRunHooks.js +14 -0
  56. package/dist/{src/components → components}/app/UrlSearchProvider.d.ts +1 -2
  57. package/dist/components/app/UrlSearchProvider.js +29 -0
  58. package/dist/{src/components → components}/app/findMostSevereTestStepResultStatus.d.ts +0 -1
  59. package/dist/components/app/findMostSevereTestStepResultStatus.js +17 -0
  60. package/dist/components/app/icons/CucumberLogo.d.ts +2 -0
  61. package/dist/components/app/icons/CucumberLogo.js +5 -0
  62. package/dist/components/app/icons/Jvm.d.ts +2 -0
  63. package/dist/components/app/icons/Jvm.js +5 -0
  64. package/dist/components/app/icons/Linux.d.ts +2 -0
  65. package/dist/components/app/icons/Linux.js +5 -0
  66. package/dist/components/app/icons/MacOS.d.ts +2 -0
  67. package/dist/components/app/icons/MacOS.js +5 -0
  68. package/dist/components/app/icons/NodeJs.d.ts +2 -0
  69. package/dist/components/app/icons/NodeJs.js +5 -0
  70. package/dist/components/app/icons/Ruby.d.ts +2 -0
  71. package/dist/components/app/icons/Ruby.js +5 -0
  72. package/dist/components/app/icons/Windows.d.ts +2 -0
  73. package/dist/components/app/icons/Windows.js +5 -0
  74. package/dist/{src/components/app/index.js → components/app/index.d.ts} +0 -1
  75. package/dist/components/app/index.js +15 -0
  76. package/dist/components/app/makeSetupString.d.ts +2 -0
  77. package/dist/components/app/makeSetupString.js +21 -0
  78. package/dist/components/app/markdownComponents.d.ts +8 -0
  79. package/dist/components/app/markdownComponents.js +6 -0
  80. package/dist/components/app/rehypePlugins.d.ts +3 -0
  81. package/dist/components/app/rehypePlugins.js +9 -0
  82. package/dist/components/app/remarkPlugins.d.ts +3 -0
  83. package/dist/components/app/remarkPlugins.js +4 -0
  84. package/dist/{src/components → components}/customise/CustomRendering.d.ts +18 -19
  85. package/dist/components/customise/CustomRendering.js +35 -0
  86. package/dist/components/customise/CustomRendering.stories.scss +8 -0
  87. package/dist/{src/components/customise/index.js → components/customise/index.d.ts} +0 -1
  88. package/dist/components/customise/index.js +3 -0
  89. package/dist/{src/components → components}/customise/theming.d.ts +0 -1
  90. package/dist/components/customise/theming.js +2 -0
  91. package/dist/components/gherkin/Anchor.d.ts +3 -0
  92. package/dist/components/gherkin/Anchor.js +13 -0
  93. package/dist/components/gherkin/Background.d.ts +3 -0
  94. package/dist/components/gherkin/Background.js +18 -0
  95. package/dist/components/gherkin/Children.d.ts +3 -0
  96. package/dist/components/gherkin/Children.js +11 -0
  97. package/dist/components/gherkin/DataTable.d.ts +3 -0
  98. package/dist/components/gherkin/DataTable.js +16 -0
  99. package/dist/components/gherkin/Description.d.ts +3 -0
  100. package/dist/components/gherkin/Description.js +15 -0
  101. package/dist/components/gherkin/DocString.d.ts +3 -0
  102. package/dist/components/gherkin/DocString.js +12 -0
  103. package/dist/components/gherkin/ErrorMessage.d.ts +3 -0
  104. package/dist/components/gherkin/ErrorMessage.js +13 -0
  105. package/dist/components/gherkin/ErrorMessage.module.scss +24 -0
  106. package/dist/components/gherkin/Examples.d.ts +3 -0
  107. package/dist/components/gherkin/Examples.js +31 -0
  108. package/dist/components/gherkin/Feature.d.ts +3 -0
  109. package/dist/components/gherkin/Feature.js +30 -0
  110. package/dist/components/gherkin/GherkinDocument.d.ts +3 -0
  111. package/dist/components/gherkin/GherkinDocument.js +11 -0
  112. package/dist/components/gherkin/Keyword.d.ts +3 -0
  113. package/dist/components/gherkin/Keyword.js +11 -0
  114. package/dist/{src/components → components}/gherkin/Keyword.module.scss +0 -1
  115. package/dist/components/gherkin/Parameter.d.ts +3 -0
  116. package/dist/components/gherkin/Parameter.js +11 -0
  117. package/dist/components/gherkin/Rule.d.ts +3 -0
  118. package/dist/components/gherkin/Rule.js +26 -0
  119. package/dist/components/gherkin/Scenario.d.ts +3 -0
  120. package/dist/components/gherkin/Scenario.js +22 -0
  121. package/dist/components/gherkin/StatusIcon.d.ts +3 -0
  122. package/dist/components/gherkin/StatusIcon.js +24 -0
  123. package/dist/components/gherkin/StepsList.d.ts +4 -0
  124. package/dist/components/gherkin/StepsList.js +6 -0
  125. package/dist/components/gherkin/Tags.d.ts +3 -0
  126. package/dist/components/gherkin/Tags.js +15 -0
  127. package/dist/components/gherkin/Title.d.ts +3 -0
  128. package/dist/components/gherkin/Title.js +12 -0
  129. package/dist/components/gherkin/attachment/Attachment.d.ts +3 -0
  130. package/dist/components/gherkin/attachment/Attachment.js +45 -0
  131. package/dist/{src/components → components}/gherkin/attachment/Attachment.module.scss +15 -5
  132. package/dist/components/gherkin/attachment/Image.d.ts +7 -0
  133. package/dist/components/gherkin/attachment/Image.js +16 -0
  134. package/dist/components/gherkin/attachment/Links.d.ts +7 -0
  135. package/dist/components/gherkin/attachment/Links.js +14 -0
  136. package/dist/components/gherkin/attachment/Log.d.ts +7 -0
  137. package/dist/components/gherkin/attachment/Log.js +12 -0
  138. package/dist/components/gherkin/attachment/Text.d.ts +8 -0
  139. package/dist/components/gherkin/attachment/Text.js +16 -0
  140. package/dist/components/gherkin/attachment/Unknown.d.ts +3 -0
  141. package/dist/components/gherkin/attachment/Unknown.js +61 -0
  142. package/dist/components/gherkin/attachment/Video.d.ts +5 -0
  143. package/dist/components/gherkin/attachment/Video.js +16 -0
  144. package/dist/components/gherkin/attachment/attachmentFilename.d.ts +2 -0
  145. package/dist/components/gherkin/attachment/attachmentFilename.js +12 -0
  146. package/dist/components/gherkin/attachment/base64Decode.d.ts +9 -0
  147. package/dist/components/gherkin/attachment/base64Decode.js +19 -0
  148. package/dist/{src/components/gherkin/attachment/index.js → components/gherkin/attachment/index.d.ts} +0 -1
  149. package/dist/components/gherkin/attachment/index.js +2 -0
  150. package/dist/{src/components → components}/gherkin/attachment/useText.d.ts +1 -2
  151. package/dist/components/gherkin/attachment/useText.js +28 -0
  152. package/dist/components/gherkin/composeHookStepTitle.d.ts +2 -0
  153. package/dist/components/gherkin/composeHookStepTitle.js +23 -0
  154. package/dist/{src/components → components}/gherkin/composePickleStepTitle.d.ts +1 -2
  155. package/dist/components/gherkin/composePickleStepTitle.js +36 -0
  156. package/dist/{src/components/gherkin/index.js → components/gherkin/index.d.ts} +0 -1
  157. package/dist/components/gherkin/index.js +19 -0
  158. package/dist/{src/components → components}/gherkin/isNumber.d.ts +0 -1
  159. package/dist/components/gherkin/isNumber.js +7 -0
  160. package/dist/components/gherkin/statusName.d.ts +3 -0
  161. package/dist/components/gherkin/statusName.js +4 -0
  162. package/dist/{src/components/index.js → components/index.d.ts} +0 -1
  163. package/dist/components/index.js +4 -0
  164. package/dist/components/results/AmbiguousResult.d.ts +7 -0
  165. package/dist/components/results/AmbiguousResult.js +11 -0
  166. package/dist/components/results/AmbiguousResult.module.scss +22 -0
  167. package/dist/components/results/FailedResult.d.ts +7 -0
  168. package/dist/components/results/FailedResult.js +15 -0
  169. package/dist/components/results/PendingResult.d.ts +7 -0
  170. package/dist/components/results/PendingResult.js +12 -0
  171. package/dist/components/results/ResultNote.d.ts +2 -0
  172. package/dist/components/results/ResultNote.js +6 -0
  173. package/dist/components/results/ResultNote.module.scss +6 -0
  174. package/dist/components/results/SkippedResult.d.ts +7 -0
  175. package/dist/components/results/SkippedResult.js +12 -0
  176. package/dist/components/results/SourceReference.d.ts +7 -0
  177. package/dist/components/results/SourceReference.js +13 -0
  178. package/dist/components/results/SourceReference.module.scss +10 -0
  179. package/dist/components/results/TestCaseOutcome.d.ts +7 -0
  180. package/dist/components/results/TestCaseOutcome.js +32 -0
  181. package/dist/{src/components → components}/results/TestRunHookOutcome.d.ts +2 -3
  182. package/dist/components/results/TestRunHookOutcome.js +11 -0
  183. package/dist/components/results/TestStepAttachments.d.ts +7 -0
  184. package/dist/components/results/TestStepAttachments.js +12 -0
  185. package/dist/components/results/TestStepDuration.d.ts +5 -0
  186. package/dist/components/results/TestStepDuration.js +19 -0
  187. package/dist/{src/components → components}/results/TestStepOutcome.d.ts +2 -3
  188. package/dist/components/results/TestStepOutcome.js +45 -0
  189. package/dist/{src/components → components}/results/TestStepOutcome.module.scss +1 -1
  190. package/dist/components/results/UndefinedResult.d.ts +7 -0
  191. package/dist/components/results/UndefinedResult.js +18 -0
  192. package/dist/{src/components/gherkin/ErrorMessage.module.scss → components/results/UndefinedResult.module.scss} +5 -3
  193. package/dist/components/results/index.d.ts +2 -0
  194. package/dist/components/results/index.js +3 -0
  195. package/dist/{src/hooks/helpers.d.ts → ensure.d.ts} +0 -1
  196. package/dist/ensure.js +7 -0
  197. package/dist/{src/formatExecutionDistance.d.ts → formatExecutionDistance.d.ts} +0 -1
  198. package/dist/formatExecutionDistance.js +7 -0
  199. package/dist/{src/formatExecutionDuration.d.ts → formatExecutionDuration.d.ts} +0 -1
  200. package/dist/formatExecutionDuration.js +12 -0
  201. package/dist/{src/formatPassedQuantity.d.ts → formatPassedQuantity.d.ts} +0 -1
  202. package/dist/formatPassedQuantity.js +4 -0
  203. package/dist/{src/formatStatusRate.d.ts → formatStatusRate.d.ts} +0 -1
  204. package/dist/formatStatusRate.js +9 -0
  205. package/dist/{src/hooks/index.js → hooks/index.d.ts} +0 -1
  206. package/dist/hooks/index.js +3 -0
  207. package/dist/hooks/useFilteredDocuments.d.ts +5 -0
  208. package/dist/hooks/useFilteredDocuments.js +67 -0
  209. package/dist/hooks/useFilteredTestCases.d.ts +6 -0
  210. package/dist/hooks/useFilteredTestCases.js +36 -0
  211. package/dist/{src/hooks → hooks}/useMostSevereStatusByUri.d.ts +0 -1
  212. package/dist/hooks/useMostSevereStatusByUri.js +25 -0
  213. package/dist/hooks/useQueries.d.ts +6 -0
  214. package/dist/hooks/useQueries.js +9 -0
  215. package/dist/{src/hooks → hooks}/useResultStatistics.d.ts +1 -2
  216. package/dist/hooks/useResultStatistics.js +24 -0
  217. package/dist/hooks/useSearch.d.ts +2 -0
  218. package/dist/hooks/useSearch.js +6 -0
  219. package/dist/hooks/useSearchResult.d.ts +26 -0
  220. package/dist/hooks/useSearchResult.js +58 -0
  221. package/dist/hooks/useTestCaseStarted.d.ts +7 -0
  222. package/dist/hooks/useTestCaseStarted.js +20 -0
  223. package/dist/{src/hooks → hooks}/useTestRunHooks.d.ts +1 -2
  224. package/dist/hooks/useTestRunHooks.js +14 -0
  225. package/dist/{src/index.js → index.d.ts} +0 -1
  226. package/dist/index.js +3 -0
  227. package/dist/{src/isTagExpression.d.ts → isTagExpression.d.ts} +0 -1
  228. package/dist/isTagExpression.js +5 -0
  229. package/dist/search/FeatureSearch.d.ts +12 -0
  230. package/dist/search/FeatureSearch.js +39 -0
  231. package/dist/search/ScenarioLikeSearch.d.ts +19 -0
  232. package/dist/search/ScenarioLikeSearch.js +37 -0
  233. package/dist/search/StepSearch.d.ts +11 -0
  234. package/dist/search/StepSearch.js +40 -0
  235. package/dist/search/TextSearch.d.ts +11 -0
  236. package/dist/search/TextSearch.js +67 -0
  237. package/dist/search/createSearchIndex.d.ts +6 -0
  238. package/dist/search/createSearchIndex.js +10 -0
  239. package/dist/search/deriveLineageConstraints.d.ts +7 -0
  240. package/dist/search/deriveLineageConstraints.js +38 -0
  241. package/dist/search/filterAndExpandTestCaseEvents.d.ts +20 -0
  242. package/dist/search/filterAndExpandTestCaseEvents.js +32 -0
  243. package/dist/search/index.d.ts +6 -0
  244. package/dist/search/index.js +7 -0
  245. package/dist/search/pruneGherkinDocuments.d.ts +23 -0
  246. package/dist/search/pruneGherkinDocuments.js +179 -0
  247. package/dist/search/pruneTestCaseEvents.d.ts +16 -0
  248. package/dist/search/pruneTestCaseEvents.js +41 -0
  249. package/dist/search/types.d.ts +44 -0
  250. package/dist/search/types.js +2 -0
  251. package/dist/{src/statuses.d.ts → statuses.d.ts} +0 -1
  252. package/dist/statuses.js +12 -0
  253. package/dist/toRepositoryId.d.ts +1 -0
  254. package/dist/toRepositoryId.js +12 -0
  255. package/package.json +65 -75
  256. package/dist/src/CucumberQueryContext.d.ts +0 -5
  257. package/dist/src/CucumberQueryContext.d.ts.map +0 -1
  258. package/dist/src/CucumberQueryContext.js +0 -4
  259. package/dist/src/CucumberQueryContext.js.map +0 -1
  260. package/dist/src/GherkinQueryContext.d.ts +0 -5
  261. package/dist/src/GherkinQueryContext.d.ts.map +0 -1
  262. package/dist/src/GherkinQueryContext.js +0 -4
  263. package/dist/src/GherkinQueryContext.js.map +0 -1
  264. package/dist/src/SearchContext.d.ts +0 -13
  265. package/dist/src/SearchContext.d.ts.map +0 -1
  266. package/dist/src/SearchContext.js +0 -8
  267. package/dist/src/SearchContext.js.map +0 -1
  268. package/dist/src/ciCommitLink.d.ts +0 -3
  269. package/dist/src/ciCommitLink.d.ts.map +0 -1
  270. package/dist/src/ciCommitLink.js +0 -12
  271. package/dist/src/ciCommitLink.js.map +0 -1
  272. package/dist/src/components/app/CICommitLink.d.ts +0 -6
  273. package/dist/src/components/app/CICommitLink.d.ts.map +0 -1
  274. package/dist/src/components/app/CICommitLink.js +0 -21
  275. package/dist/src/components/app/CICommitLink.js.map +0 -1
  276. package/dist/src/components/app/CIJobLink.d.ts +0 -6
  277. package/dist/src/components/app/CIJobLink.d.ts.map +0 -1
  278. package/dist/src/components/app/CIJobLink.js +0 -14
  279. package/dist/src/components/app/CIJobLink.js.map +0 -1
  280. package/dist/src/components/app/ControlledSearchProvider.d.ts.map +0 -1
  281. package/dist/src/components/app/ControlledSearchProvider.js +0 -17
  282. package/dist/src/components/app/ControlledSearchProvider.js.map +0 -1
  283. package/dist/src/components/app/CopyButton.d.ts +0 -5
  284. package/dist/src/components/app/CopyButton.d.ts.map +0 -1
  285. package/dist/src/components/app/CopyButton.js +0 -23
  286. package/dist/src/components/app/CopyButton.js.map +0 -1
  287. package/dist/src/components/app/DocumentAccordion.d.ts.map +0 -1
  288. package/dist/src/components/app/DocumentAccordion.js +0 -30
  289. package/dist/src/components/app/DocumentAccordion.js.map +0 -1
  290. package/dist/src/components/app/EnvelopesProvider.d.ts +0 -8
  291. package/dist/src/components/app/EnvelopesProvider.d.ts.map +0 -1
  292. package/dist/src/components/app/EnvelopesProvider.js +0 -17
  293. package/dist/src/components/app/EnvelopesProvider.js.map +0 -1
  294. package/dist/src/components/app/ExecutionSummary.d.ts +0 -3
  295. package/dist/src/components/app/ExecutionSummary.d.ts.map +0 -1
  296. package/dist/src/components/app/ExecutionSummary.js +0 -84
  297. package/dist/src/components/app/ExecutionSummary.js.map +0 -1
  298. package/dist/src/components/app/FilteredDocuments.d.ts +0 -3
  299. package/dist/src/components/app/FilteredDocuments.d.ts.map +0 -1
  300. package/dist/src/components/app/FilteredDocuments.js +0 -15
  301. package/dist/src/components/app/FilteredDocuments.js.map +0 -1
  302. package/dist/src/components/app/GherkinDocumentList.d.ts +0 -9
  303. package/dist/src/components/app/GherkinDocumentList.d.ts.map +0 -1
  304. package/dist/src/components/app/GherkinDocumentList.js +0 -24
  305. package/dist/src/components/app/GherkinDocumentList.js.map +0 -1
  306. package/dist/src/components/app/Header.d.ts.map +0 -1
  307. package/dist/src/components/app/Header.js +0 -12
  308. package/dist/src/components/app/Header.js.map +0 -1
  309. package/dist/src/components/app/HealthChart.d.ts +0 -3
  310. package/dist/src/components/app/HealthChart.d.ts.map +0 -1
  311. package/dist/src/components/app/HealthChart.js +0 -15
  312. package/dist/src/components/app/HealthChart.js.map +0 -1
  313. package/dist/src/components/app/HighLight.d.ts +0 -9
  314. package/dist/src/components/app/HighLight.d.ts.map +0 -1
  315. package/dist/src/components/app/HighLight.js +0 -32
  316. package/dist/src/components/app/HighLight.js.map +0 -1
  317. package/dist/src/components/app/ImplementationIcon.d.ts +0 -6
  318. package/dist/src/components/app/ImplementationIcon.d.ts.map +0 -1
  319. package/dist/src/components/app/ImplementationIcon.js +0 -10
  320. package/dist/src/components/app/ImplementationIcon.js.map +0 -1
  321. package/dist/src/components/app/InMemorySearchProvider.d.ts.map +0 -1
  322. package/dist/src/components/app/InMemorySearchProvider.js +0 -10
  323. package/dist/src/components/app/InMemorySearchProvider.js.map +0 -1
  324. package/dist/src/components/app/NavigationButton.d.ts +0 -3
  325. package/dist/src/components/app/NavigationButton.d.ts.map +0 -1
  326. package/dist/src/components/app/NavigationButton.js +0 -6
  327. package/dist/src/components/app/NavigationButton.js.map +0 -1
  328. package/dist/src/components/app/OSIcon.d.ts +0 -6
  329. package/dist/src/components/app/OSIcon.d.ts.map +0 -1
  330. package/dist/src/components/app/OSIcon.js +0 -18
  331. package/dist/src/components/app/OSIcon.js.map +0 -1
  332. package/dist/src/components/app/QueriesProvider.d.ts +0 -10
  333. package/dist/src/components/app/QueriesProvider.d.ts.map +0 -1
  334. package/dist/src/components/app/QueriesProvider.js +0 -6
  335. package/dist/src/components/app/QueriesProvider.js.map +0 -1
  336. package/dist/src/components/app/Report.d.ts +0 -3
  337. package/dist/src/components/app/Report.d.ts.map +0 -1
  338. package/dist/src/components/app/Report.js +0 -19
  339. package/dist/src/components/app/Report.js.map +0 -1
  340. package/dist/src/components/app/RuntimeIcon.d.ts +0 -6
  341. package/dist/src/components/app/RuntimeIcon.d.ts.map +0 -1
  342. package/dist/src/components/app/RuntimeIcon.js +0 -18
  343. package/dist/src/components/app/RuntimeIcon.js.map +0 -1
  344. package/dist/src/components/app/SearchBar.d.ts +0 -3
  345. package/dist/src/components/app/SearchBar.d.ts.map +0 -1
  346. package/dist/src/components/app/SearchBar.js +0 -48
  347. package/dist/src/components/app/SearchBar.js.map +0 -1
  348. package/dist/src/components/app/StatusesSummary.d.ts +0 -3
  349. package/dist/src/components/app/StatusesSummary.d.ts.map +0 -1
  350. package/dist/src/components/app/StatusesSummary.js +0 -19
  351. package/dist/src/components/app/StatusesSummary.js.map +0 -1
  352. package/dist/src/components/app/TestRunHooks.d.ts +0 -3
  353. package/dist/src/components/app/TestRunHooks.d.ts.map +0 -1
  354. package/dist/src/components/app/TestRunHooks.js +0 -14
  355. package/dist/src/components/app/TestRunHooks.js.map +0 -1
  356. package/dist/src/components/app/UrlSearchProvider.d.ts.map +0 -1
  357. package/dist/src/components/app/UrlSearchProvider.js +0 -26
  358. package/dist/src/components/app/UrlSearchProvider.js.map +0 -1
  359. package/dist/src/components/app/findMostSevereTestStepResultStatus.d.ts.map +0 -1
  360. package/dist/src/components/app/findMostSevereTestStepResultStatus.js +0 -17
  361. package/dist/src/components/app/findMostSevereTestStepResultStatus.js.map +0 -1
  362. package/dist/src/components/app/icons/CucumberLogo.d.ts +0 -3
  363. package/dist/src/components/app/icons/CucumberLogo.d.ts.map +0 -1
  364. package/dist/src/components/app/icons/CucumberLogo.js +0 -9
  365. package/dist/src/components/app/icons/CucumberLogo.js.map +0 -1
  366. package/dist/src/components/app/icons/Jvm.d.ts +0 -3
  367. package/dist/src/components/app/icons/Jvm.d.ts.map +0 -1
  368. package/dist/src/components/app/icons/Jvm.js +0 -10
  369. package/dist/src/components/app/icons/Jvm.js.map +0 -1
  370. package/dist/src/components/app/icons/Linux.d.ts +0 -3
  371. package/dist/src/components/app/icons/Linux.d.ts.map +0 -1
  372. package/dist/src/components/app/icons/Linux.js +0 -20
  373. package/dist/src/components/app/icons/Linux.js.map +0 -1
  374. package/dist/src/components/app/icons/MacOS.d.ts +0 -3
  375. package/dist/src/components/app/icons/MacOS.d.ts.map +0 -1
  376. package/dist/src/components/app/icons/MacOS.js +0 -6
  377. package/dist/src/components/app/icons/MacOS.js.map +0 -1
  378. package/dist/src/components/app/icons/NodeJs.d.ts +0 -3
  379. package/dist/src/components/app/icons/NodeJs.d.ts.map +0 -1
  380. package/dist/src/components/app/icons/NodeJs.js +0 -8
  381. package/dist/src/components/app/icons/NodeJs.js.map +0 -1
  382. package/dist/src/components/app/icons/Ruby.d.ts +0 -3
  383. package/dist/src/components/app/icons/Ruby.d.ts.map +0 -1
  384. package/dist/src/components/app/icons/Ruby.js +0 -6
  385. package/dist/src/components/app/icons/Ruby.js.map +0 -1
  386. package/dist/src/components/app/icons/Windows.d.ts +0 -3
  387. package/dist/src/components/app/icons/Windows.d.ts.map +0 -1
  388. package/dist/src/components/app/icons/Windows.js +0 -6
  389. package/dist/src/components/app/icons/Windows.js.map +0 -1
  390. package/dist/src/components/app/index.d.ts +0 -15
  391. package/dist/src/components/app/index.d.ts.map +0 -1
  392. package/dist/src/components/app/index.js.map +0 -1
  393. package/dist/src/components/app/makeSetupString.d.ts +0 -3
  394. package/dist/src/components/app/makeSetupString.d.ts.map +0 -1
  395. package/dist/src/components/app/makeSetupString.js +0 -21
  396. package/dist/src/components/app/makeSetupString.js.map +0 -1
  397. package/dist/src/components/app/rehypePlugins.d.ts +0 -4
  398. package/dist/src/components/app/rehypePlugins.d.ts.map +0 -1
  399. package/dist/src/components/app/rehypePlugins.js +0 -9
  400. package/dist/src/components/app/rehypePlugins.js.map +0 -1
  401. package/dist/src/components/app/remarkPlugins.d.ts +0 -4
  402. package/dist/src/components/app/remarkPlugins.d.ts.map +0 -1
  403. package/dist/src/components/app/remarkPlugins.js +0 -4
  404. package/dist/src/components/app/remarkPlugins.js.map +0 -1
  405. package/dist/src/components/customise/CustomRendering.d.ts.map +0 -1
  406. package/dist/src/components/customise/CustomRendering.js +0 -34
  407. package/dist/src/components/customise/CustomRendering.js.map +0 -1
  408. package/dist/src/components/customise/CustomRendering.stories.scss +0 -25
  409. package/dist/src/components/customise/index.d.ts +0 -3
  410. package/dist/src/components/customise/index.d.ts.map +0 -1
  411. package/dist/src/components/customise/index.js.map +0 -1
  412. package/dist/src/components/customise/theming.d.ts.map +0 -1
  413. package/dist/src/components/customise/theming.js +0 -2
  414. package/dist/src/components/customise/theming.js.map +0 -1
  415. package/dist/src/components/gherkin/Anchor.d.ts +0 -4
  416. package/dist/src/components/gherkin/Anchor.d.ts.map +0 -1
  417. package/dist/src/components/gherkin/Anchor.js +0 -16
  418. package/dist/src/components/gherkin/Anchor.js.map +0 -1
  419. package/dist/src/components/gherkin/Background.d.ts +0 -4
  420. package/dist/src/components/gherkin/Background.d.ts.map +0 -1
  421. package/dist/src/components/gherkin/Background.js +0 -24
  422. package/dist/src/components/gherkin/Background.js.map +0 -1
  423. package/dist/src/components/gherkin/Children.d.ts +0 -4
  424. package/dist/src/components/gherkin/Children.d.ts.map +0 -1
  425. package/dist/src/components/gherkin/Children.js +0 -11
  426. package/dist/src/components/gherkin/Children.js.map +0 -1
  427. package/dist/src/components/gherkin/DataTable.d.ts +0 -4
  428. package/dist/src/components/gherkin/DataTable.d.ts.map +0 -1
  429. package/dist/src/components/gherkin/DataTable.js +0 -18
  430. package/dist/src/components/gherkin/DataTable.js.map +0 -1
  431. package/dist/src/components/gherkin/Description.d.ts +0 -4
  432. package/dist/src/components/gherkin/Description.d.ts.map +0 -1
  433. package/dist/src/components/gherkin/Description.js +0 -16
  434. package/dist/src/components/gherkin/Description.js.map +0 -1
  435. package/dist/src/components/gherkin/DocString.d.ts +0 -4
  436. package/dist/src/components/gherkin/DocString.d.ts.map +0 -1
  437. package/dist/src/components/gherkin/DocString.js +0 -13
  438. package/dist/src/components/gherkin/DocString.js.map +0 -1
  439. package/dist/src/components/gherkin/ErrorMessage.d.ts +0 -4
  440. package/dist/src/components/gherkin/ErrorMessage.d.ts.map +0 -1
  441. package/dist/src/components/gherkin/ErrorMessage.js +0 -11
  442. package/dist/src/components/gherkin/ErrorMessage.js.map +0 -1
  443. package/dist/src/components/gherkin/Examples.d.ts +0 -4
  444. package/dist/src/components/gherkin/Examples.d.ts.map +0 -1
  445. package/dist/src/components/gherkin/Examples.js +0 -42
  446. package/dist/src/components/gherkin/Examples.js.map +0 -1
  447. package/dist/src/components/gherkin/Feature.d.ts +0 -4
  448. package/dist/src/components/gherkin/Feature.d.ts.map +0 -1
  449. package/dist/src/components/gherkin/Feature.js +0 -40
  450. package/dist/src/components/gherkin/Feature.js.map +0 -1
  451. package/dist/src/components/gherkin/GherkinDocument.d.ts +0 -4
  452. package/dist/src/components/gherkin/GherkinDocument.d.ts.map +0 -1
  453. package/dist/src/components/gherkin/GherkinDocument.js +0 -11
  454. package/dist/src/components/gherkin/GherkinDocument.js.map +0 -1
  455. package/dist/src/components/gherkin/Keyword.d.ts +0 -4
  456. package/dist/src/components/gherkin/Keyword.d.ts.map +0 -1
  457. package/dist/src/components/gherkin/Keyword.js +0 -11
  458. package/dist/src/components/gherkin/Keyword.js.map +0 -1
  459. package/dist/src/components/gherkin/Parameter.d.ts +0 -4
  460. package/dist/src/components/gherkin/Parameter.d.ts.map +0 -1
  461. package/dist/src/components/gherkin/Parameter.js +0 -11
  462. package/dist/src/components/gherkin/Parameter.js.map +0 -1
  463. package/dist/src/components/gherkin/Rule.d.ts +0 -4
  464. package/dist/src/components/gherkin/Rule.d.ts.map +0 -1
  465. package/dist/src/components/gherkin/Rule.js +0 -36
  466. package/dist/src/components/gherkin/Rule.js.map +0 -1
  467. package/dist/src/components/gherkin/Scenario.d.ts +0 -4
  468. package/dist/src/components/gherkin/Scenario.d.ts.map +0 -1
  469. package/dist/src/components/gherkin/Scenario.js +0 -31
  470. package/dist/src/components/gherkin/Scenario.js.map +0 -1
  471. package/dist/src/components/gherkin/StatusIcon.d.ts +0 -4
  472. package/dist/src/components/gherkin/StatusIcon.d.ts.map +0 -1
  473. package/dist/src/components/gherkin/StatusIcon.js +0 -24
  474. package/dist/src/components/gherkin/StatusIcon.js.map +0 -1
  475. package/dist/src/components/gherkin/StepsList.d.ts +0 -5
  476. package/dist/src/components/gherkin/StepsList.d.ts.map +0 -1
  477. package/dist/src/components/gherkin/StepsList.js +0 -6
  478. package/dist/src/components/gherkin/StepsList.js.map +0 -1
  479. package/dist/src/components/gherkin/Tags.d.ts +0 -4
  480. package/dist/src/components/gherkin/Tags.d.ts.map +0 -1
  481. package/dist/src/components/gherkin/Tags.js +0 -16
  482. package/dist/src/components/gherkin/Tags.js.map +0 -1
  483. package/dist/src/components/gherkin/Title.d.ts +0 -4
  484. package/dist/src/components/gherkin/Title.d.ts.map +0 -1
  485. package/dist/src/components/gherkin/Title.js +0 -13
  486. package/dist/src/components/gherkin/Title.js.map +0 -1
  487. package/dist/src/components/gherkin/attachment/Attachment.d.ts +0 -4
  488. package/dist/src/components/gherkin/attachment/Attachment.d.ts.map +0 -1
  489. package/dist/src/components/gherkin/attachment/Attachment.js +0 -48
  490. package/dist/src/components/gherkin/attachment/Attachment.js.map +0 -1
  491. package/dist/src/components/gherkin/attachment/Image.d.ts +0 -8
  492. package/dist/src/components/gherkin/attachment/Image.d.ts.map +0 -1
  493. package/dist/src/components/gherkin/attachment/Image.js +0 -18
  494. package/dist/src/components/gherkin/attachment/Image.js.map +0 -1
  495. package/dist/src/components/gherkin/attachment/Links.d.ts +0 -8
  496. package/dist/src/components/gherkin/attachment/Links.d.ts.map +0 -1
  497. package/dist/src/components/gherkin/attachment/Links.js +0 -17
  498. package/dist/src/components/gherkin/attachment/Links.js.map +0 -1
  499. package/dist/src/components/gherkin/attachment/Log.d.ts +0 -8
  500. package/dist/src/components/gherkin/attachment/Log.d.ts.map +0 -1
  501. package/dist/src/components/gherkin/attachment/Log.js +0 -12
  502. package/dist/src/components/gherkin/attachment/Log.js.map +0 -1
  503. package/dist/src/components/gherkin/attachment/Text.d.ts +0 -9
  504. package/dist/src/components/gherkin/attachment/Text.d.ts.map +0 -1
  505. package/dist/src/components/gherkin/attachment/Text.js +0 -18
  506. package/dist/src/components/gherkin/attachment/Text.js.map +0 -1
  507. package/dist/src/components/gherkin/attachment/Unknown.d.ts +0 -4
  508. package/dist/src/components/gherkin/attachment/Unknown.d.ts.map +0 -1
  509. package/dist/src/components/gherkin/attachment/Unknown.js +0 -69
  510. package/dist/src/components/gherkin/attachment/Unknown.js.map +0 -1
  511. package/dist/src/components/gherkin/attachment/Video.d.ts +0 -6
  512. package/dist/src/components/gherkin/attachment/Video.d.ts.map +0 -1
  513. package/dist/src/components/gherkin/attachment/Video.js +0 -20
  514. package/dist/src/components/gherkin/attachment/Video.js.map +0 -1
  515. package/dist/src/components/gherkin/attachment/attachmentFilename.d.ts +0 -3
  516. package/dist/src/components/gherkin/attachment/attachmentFilename.d.ts.map +0 -1
  517. package/dist/src/components/gherkin/attachment/attachmentFilename.js +0 -12
  518. package/dist/src/components/gherkin/attachment/attachmentFilename.js.map +0 -1
  519. package/dist/src/components/gherkin/attachment/base64Decode.d.ts +0 -2
  520. package/dist/src/components/gherkin/attachment/base64Decode.d.ts.map +0 -1
  521. package/dist/src/components/gherkin/attachment/base64Decode.js +0 -5
  522. package/dist/src/components/gherkin/attachment/base64Decode.js.map +0 -1
  523. package/dist/src/components/gherkin/attachment/index.d.ts +0 -2
  524. package/dist/src/components/gherkin/attachment/index.d.ts.map +0 -1
  525. package/dist/src/components/gherkin/attachment/index.js.map +0 -1
  526. package/dist/src/components/gherkin/attachment/useText.d.ts.map +0 -1
  527. package/dist/src/components/gherkin/attachment/useText.js +0 -28
  528. package/dist/src/components/gherkin/attachment/useText.js.map +0 -1
  529. package/dist/src/components/gherkin/composeHookStepTitle.d.ts +0 -3
  530. package/dist/src/components/gherkin/composeHookStepTitle.d.ts.map +0 -1
  531. package/dist/src/components/gherkin/composeHookStepTitle.js +0 -23
  532. package/dist/src/components/gherkin/composeHookStepTitle.js.map +0 -1
  533. package/dist/src/components/gherkin/composePickleStepTitle.d.ts.map +0 -1
  534. package/dist/src/components/gherkin/composePickleStepTitle.js +0 -36
  535. package/dist/src/components/gherkin/composePickleStepTitle.js.map +0 -1
  536. package/dist/src/components/gherkin/index.d.ts +0 -19
  537. package/dist/src/components/gherkin/index.d.ts.map +0 -1
  538. package/dist/src/components/gherkin/index.js.map +0 -1
  539. package/dist/src/components/gherkin/isNumber.d.ts.map +0 -1
  540. package/dist/src/components/gherkin/isNumber.js +0 -7
  541. package/dist/src/components/gherkin/isNumber.js.map +0 -1
  542. package/dist/src/components/gherkin/statusName.d.ts +0 -4
  543. package/dist/src/components/gherkin/statusName.d.ts.map +0 -1
  544. package/dist/src/components/gherkin/statusName.js +0 -4
  545. package/dist/src/components/gherkin/statusName.js.map +0 -1
  546. package/dist/src/components/index.d.ts +0 -4
  547. package/dist/src/components/index.d.ts.map +0 -1
  548. package/dist/src/components/index.js.map +0 -1
  549. package/dist/src/components/results/TestCaseOutcome.d.ts +0 -8
  550. package/dist/src/components/results/TestCaseOutcome.d.ts.map +0 -1
  551. package/dist/src/components/results/TestCaseOutcome.js +0 -36
  552. package/dist/src/components/results/TestCaseOutcome.js.map +0 -1
  553. package/dist/src/components/results/TestRunHookOutcome.d.ts.map +0 -1
  554. package/dist/src/components/results/TestRunHookOutcome.js +0 -20
  555. package/dist/src/components/results/TestRunHookOutcome.js.map +0 -1
  556. package/dist/src/components/results/TestStepAttachments.d.ts +0 -8
  557. package/dist/src/components/results/TestStepAttachments.d.ts.map +0 -1
  558. package/dist/src/components/results/TestStepAttachments.js +0 -13
  559. package/dist/src/components/results/TestStepAttachments.js.map +0 -1
  560. package/dist/src/components/results/TestStepDuration.d.ts +0 -6
  561. package/dist/src/components/results/TestStepDuration.d.ts.map +0 -1
  562. package/dist/src/components/results/TestStepDuration.js +0 -17
  563. package/dist/src/components/results/TestStepDuration.js.map +0 -1
  564. package/dist/src/components/results/TestStepOutcome.d.ts.map +0 -1
  565. package/dist/src/components/results/TestStepOutcome.js +0 -54
  566. package/dist/src/components/results/TestStepOutcome.js.map +0 -1
  567. package/dist/src/components/results/TestStepResultDetails.d.ts +0 -4
  568. package/dist/src/components/results/TestStepResultDetails.d.ts.map +0 -1
  569. package/dist/src/components/results/TestStepResultDetails.js +0 -16
  570. package/dist/src/components/results/TestStepResultDetails.js.map +0 -1
  571. package/dist/src/components/results/index.d.ts +0 -3
  572. package/dist/src/components/results/index.d.ts.map +0 -1
  573. package/dist/src/components/results/index.js +0 -3
  574. package/dist/src/components/results/index.js.map +0 -1
  575. package/dist/src/formatExecutionDistance.d.ts.map +0 -1
  576. package/dist/src/formatExecutionDistance.js +0 -7
  577. package/dist/src/formatExecutionDistance.js.map +0 -1
  578. package/dist/src/formatExecutionDuration.d.ts.map +0 -1
  579. package/dist/src/formatExecutionDuration.js +0 -12
  580. package/dist/src/formatExecutionDuration.js.map +0 -1
  581. package/dist/src/formatPassedQuantity.d.ts.map +0 -1
  582. package/dist/src/formatPassedQuantity.js +0 -4
  583. package/dist/src/formatPassedQuantity.js.map +0 -1
  584. package/dist/src/formatStatusRate.d.ts.map +0 -1
  585. package/dist/src/formatStatusRate.js +0 -9
  586. package/dist/src/formatStatusRate.js.map +0 -1
  587. package/dist/src/hooks/helpers.d.ts.map +0 -1
  588. package/dist/src/hooks/helpers.js +0 -7
  589. package/dist/src/hooks/helpers.js.map +0 -1
  590. package/dist/src/hooks/index.d.ts +0 -3
  591. package/dist/src/hooks/index.d.ts.map +0 -1
  592. package/dist/src/hooks/index.js.map +0 -1
  593. package/dist/src/hooks/useFilteredDocuments.d.ts +0 -6
  594. package/dist/src/hooks/useFilteredDocuments.d.ts.map +0 -1
  595. package/dist/src/hooks/useFilteredDocuments.js +0 -49
  596. package/dist/src/hooks/useFilteredDocuments.js.map +0 -1
  597. package/dist/src/hooks/useMostSevereStatusByUri.d.ts.map +0 -1
  598. package/dist/src/hooks/useMostSevereStatusByUri.js +0 -25
  599. package/dist/src/hooks/useMostSevereStatusByUri.js.map +0 -1
  600. package/dist/src/hooks/useQueries.d.ts +0 -7
  601. package/dist/src/hooks/useQueries.d.ts.map +0 -1
  602. package/dist/src/hooks/useQueries.js +0 -9
  603. package/dist/src/hooks/useQueries.js.map +0 -1
  604. package/dist/src/hooks/useResultStatistics.d.ts.map +0 -1
  605. package/dist/src/hooks/useResultStatistics.js +0 -24
  606. package/dist/src/hooks/useResultStatistics.js.map +0 -1
  607. package/dist/src/hooks/useSearch.d.ts +0 -3
  608. package/dist/src/hooks/useSearch.d.ts.map +0 -1
  609. package/dist/src/hooks/useSearch.js +0 -6
  610. package/dist/src/hooks/useSearch.js.map +0 -1
  611. package/dist/src/hooks/useTestCaseStarted.d.ts +0 -3
  612. package/dist/src/hooks/useTestCaseStarted.d.ts.map +0 -1
  613. package/dist/src/hooks/useTestCaseStarted.js +0 -17
  614. package/dist/src/hooks/useTestCaseStarted.js.map +0 -1
  615. package/dist/src/hooks/useTestRunHooks.d.ts.map +0 -1
  616. package/dist/src/hooks/useTestRunHooks.js +0 -14
  617. package/dist/src/hooks/useTestRunHooks.js.map +0 -1
  618. package/dist/src/index.d.ts +0 -3
  619. package/dist/src/index.d.ts.map +0 -1
  620. package/dist/src/index.js.map +0 -1
  621. package/dist/src/isTagExpression.d.ts.map +0 -1
  622. package/dist/src/isTagExpression.js +0 -5
  623. package/dist/src/isTagExpression.js.map +0 -1
  624. package/dist/src/search/FeatureSearch.d.ts +0 -4
  625. package/dist/src/search/FeatureSearch.d.ts.map +0 -1
  626. package/dist/src/search/FeatureSearch.js +0 -45
  627. package/dist/src/search/FeatureSearch.js.map +0 -1
  628. package/dist/src/search/ScenarioLikeSearch.d.ts +0 -25
  629. package/dist/src/search/ScenarioLikeSearch.d.ts.map +0 -1
  630. package/dist/src/search/ScenarioLikeSearch.js +0 -41
  631. package/dist/src/search/ScenarioLikeSearch.js.map +0 -1
  632. package/dist/src/search/Search.d.ts +0 -11
  633. package/dist/src/search/Search.d.ts.map +0 -1
  634. package/dist/src/search/Search.js +0 -51
  635. package/dist/src/search/Search.js.map +0 -1
  636. package/dist/src/search/StepSearch.d.ts +0 -19
  637. package/dist/src/search/StepSearch.d.ts.map +0 -1
  638. package/dist/src/search/StepSearch.js +0 -44
  639. package/dist/src/search/StepSearch.js.map +0 -1
  640. package/dist/src/search/TagSearch.d.ts +0 -4
  641. package/dist/src/search/TagSearch.d.ts.map +0 -1
  642. package/dist/src/search/TagSearch.js +0 -57
  643. package/dist/src/search/TagSearch.js.map +0 -1
  644. package/dist/src/search/TextSearch.d.ts +0 -3
  645. package/dist/src/search/TextSearch.d.ts.map +0 -1
  646. package/dist/src/search/TextSearch.js +0 -63
  647. package/dist/src/search/TextSearch.js.map +0 -1
  648. package/dist/src/search/index.d.ts +0 -3
  649. package/dist/src/search/index.d.ts.map +0 -1
  650. package/dist/src/search/index.js +0 -3
  651. package/dist/src/search/index.js.map +0 -1
  652. package/dist/src/search/types.d.ts +0 -14
  653. package/dist/src/search/types.d.ts.map +0 -1
  654. package/dist/src/search/types.js +0 -2
  655. package/dist/src/search/types.js.map +0 -1
  656. package/dist/src/statuses.d.ts.map +0 -1
  657. package/dist/src/statuses.js +0 -12
  658. package/dist/src/statuses.js.map +0 -1
  659. package/dist/src/toRepositoryId.d.ts +0 -2
  660. package/dist/src/toRepositoryId.d.ts.map +0 -1
  661. package/dist/src/toRepositoryId.js +0 -11
  662. package/dist/src/toRepositoryId.js.map +0 -1
  663. package/dist/tsconfig.build.tsbuildinfo +0 -1
  664. /package/dist/{src/components → components}/app/CopyButton.module.scss +0 -0
  665. /package/dist/{src/components → components}/app/ExecutionSummary.module.scss +0 -0
  666. /package/dist/{src/components → components}/app/FilteredDocuments.module.scss +0 -0
  667. /package/dist/{src/components → components}/app/Header.module.scss +0 -0
  668. /package/dist/{src/components → components}/app/HealthChart.module.scss +0 -0
  669. /package/dist/{src/components → components}/app/NavigationButton.module.scss +0 -0
  670. /package/dist/{src/components → components}/app/Report.module.scss +0 -0
  671. /package/dist/{src/components → components}/app/SearchBar.module.scss +0 -0
  672. /package/dist/{src/components → components}/app/StatusesSummary.module.scss +0 -0
  673. /package/dist/{src/components → components}/app/TestRunHooks.module.scss +0 -0
  674. /package/dist/{src/components → components}/gherkin/Anchor.module.scss +0 -0
  675. /package/dist/{src/components → components}/gherkin/Children.module.scss +0 -0
  676. /package/dist/{src/components → components}/gherkin/DataTable.module.scss +0 -0
  677. /package/dist/{src/components → components}/gherkin/Description.module.scss +0 -0
  678. /package/dist/{src/components → components}/gherkin/DocString.module.scss +0 -0
  679. /package/dist/{src/components → components}/gherkin/Examples.module.scss +0 -0
  680. /package/dist/{src/components → components}/gherkin/Parameter.module.scss +0 -0
  681. /package/dist/{src/components → components}/gherkin/StatusIcon.module.scss +0 -0
  682. /package/dist/{src/components → components}/gherkin/StepsList.module.scss +0 -0
  683. /package/dist/{src/components → components}/gherkin/Tags.module.scss +0 -0
  684. /package/dist/{src/components → components}/gherkin/Title.module.scss +0 -0
  685. /package/dist/{src/components → components}/results/TestCaseOutcome.module.scss +0 -0
  686. /package/dist/{src/components → components}/results/TestRunHookOutcome.module.scss +0 -0
  687. /package/dist/{src/components → components}/results/TestStepAttachments.module.scss +0 -0
  688. /package/dist/{src/components → components}/results/TestStepDuration.module.scss +0 -0
  689. /package/dist/{src/styles → styles}/statuses.scss +0 -0
  690. /package/dist/{src/styles → styles}/tables.scss +0 -0
  691. /package/dist/{src/styles → styles}/theming.scss +0 -0
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { TimeConversion } from '@cucumber/messages';
3
+ import styles from './TestStepDuration.module.scss';
4
+ const subSecondFormat = new Intl.NumberFormat(undefined, {
5
+ maximumFractionDigits: 0,
6
+ });
7
+ const secondPlusFormat = new Intl.NumberFormat(undefined, {
8
+ maximumFractionDigits: 3,
9
+ });
10
+ export const TestStepDuration = ({ duration }) => {
11
+ const millis = TimeConversion.durationToMilliseconds(duration);
12
+ if (millis < 1) {
13
+ return null;
14
+ }
15
+ return (_jsx("span", { className: styles.duration, children: millis < 1000
16
+ ? `${subSecondFormat.format(millis)}ms`
17
+ : `${secondPlusFormat.format(millis / 1000)}s` }));
18
+ };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdFN0ZXBEdXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3Jlc3VsdHMvVGVzdFN0ZXBEdXJhdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFHbEUsT0FBTyxNQUFNLE1BQU0sZ0NBQWdDLENBQUE7QUFFbkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtJQUN2RCxxQkFBcUIsRUFBRSxDQUFDO0NBQ3pCLENBQUMsQ0FBQTtBQUVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtJQUN4RCxxQkFBcUIsRUFBRSxDQUFDO0NBQ3pCLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUErQixDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtJQUMzRSxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDOUQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFDRCxPQUFPLENBQ0wsZUFBTSxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsWUFDN0IsTUFBTSxHQUFHLElBQUk7WUFDWixDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ3ZDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FDM0MsQ0FDUixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEdXJhdGlvbiwgVGltZUNvbnZlcnNpb24gfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgdHlwZSB7IEZDIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9UZXN0U3RlcER1cmF0aW9uLm1vZHVsZS5zY3NzJ1xuXG5jb25zdCBzdWJTZWNvbmRGb3JtYXQgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQodW5kZWZpbmVkLCB7XG4gIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMCxcbn0pXG5cbmNvbnN0IHNlY29uZFBsdXNGb3JtYXQgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQodW5kZWZpbmVkLCB7XG4gIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMyxcbn0pXG5cbmV4cG9ydCBjb25zdCBUZXN0U3RlcER1cmF0aW9uOiBGQzx7IGR1cmF0aW9uOiBEdXJhdGlvbiB9PiA9ICh7IGR1cmF0aW9uIH0pID0+IHtcbiAgY29uc3QgbWlsbGlzID0gVGltZUNvbnZlcnNpb24uZHVyYXRpb25Ub01pbGxpc2Vjb25kcyhkdXJhdGlvbilcbiAgaWYgKG1pbGxpcyA8IDEpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHJldHVybiAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuZHVyYXRpb259PlxuICAgICAge21pbGxpcyA8IDEwMDBcbiAgICAgICAgPyBgJHtzdWJTZWNvbmRGb3JtYXQuZm9ybWF0KG1pbGxpcyl9bXNgXG4gICAgICAgIDogYCR7c2Vjb25kUGx1c0Zvcm1hdC5mb3JtYXQobWlsbGlzIC8gMTAwMCl9c2B9XG4gICAgPC9zcGFuPlxuICApXG59XG4iXX0=
@@ -1,9 +1,8 @@
1
- import { TestStep, TestStepFinished } from '@cucumber/messages';
2
- import { FC } from 'react';
1
+ import { type TestStep, type TestStepFinished } from '@cucumber/messages';
2
+ import type { FC } from 'react';
3
3
  interface Props {
4
4
  testStep: TestStep;
5
5
  testStepFinished: TestStepFinished;
6
6
  }
7
7
  export declare const TestStepOutcome: FC<Props>;
8
8
  export {};
9
- //# sourceMappingURL=TestStepOutcome.d.ts.map
@@ -0,0 +1,45 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { TestStepResultStatus, } from '@cucumber/messages';
3
+ import { useQueries } from '../../hooks/index.js';
4
+ import { composeHookStepTitle } from '../gherkin/composeHookStepTitle.js';
5
+ import { composePickleStepTitle } from '../gherkin/composePickleStepTitle.js';
6
+ import { DataTable, DocString, Keyword, Parameter, StatusIcon } from '../gherkin/index.js';
7
+ import { AmbiguousResult } from './AmbiguousResult.js';
8
+ import { FailedResult } from './FailedResult.js';
9
+ import { PendingResult } from './PendingResult.js';
10
+ import { SkippedResult } from './SkippedResult.js';
11
+ import { TestStepAttachments } from './TestStepAttachments.js';
12
+ import { TestStepDuration } from './TestStepDuration.js';
13
+ import styles from './TestStepOutcome.module.scss';
14
+ import { UndefinedResult } from './UndefinedResult.js';
15
+ export const TestStepOutcome = ({ testStep, testStepFinished }) => {
16
+ return (_jsxs("li", { "data-status": testStepFinished.testStepResult.status, children: [_jsxs("div", { className: styles.header, children: [_jsx("div", { className: styles.status, children: _jsx(StatusIcon, { status: testStepFinished.testStepResult.status }) }), _jsxs("div", { className: styles.title, children: [_jsxs("h3", { className: styles.name, children: [testStep.hookId && _jsx(HookStepTitle, { testStep: testStep }), testStep.pickleStepId && _jsx(PickleStepTitle, { testStep: testStep })] }), _jsx(TestStepDuration, { duration: testStepFinished.testStepResult.duration })] })] }), _jsxs("div", { className: styles.content, children: [testStep.pickleStepId && _jsx(PickleStepArgument, { testStep: testStep }), testStepFinished.testStepResult.status === TestStepResultStatus.AMBIGUOUS && (_jsx(AmbiguousResult, { testStep: testStep })), testStepFinished.testStepResult.status === TestStepResultStatus.FAILED && (_jsx(FailedResult, { result: testStepFinished.testStepResult })), testStepFinished.testStepResult.status === TestStepResultStatus.PENDING && (_jsx(PendingResult, { result: testStepFinished.testStepResult })), testStepFinished.testStepResult.status === TestStepResultStatus.SKIPPED && (_jsx(SkippedResult, { result: testStepFinished.testStepResult })), testStepFinished.testStepResult.status === TestStepResultStatus.UNDEFINED && (_jsx(UndefinedResult, { testStep: testStep })), _jsx(TestStepAttachments, { testStepOrHookFinished: testStepFinished })] })] }));
17
+ };
18
+ const HookStepTitle = ({ testStep }) => {
19
+ const { cucumberQuery } = useQueries();
20
+ const hook = cucumberQuery.findHookBy(testStep);
21
+ return _jsx(_Fragment, { children: composeHookStepTitle(hook) });
22
+ };
23
+ const PickleStepTitle = ({ testStep }) => {
24
+ const { cucumberQuery } = useQueries();
25
+ const pickleStep = cucumberQuery.findPickleStepBy(testStep);
26
+ const step = cucumberQuery.findStepBy(pickleStep);
27
+ return (_jsxs(_Fragment, { children: [_jsx(Keyword, { children: step?.keyword?.trim() }), composePickleStepTitle(pickleStep.text, testStep.stepMatchArgumentsLists).map((fragment, index) => {
28
+ if (fragment.parameterTypeName) {
29
+ return (_jsx(Parameter, { value: fragment.value, parameterTypeName: fragment.parameterTypeName, children: fragment.value }, index));
30
+ }
31
+ return _jsx("span", { children: fragment.value }, index);
32
+ })] }));
33
+ };
34
+ const PickleStepArgument = ({ testStep }) => {
35
+ const { cucumberQuery } = useQueries();
36
+ const pickleStep = cucumberQuery.findPickleStepBy(testStep);
37
+ if (pickleStep.argument?.docString) {
38
+ return _jsx(DocString, { docString: pickleStep.argument.docString });
39
+ }
40
+ if (pickleStep.argument?.dataTable) {
41
+ return _jsx(DataTable, { dataTable: pickleStep.argument.dataTable });
42
+ }
43
+ return null;
44
+ };
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdFN0ZXBPdXRjb21lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVzdWx0cy9UZXN0U3RlcE91dGNvbWUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBSUwsb0JBQW9CLEdBQ3JCLE1BQU0sb0JBQW9CLENBQUE7QUFHM0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3hELE9BQU8sTUFBTSxNQUFNLCtCQUErQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQU90RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUU7SUFDM0UsT0FBTyxDQUNMLDZCQUFpQixnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxhQUNyRCxlQUFLLFNBQVMsRUFBRSxNQUFNLENBQUMs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QUFTLElBRVIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQ3JCLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsWUFFNUMsUUFBUSxDQUFDLEtBQUssSUFKVixLQUFLLENBS0EsQ0FDYixDQUFBO2dCQUNILENBQUM7Z0JBQ0QsT0FBTyx5QkFBbUIsUUFBUSxDQUFDLEtBQUssSUFBdEIsS0FBSyxDQUF5QixDQUFBO1lBQ2xELENBQUMsQ0FDRixJQUNBLENBQ0osQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sa0JBQWtCLEdBQStCLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO0lBQ3RFLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQTtJQUN0QyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFlLENBQUE7SUFDekUsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sS0FBQyxTQUFTLElBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFJLENBQUE7SUFDaEUsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEtBQUMsU0FBUyxJQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBSSxDQUFBO0lBQ2hFLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgUGlja2xlU3RlcCxcbiAgdHlwZSBUZXN0U3RlcCxcbiAgdHlwZSBUZXN0U3RlcEZpbmlzaGVkLFxuICBUZXN0U3RlcFJlc3VsdFN0YXR1cyxcbn0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBGQyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB1c2VRdWVyaWVzIH0gZnJvbSAnLi4vLi4vaG9va3MvaW5kZXguanMnXG5pbXBvcnQgeyBjb21wb3NlSG9va1N0ZXBUaXRsZSB9IGZyb20gJy4uL2doZXJraW4vY29tcG9zZUhvb2tTdGVwVGl0bGUuanMnXG5pbXBvcnQgeyBjb21wb3NlUGlja2xlU3RlcFRpdGxlIH0gZnJvbSAnLi4vZ2hlcmtpbi9jb21wb3NlUGlja2xlU3RlcFRpdGxlLmpzJ1xuaW1wb3J0IHsgRGF0YVRhYmxlLCBEb2NTdHJpbmcsIEtleXdvcmQsIFBhcmFtZXRlciwgU3RhdHVzSWNvbiB9IGZyb20gJy4uL2doZXJraW4vaW5kZXguanMnXG5pbXBvcnQgeyBBbWJpZ3VvdXNSZXN1bHQgfSBmcm9tICcuL0FtYmlndW91c1Jlc3VsdC5qcydcbmltcG9ydCB7IEZhaWxlZFJlc3VsdCB9IGZyb20gJy4vRmFpbGVkUmVzdWx0LmpzJ1xuaW1wb3J0IHsgUGVuZGluZ1Jlc3VsdCB9IGZyb20gJy4vUGVuZGluZ1Jlc3VsdC5qcydcbmltcG9ydCB7IFNraXBwZWRSZXN1bHQgfSBmcm9tICcuL1NraXBwZWRSZXN1bHQuanMnXG5pbXBvcnQgeyBUZXN0U3RlcEF0dGFjaG1lbnRzIH0gZnJvbSAnLi9UZXN0U3RlcEF0dGFjaG1lbnRzLmpzJ1xuaW1wb3J0IHsgVGVzdFN0ZXBEdXJhdGlvbiB9IGZyb20gJy4vVGVzdFN0ZXBEdXJhdGlvbi5qcydcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9UZXN0U3RlcE91dGNvbWUubW9kdWxlLnNjc3MnXG5pbXBvcnQgeyBVbmRlZmluZWRSZXN1bHQgfSBmcm9tICcuL1VuZGVmaW5lZFJlc3VsdC5qcydcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgdGVzdFN0ZXA6IFRlc3RTdGVwXG4gIHRlc3RTdGVwRmluaXNoZWQ6IFRlc3RTdGVwRmluaXNoZWRcbn1cblxuZXhwb3J0IGNvbnN0IFRlc3RTdGVwT3V0Y29tZTogRkM8UHJvcHM+ID0gKHsgdGVzdFN0ZXAsIHRlc3RTdGVwRmluaXNoZWQgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxsaSBkYXRhLXN0YXR1cz17dGVzdFN0ZXBGaW5pc2hlZC50ZXN0U3RlcFJlc3VsdC5zdGF0dXN9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5oZWFkZXJ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnN0YXR1c30+XG4gICAgICAgICAgPFN0YXR1c0ljb24gc3RhdHVzPXt0ZXN0U3RlcEZpbmlzaGVkLnRlc3RTdGVwUmVzdWx0LnN0YXR1c30gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMudGl0bGV9PlxuICAgICAgICAgIDxoMyBjbGFzc05hbWU9e3N0eWxlcy5uYW1lfT5cbiAgICAgICAgICAgIHt0ZXN0U3RlcC5ob29rSWQgJiYgPEhvb2tTdGVwVGl0bGUgdGVzdFN0ZXA9e3Rlc3RTdGVwfSAvPn1cbiAgICAgICAgICAgIHt0ZXN0U3RlcC5waWNrbGVTdGVwSWQgJiYgPFBpY2tsZVN0ZXBUaXRsZSB0ZXN0U3RlcD17dGVzdFN0ZXB9IC8+fVxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPFRlc3RTdGVwRHVyYXRpb24gZHVyYXRpb249e3Rlc3RTdGVwRmluaXNoZWQudGVzdFN0ZXBSZXN1bHQuZHVyYXRpb259IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRlbnR9PlxuICAgICAgICB7dGVzdFN0ZXAucGlja2xlU3RlcElkICYmIDxQaWNrbGVTdGVwQXJndW1lbnQgdGVzdFN0ZXA9e3Rlc3RTdGVwfSAvPn1cbiAgICAgICAge3Rlc3RTdGVwRmluaXNoZWQudGVzdFN0ZXBSZXN1bHQuc3RhdHVzID09PSBUZXN0U3RlcFJlc3VsdFN0YXR1cy5BTUJJR1VPVVMgJiYgKFxuICAgICAgICAgIDxBbWJpZ3VvdXNSZXN1bHQgdGVzdFN0ZXA9e3Rlc3RTdGVwfSAvPlxuICAgICAgICApfVxuICAgICAgICB7dGVzdFN0ZXBGaW5pc2hlZC50ZXN0U3RlcFJlc3VsdC5zdGF0dXMgPT09IFRlc3RTdGVwUmVzdWx0U3RhdHVzLkZBSUxFRCAmJiAoXG4gICAgICAgICAgPEZhaWxlZFJlc3VsdCByZXN1bHQ9e3Rlc3RTdGVwRmluaXNoZWQudGVzdFN0ZXBSZXN1bHR9IC8+XG4gICAgICAgICl9XG4gICAgICAgIHt0ZXN0U3RlcEZpbmlzaGVkLnRlc3RTdGVwUmVzdWx0LnN0YXR1cyA9PT0gVGVzdFN0ZXBSZXN1bHRTdGF0dXMuUEVORElORyAmJiAoXG4gICAgICAgICAgPFBlbmRpbmdSZXN1bHQgcmVzdWx0PXt0ZXN0U3RlcEZpbmlzaGVkLnRlc3RTdGVwUmVzdWx0fSAvPlxuICAgICAgICApfVxuICAgICAgICB7dGVzdFN0ZXBGaW5pc2hlZC50ZXN0U3RlcFJlc3VsdC5zdGF0dXMgPT09IFRlc3RTdGVwUmVzdWx0U3RhdHVzLlNLSVBQRUQgJiYgKFxuICAgICAgICAgIDxTa2lwcGVkUmVzdWx0IHJlc3VsdD17dGVzdFN0ZXBGaW5pc2hlZC50ZXN0U3RlcFJlc3VsdH0gLz5cbiAgICAgICAgKX1cbiAgICAgICAge3Rlc3RTdGVwRmluaXNoZWQudGVzdFN0ZXBSZXN1bHQuc3RhdHVzID09PSBUZXN0U3RlcFJlc3VsdFN0YXR1cy5VTkRFRklORUQgJiYgKFxuICAgICAgICAgIDxVbmRlZmluZWRSZXN1bHQgdGVzdFN0ZXA9e3Rlc3RTdGVwfSAvPlxuICAgICAgICApfVxuICAgICAgICA8VGVzdFN0ZXBBdHRhY2htZW50cyB0ZXN0U3RlcE9ySG9va0ZpbmlzaGVkPXt0ZXN0U3RlcEZpbmlzaGVkfSAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgKVxufVxuXG5jb25zdCBIb29rU3RlcFRpdGxlOiBGQzx7IHRlc3RTdGVwOiBUZXN0U3RlcCB9PiA9ICh7IHRlc3RTdGVwIH0pID0+IHtcbiAgY29uc3QgeyBjdWN1bWJlclF1ZXJ5IH0gPSB1c2VRdWVyaWVzKClcbiAgY29uc3QgaG9vayA9IGN1Y3VtYmVyUXVlcnkuZmluZEhvb2tCeSh0ZXN0U3RlcClcbiAgcmV0dXJuIDw+e2NvbXBvc2VIb29rU3RlcFRpdGxlKGhvb2spfTwvPlxufVxuXG5jb25zdCBQaWNrbGVTdGVwVGl0bGU6IEZDPHsgdGVzdFN0ZXA6IFRlc3RTdGVwIH0+ID0gKHsgdGVzdFN0ZXAgfSkgPT4ge1xuICBjb25zdCB7IGN1Y3VtYmVyUXVlcnkgfSA9IHVzZVF1ZXJpZXMoKVxuICBjb25zdCBwaWNrbGVTdGVwID0gY3VjdW1iZXJRdWVyeS5maW5kUGlja2xlU3RlcEJ5KHRlc3RTdGVwKSBhcyBQaWNrbGVTdGVwXG4gIGNvbnN0IHN0ZXAgPSBjdWN1bWJlclF1ZXJ5LmZpbmRTdGVwQnkocGlja2xlU3RlcClcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEtleXdvcmQ+e3N0ZXA/LmtleXdvcmQ/LnRyaW0oKX08L0tleXdvcmQ+XG4gICAgICB7Y29tcG9zZVBpY2tsZVN0ZXBUaXRsZShwaWNrbGVTdGVwLnRleHQsIHRlc3RTdGVwLnN0ZXBNYXRjaEFyZ3VtZW50c0xpc3RzKS5tYXAoXG4gICAgICAgIChmcmFnbWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICBpZiAoZnJhZ21lbnQucGFyYW1ldGVyVHlwZU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxQYXJhbWV0ZXJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgIHZhbHVlPXtmcmFnbWVudC52YWx1ZX1cbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJUeXBlTmFtZT17ZnJhZ21lbnQucGFyYW1ldGVyVHlwZU5hbWV9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZnJhZ21lbnQudmFsdWV9XG4gICAgICAgICAgICAgIDwvUGFyYW1ldGVyPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gPHNwYW4ga2V5PXtpbmRleH0+e2ZyYWdtZW50LnZhbHVlfTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgKX1cbiAgICA8Lz5cbiAgKVxufVxuXG5jb25zdCBQaWNrbGVTdGVwQXJndW1lbnQ6IEZDPHsgdGVzdFN0ZXA6IFRlc3RTdGVwIH0+ID0gKHsgdGVzdFN0ZXAgfSkgPT4ge1xuICBjb25zdCB7IGN1Y3VtYmVyUXVlcnkgfSA9IHVzZVF1ZXJpZXMoKVxuICBjb25zdCBwaWNrbGVTdGVwID0gY3VjdW1iZXJRdWVyeS5maW5kUGlja2xlU3RlcEJ5KHRlc3RTdGVwKSBhcyBQaWNrbGVTdGVwXG4gIGlmIChwaWNrbGVTdGVwLmFyZ3VtZW50Py5kb2NTdHJpbmcpIHtcbiAgICByZXR1cm4gPERvY1N0cmluZyBkb2NTdHJpbmc9e3BpY2tsZVN0ZXAuYXJndW1lbnQuZG9jU3RyaW5nfSAvPlxuICB9XG4gIGlmIChwaWNrbGVTdGVwLmFyZ3VtZW50Py5kYXRhVGFibGUpIHtcbiAgICByZXR1cm4gPERhdGFUYWJsZSBkYXRhVGFibGU9e3BpY2tsZVN0ZXAuYXJndW1lbnQuZGF0YVRhYmxlfSAvPlxuICB9XG4gIHJldHVybiBudWxsXG59XG4iXX0=
@@ -27,7 +27,7 @@
27
27
  }
28
28
 
29
29
  .content {
30
- margin-left: 1.125rem;
30
+ margin-left: 1.375rem;
31
31
 
32
32
  // bits of detail (doc string, data table, error, attachments) get consistent spacing between them
33
33
  > * {
@@ -0,0 +1,7 @@
1
+ import type { TestStep } from '@cucumber/messages';
2
+ import type { FC } from 'react';
3
+ interface Props {
4
+ testStep: TestStep;
5
+ }
6
+ export declare const UndefinedResult: FC<Props>;
7
+ export {};
@@ -0,0 +1,18 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ensure } from '../../ensure.js';
3
+ import { useQueries } from '../../hooks/index.js';
4
+ import { ResultNote } from './ResultNote.js';
5
+ import styles from './UndefinedResult.module.scss';
6
+ export const UndefinedResult = ({ testStep }) => {
7
+ const { cucumberQuery } = useQueries();
8
+ const pickleStep = ensure(cucumberQuery.findPickleStepBy(testStep), 'Expected TestStep with UNDEFINED status to have a PickleStep');
9
+ const snippets = cucumberQuery
10
+ .findSuggestionsBy(pickleStep)
11
+ .flatMap((suggestion) => suggestion.snippets);
12
+ if (snippets.length === 0) {
13
+ return _jsx(ResultNote, { children: "No step definition found." });
14
+ }
15
+ const concatenatedCode = snippets.map((snippet) => snippet.code).join('\n\n');
16
+ return (_jsxs(_Fragment, { children: [_jsx(ResultNote, { children: "No step definition found. Implement with the snippet(s) below:" }), _jsx("pre", { className: styles.snippets, children: _jsx("code", { children: concatenatedCode }) })] }));
17
+ };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVW5kZWZpbmVkUmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVzdWx0cy9VbmRlZmluZWRSZXN1bHQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM1QyxPQUFPLE1BQU0sTUFBTSwrQkFBK0IsQ0FBQTtBQU1sRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7SUFDekQsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFBO0lBQ3RDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FDdkIsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUN4Qyw4REFBOEQsQ0FDL0QsQ0FBQTtJQUNELE1BQU0sUUFBUSxHQUFHLGFBQWE7U0FDM0IsaUJBQWlCLENBQUMsVUFBVSxDQUFDO1NBQzdCLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9DLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLEtBQUMsVUFBVSw0Q0FBdUMsQ0FBQTtJQUMzRCxDQUFDO0lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzdFLE9BQU8sQ0FDTCw4QkFDRSxLQUFDLFVBQVUsaUZBQTRFLEVBQ3ZGLGNBQUssU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLFlBQzdCLHlCQUFPLGdCQUFnQixHQUFRLEdBQzNCLElBQ0wsQ0FDSixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUZXN0U3RlcCB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB0eXBlIHsgRkMgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgZW5zdXJlIH0gZnJvbSAnLi4vLi4vZW5zdXJlLmpzJ1xuaW1wb3J0IHsgdXNlUXVlcmllcyB9IGZyb20gJy4uLy4uL2hvb2tzL2luZGV4LmpzJ1xuaW1wb3J0IHsgUmVzdWx0Tm90ZSB9IGZyb20gJy4vUmVzdWx0Tm90ZS5qcydcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9VbmRlZmluZWRSZXN1bHQubW9kdWxlLnNjc3MnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIHRlc3RTdGVwOiBUZXN0U3RlcFxufVxuXG5leHBvcnQgY29uc3QgVW5kZWZpbmVkUmVzdWx0OiBGQzxQcm9wcz4gPSAoeyB0ZXN0U3RlcCB9KSA9PiB7XG4gIGNvbnN0IHsgY3VjdW1iZXJRdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIGNvbnN0IHBpY2tsZVN0ZXAgPSBlbnN1cmUoXG4gICAgY3VjdW1iZXJRdWVyeS5maW5kUGlja2xlU3RlcEJ5KHRlc3RTdGVwKSxcbiAgICAnRXhwZWN0ZWQgVGVzdFN0ZXAgd2l0aCBVTkRFRklORUQgc3RhdHVzIHRvIGhhdmUgYSBQaWNrbGVTdGVwJ1xuICApXG4gIGNvbnN0IHNuaXBwZXRzID0gY3VjdW1iZXJRdWVyeVxuICAgIC5maW5kU3VnZ2VzdGlvbnNCeShwaWNrbGVTdGVwKVxuICAgIC5mbGF0TWFwKChzdWdnZXN0aW9uKSA9PiBzdWdnZXN0aW9uLnNuaXBwZXRzKVxuICBpZiAoc25pcHBldHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIDxSZXN1bHROb3RlPk5vIHN0ZXAgZGVmaW5pdGlvbiBmb3VuZC48L1Jlc3VsdE5vdGU+XG4gIH1cbiAgY29uc3QgY29uY2F0ZW5hdGVkQ29kZSA9IHNuaXBwZXRzLm1hcCgoc25pcHBldCkgPT4gc25pcHBldC5jb2RlKS5qb2luKCdcXG5cXG4nKVxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8UmVzdWx0Tm90ZT5ObyBzdGVwIGRlZmluaXRpb24gZm91bmQuIEltcGxlbWVudCB3aXRoIHRoZSBzbmlwcGV0KHMpIGJlbG93OjwvUmVzdWx0Tm90ZT5cbiAgICAgIDxwcmUgY2xhc3NOYW1lPXtzdHlsZXMuc25pcHBldHN9PlxuICAgICAgICA8Y29kZT57Y29uY2F0ZW5hdGVkQ29kZX08L2NvZGU+XG4gICAgICA8L3ByZT5cbiAgICA8Lz5cbiAgKVxufVxuIl19
@@ -1,12 +1,14 @@
1
1
  @use '../../styles/theming';
2
2
 
3
- .message {
3
+ .snippets {
4
+ position: relative;
4
5
  white-space: pre-wrap;
6
+ width: fit-content;
5
7
  font-size: 0.875em;
6
8
  padding: 0.666em 0.75em;
7
9
  border-radius: 0.25em;
8
10
  margin: 0;
9
11
  overflow-x: auto;
10
- background-color: theming.$errorBackgroundColor;
11
- color: theming.$errorTextColor;
12
+ background-color: theming.$codeBackgroundColor;
13
+ color: theming.$codeTextColor;
12
14
  }
@@ -0,0 +1,2 @@
1
+ export * from './FailedResult.js';
2
+ export * from './TestCaseOutcome.js';
@@ -0,0 +1,3 @@
1
+ export * from './FailedResult.js';
2
+ export * from './TestCaseOutcome.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9yZXN1bHRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxzQkFBc0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vRmFpbGVkUmVzdWx0LmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9UZXN0Q2FzZU91dGNvbWUuanMnXG4iXX0=
@@ -1,2 +1 @@
1
1
  export declare function ensure<T>(value: T | undefined, message: string): T;
2
- //# sourceMappingURL=helpers.d.ts.map
package/dist/ensure.js ADDED
@@ -0,0 +1,7 @@
1
+ export function ensure(value, message) {
2
+ if (!value) {
3
+ throw new Error(message);
4
+ }
5
+ return value;
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vuc3VyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsTUFBTSxDQUFJLEtBQW9CLEVBQUUsT0FBZTtJQUM3RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZW5zdXJlPFQ+KHZhbHVlOiBUIHwgdW5kZWZpbmVkLCBtZXNzYWdlOiBzdHJpbmcpOiBUIHtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG4gIHJldHVybiB2YWx1ZVxufVxuIl19
@@ -1,2 +1 @@
1
1
  export declare function formatExecutionDistance(date: Date, referenceDate?: Date): string;
2
- //# sourceMappingURL=formatExecutionDistance.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { formatDistanceStrict } from 'date-fns';
2
+ export function formatExecutionDistance(date, referenceDate = new Date()) {
3
+ return formatDistanceStrict(date, referenceDate, {
4
+ addSuffix: true,
5
+ });
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0RXhlY3V0aW9uRGlzdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZm9ybWF0RXhlY3V0aW9uRGlzdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRS9DLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxJQUFVLEVBQUUsYUFBYSxHQUFTLElBQUksSUFBSSxFQUFFO0lBQ2xGLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtRQUMvQyxTQUFTLEVBQUUsSUFBSTtLQUNoQixDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0RGlzdGFuY2VTdHJpY3QgfSBmcm9tICdkYXRlLWZucydcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEV4ZWN1dGlvbkRpc3RhbmNlKGRhdGU6IERhdGUsIHJlZmVyZW5jZURhdGU6IERhdGUgPSBuZXcgRGF0ZSgpKSB7XG4gIHJldHVybiBmb3JtYXREaXN0YW5jZVN0cmljdChkYXRlLCByZWZlcmVuY2VEYXRlLCB7XG4gICAgYWRkU3VmZml4OiB0cnVlLFxuICB9KVxufVxuIl19
@@ -1,2 +1 @@
1
1
  export declare function formatExecutionDuration(startDate: Date, finishDate: Date): string;
2
- //# sourceMappingURL=formatExecutionDuration.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { formatDuration, intervalToDuration } from 'date-fns';
2
+ export function formatExecutionDuration(startDate, finishDate) {
3
+ const inMilllis = finishDate.getTime() - startDate.getTime();
4
+ // if under 10s, use 0.01s precision, otherwise 1s is fine
5
+ if (inMilllis < 10000) {
6
+ return `${new Intl.NumberFormat(undefined, {
7
+ maximumFractionDigits: 2,
8
+ }).format(inMilllis / 1000)} seconds`;
9
+ }
10
+ return formatDuration(intervalToDuration({ start: startDate, end: finishDate }), {});
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0RXhlY3V0aW9uRHVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZm9ybWF0RXhlY3V0aW9uRHVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUU3RCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBZSxFQUFFLFVBQWdCO0lBQ3ZFLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDNUQsMERBQTBEO0lBQzFELElBQUksU0FBUyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ3RCLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFO1lBQ3pDLHFCQUFxQixFQUFFLENBQUM7U0FDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN2QyxDQUFDO0lBQ0QsT0FBTyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQ3RGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREdXJhdGlvbiwgaW50ZXJ2YWxUb0R1cmF0aW9uIH0gZnJvbSAnZGF0ZS1mbnMnXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFeGVjdXRpb25EdXJhdGlvbihzdGFydERhdGU6IERhdGUsIGZpbmlzaERhdGU6IERhdGUpIHtcbiAgY29uc3QgaW5NaWxsbGlzID0gZmluaXNoRGF0ZS5nZXRUaW1lKCkgLSBzdGFydERhdGUuZ2V0VGltZSgpXG4gIC8vIGlmIHVuZGVyIDEwcywgdXNlIDAuMDFzIHByZWNpc2lvbiwgb3RoZXJ3aXNlIDFzIGlzIGZpbmVcbiAgaWYgKGluTWlsbGxpcyA8IDEwMDAwKSB7XG4gICAgcmV0dXJuIGAke25ldyBJbnRsLk51bWJlckZvcm1hdCh1bmRlZmluZWQsIHtcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMixcbiAgICB9KS5mb3JtYXQoaW5NaWxsbGlzIC8gMTAwMCl9IHNlY29uZHNgXG4gIH1cbiAgcmV0dXJuIGZvcm1hdER1cmF0aW9uKGludGVydmFsVG9EdXJhdGlvbih7IHN0YXJ0OiBzdGFydERhdGUsIGVuZDogZmluaXNoRGF0ZSB9KSwge30pXG59XG4iXX0=
@@ -1,2 +1 @@
1
1
  export declare function formatPassedQuantity(passed: number, total: number): string;
2
- //# sourceMappingURL=formatPassedQuantity.d.ts.map
@@ -0,0 +1,4 @@
1
+ export function formatPassedQuantity(passed, total) {
2
+ return `(${passed} / ${total})`;
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0UGFzc2VkUXVhbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZm9ybWF0UGFzc2VkUXVhbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQWMsRUFBRSxLQUFhO0lBQ2hFLE9BQU8sSUFBSSxNQUFNLE1BQU0sS0FBSyxHQUFHLENBQUE7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBmb3JtYXRQYXNzZWRRdWFudGl0eShwYXNzZWQ6IG51bWJlciwgdG90YWw6IG51bWJlcikge1xuICByZXR1cm4gYCgke3Bhc3NlZH0gLyAke3RvdGFsfSlgXG59XG4iXX0=
@@ -1,2 +1 @@
1
1
  export declare function formatStatusRate(passed: number, total: number): string;
2
- //# sourceMappingURL=formatStatusRate.d.ts.map
@@ -0,0 +1,9 @@
1
+ export function formatStatusRate(passed, total) {
2
+ const percentPassed = total > 0 ? passed / total : 0;
3
+ const roundedDown = Math.floor(percentPassed * 1000) / 1000;
4
+ return new Intl.NumberFormat(undefined, {
5
+ style: 'percent',
6
+ maximumFractionDigits: 1,
7
+ }).format(roundedDown);
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0U3RhdHVzUmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtYXRTdGF0dXNSYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsS0FBYTtJQUM1RCxNQUFNLGFBQWEsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFBO0lBRTNELE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtRQUN0QyxLQUFLLEVBQUUsU0FBUztRQUNoQixxQkFBcUIsRUFBRSxDQUFDO0tBQ3pCLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTdGF0dXNSYXRlKHBhc3NlZDogbnVtYmVyLCB0b3RhbDogbnVtYmVyKSB7XG4gIGNvbnN0IHBlcmNlbnRQYXNzZWQgPSB0b3RhbCA+IDAgPyBwYXNzZWQgLyB0b3RhbCA6IDBcbiAgY29uc3Qgcm91bmRlZERvd24gPSBNYXRoLmZsb29yKHBlcmNlbnRQYXNzZWQgKiAxMDAwKSAvIDEwMDBcblxuICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KHVuZGVmaW5lZCwge1xuICAgIHN0eWxlOiAncGVyY2VudCcsXG4gICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAxLFxuICB9KS5mb3JtYXQocm91bmRlZERvd24pXG59XG4iXX0=
@@ -1,3 +1,2 @@
1
1
  export * from './useQueries.js';
2
2
  export * from './useSearch.js';
3
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ export * from './useQueries.js';
2
+ export * from './useSearch.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGdCQUFnQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91c2VRdWVyaWVzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi91c2VTZWFyY2guanMnXG4iXX0=
@@ -0,0 +1,5 @@
1
+ import type { GherkinDocument } from '@cucumber/messages';
2
+ export declare function useFilteredDocuments(): {
3
+ results?: ReadonlyArray<GherkinDocument>;
4
+ filtered: boolean;
5
+ };
@@ -0,0 +1,67 @@
1
+ import { useCallback, useEffect, useMemo, useState } from 'react';
2
+ import { deriveLineageConstraints, filterAndExpandTestCaseEvents, pruneGherkinDocuments, } from '../search/index.js';
3
+ import { useQueries } from './useQueries.js';
4
+ import { useSearch } from './useSearch.js';
5
+ import { useSearchResult } from './useSearchResult.js';
6
+ export function useFilteredDocuments() {
7
+ const { cucumberQuery, gherkinQuery } = useQueries();
8
+ const allTestCasesStarted = useMemo(() => cucumberQuery.findAllTestCaseStarted(), [cucumberQuery]);
9
+ const gherkinDocuments = useMemo(() => gherkinQuery.getGherkinDocuments(), [gherkinQuery]);
10
+ const { hideStatuses, tagExpression, unchanged } = useSearch();
11
+ const lineageConstraints = useMemo(() => deriveLineageConstraints(filterAndExpandTestCaseEvents(cucumberQuery, allTestCasesStarted, {
12
+ hideStatuses,
13
+ tagExpression,
14
+ })), [allTestCasesStarted, cucumberQuery, hideStatuses, tagExpression]);
15
+ const searchResult = useSearchResult();
16
+ const [results, setResults] = useState();
17
+ const setResultsSorting = useCallback((unsorted) => {
18
+ const sorted = [...unsorted];
19
+ sorted.sort((a, b) => comparePaths(a.uri || '', b.uri || ''));
20
+ setResults(sorted);
21
+ }, []);
22
+ useEffect(() => {
23
+ switch (searchResult.status) {
24
+ case 'WAITING':
25
+ // results are not ready yet - leave them as they are
26
+ return;
27
+ case 'NOOP':
28
+ case 'ERROR':
29
+ // no narrowing to apply
30
+ setResultsSorting(pruneGherkinDocuments(gherkinDocuments, lineageConstraints));
31
+ return;
32
+ case 'SUCCESS':
33
+ setResultsSorting(pruneGherkinDocuments(gherkinDocuments, lineageConstraints, searchResult.hits));
34
+ return;
35
+ }
36
+ }, [gherkinDocuments, lineageConstraints, searchResult, setResultsSorting]);
37
+ return {
38
+ results,
39
+ filtered: !unchanged,
40
+ };
41
+ }
42
+ // Helper function for sorting directories
43
+ function comparePaths(uriA, uriB) {
44
+ // Assumes that last part of every uri is a file
45
+ const partsA = uriA.split('/');
46
+ const partsB = uriB.split('/');
47
+ const minLength = Math.min(partsA.length, partsB.length);
48
+ for (let i = 0; i < minLength; i++) {
49
+ const partA = partsA[i];
50
+ const partB = partsB[i];
51
+ if (partA !== partB) {
52
+ const isALast = i === partsA.length - 1;
53
+ const isBLast = i === partsB.length - 1;
54
+ if (isALast && !isBLast) {
55
+ return 1; // A is file and B is directory -> B comes first
56
+ }
57
+ if (!isALast && isBLast) {
58
+ return -1; // A is directory and B is file -> A comes first
59
+ }
60
+ // Both are files or both are directories -> Alphabetical sorting
61
+ return partA.localeCompare(partB);
62
+ }
63
+ }
64
+ // If one path is prefix of other then shorter path comes first
65
+ return partsA.length - partsB.length;
66
+ }
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRmlsdGVyZWREb2N1bWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlRmlsdGVyZWREb2N1bWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFpQixXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDaEYsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw2QkFBNkIsRUFDN0IscUJBQXFCLEdBQ3RCLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFdEQsTUFBTSxVQUFVLG9CQUFvQjtJQUlsQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFBO0lBQ3BELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtJQUNsRyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7SUFDMUYsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUE7SUFDOUQsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQ2hDLEdBQUcsRUFBRSxDQUNILHdCQUF3QixDQUN0Qiw2QkFBNkIsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUU7UUFDaEUsWUFBWTtRQUNaLGFBQWE7S0FDZCxDQUFDLENBQ0gsRUFDSCxDQUFDLG1C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QUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUE7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgR2hlcmtpbkRvY3VtZW50IH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgdHlwZSBEaXNwYXRjaCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGRlcml2ZUxpbmVhZ2VDb25zdHJhaW50cyxcbiAgZmlsdGVyQW5kRXhwYW5kVGVzdENhc2VFdmVudHMsXG4gIHBydW5lR2hlcmtpbkRvY3VtZW50cyxcbn0gZnJvbSAnLi4vc2VhcmNoL2luZGV4LmpzJ1xuaW1wb3J0IHsgdXNlUXVlcmllcyB9IGZyb20gJy4vdXNlUXVlcmllcy5qcydcbmltcG9ydCB7IHVzZVNlYXJjaCB9IGZyb20gJy4vdXNlU2VhcmNoLmpzJ1xuaW1wb3J0IHsgdXNlU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi91c2VTZWFyY2hSZXN1bHQuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VGaWx0ZXJlZERvY3VtZW50cygpOiB7XG4gIHJlc3VsdHM/OiBSZWFkb25seUFycmF5PEdoZXJraW5Eb2N1bWVudD5cbiAgZmlsdGVyZWQ6IGJvb2xlYW5cbn0ge1xuICBjb25zdCB7IGN1Y3VtYmVyUXVlcnksIGdoZXJraW5RdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIGNvbnN0IGFsbFRlc3RDYXNlc1N0YXJ0ZWQgPSB1c2VNZW1vKCgpID0+IGN1Y3VtYmVyUXVlcnkuZmluZEFsbFRlc3RDYXNlU3RhcnRlZCgpLCBbY3VjdW1iZXJRdWVyeV0pXG4gIGNvbnN0IGdoZXJraW5Eb2N1bWVudHMgPSB1c2VNZW1vKCgpID0+IGdoZXJraW5RdWVyeS5nZXRHaGVya2luRG9jdW1lbnRzKCksIFtnaGVya2luUXVlcnldKVxuICBjb25zdCB7IGhpZGVTdGF0dXNlcywgdGFnRXhwcmVzc2lvbiwgdW5jaGFuZ2VkIH0gPSB1c2VTZWFyY2goKVxuICBjb25zdCBsaW5lYWdlQ29uc3RyYWludHMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBkZXJpdmVMaW5lYWdlQ29uc3RyYWludHMoXG4gICAgICAgIGZpbHRlckFuZEV4cGFuZFRlc3RDYXNlRXZlbnRzKGN1Y3VtYmVyUXVlcnksIGFsbFRlc3RDYXNlc1N0YXJ0ZWQsIHtcbiAgICAgICAgICBoaWRlU3RhdHVzZXMsXG4gICAgICAgICAgdGFnRXhwcmVzc2lvbixcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgW2FsbFRlc3RDYXNlc1N0YXJ0ZWQsIGN1Y3VtYmVyUXVlcnksIGhpZGVTdGF0dXNlcywgdGFnRXhwcmVzc2lvbl1cbiAgKVxuICBjb25zdCBzZWFyY2hSZXN1bHQgPSB1c2VTZWFyY2hSZXN1bHQoKVxuICBjb25zdCBbcmVzdWx0cywgc2V0UmVzdWx0c10gPSB1c2VTdGF0ZTxSZWFkb25seUFycmF5PEdoZXJraW5Eb2N1bWVudD4+KClcbiAgY29uc3Qgc2V0UmVzdWx0c1NvcnRpbmc6IERpc3BhdGNoPFJlYWRvbmx5QXJyYXk8R2hlcmtpbkRvY3VtZW50Pj4gPSB1c2VDYWxsYmFjaygodW5zb3J0ZWQpID0+IHtcbiAgICBjb25zdCBzb3J0ZWQgPSBbLi4udW5zb3J0ZWRdXG4gICAgc29ydGVkLnNvcnQoKGEsIGIpID0+IGNvbXBhcmVQYXRocyhhLnVyaSB8fCAnJywgYi51cmkgfHwgJycpKVxuICAgIHNldFJlc3VsdHMoc29ydGVkKVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHN3aXRjaCAoc2VhcmNoUmVzdWx0LnN0YXR1cykge1xuICAgICAgY2FzZSAnV0FJVElORyc6XG4gICAgICAgIC8vIHJlc3VsdHMgYXJlIG5vdCByZWFkeSB5ZXQgLSBsZWF2ZSB0aGVtIGFzIHRoZXkgYXJlXG4gICAgICAgIHJldHVyblxuICAgICAgY2FzZSAnTk9PUCc6XG4gICAgICBjYXNlICdFUlJPUic6XG4gICAgICAgIC8vIG5vIG5hcnJvd2luZyB0byBhcHBseVxuICAgICAgICBzZXRSZXN1bHRzU29ydGluZyhwcnVuZUdoZXJraW5Eb2N1bWVudHMoZ2hlcmtpbkRvY3VtZW50cywgbGluZWFnZUNvbnN0cmFpbnRzKSlcbiAgICAgICAgcmV0dXJuXG4gICAgICBjYXNlICdTVUNDRVNTJzpcbiAgICAgICAgc2V0UmVzdWx0c1NvcnRpbmcoXG4gICAgICAgICAgcHJ1bmVHaGVya2luRG9jdW1lbnRzKGdoZXJraW5Eb2N1bWVudHMsIGxpbmVhZ2VDb25zdHJhaW50cywgc2VhcmNoUmVzdWx0LmhpdHMpXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuICB9LCBbZ2hlcmtpbkRvY3VtZW50cywgbGluZWFnZUNvbnN0cmFpbnRzLCBzZWFyY2hSZXN1bHQsIHNldFJlc3VsdHNTb3J0aW5nXSlcblxuICByZXR1cm4ge1xuICAgIHJlc3VsdHMsXG4gICAgZmlsdGVyZWQ6ICF1bmNoYW5nZWQsXG4gIH1cbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzb3J0aW5nIGRpcmVjdG9yaWVzXG5mdW5jdGlvbiBjb21wYXJlUGF0aHModXJpQTogc3RyaW5nLCB1cmlCOiBzdHJpbmcpOiBudW1iZXIge1xuICAvLyBBc3N1bWVzIHRoYXQgbGFzdCBwYXJ0IG9mIGV2ZXJ5IHVyaSBpcyBhIGZpbGVcbiAgY29uc3QgcGFydHNBID0gdXJpQS5zcGxpdCgnLycpXG4gIGNvbnN0IHBhcnRzQiA9IHVyaUIuc3BsaXQoJy8nKVxuICBjb25zdCBtaW5MZW5ndGggPSBNYXRoLm1pbihwYXJ0c0EubGVuZ3RoLCBwYXJ0c0IubGVuZ3RoKVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWluTGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBwYXJ0QSA9IHBhcnRzQVtpXVxuICAgIGNvbnN0IHBhcnRCID0gcGFydHNCW2ldXG5cbiAgICBpZiAocGFydEEgIT09IHBhcnRCKSB7XG4gICAgICBjb25zdCBpc0FMYXN0ID0gaSA9PT0gcGFydHNBLmxlbmd0aCAtIDFcbiAgICAgIGNvbnN0IGlzQkxhc3QgPSBpID09PSBwYXJ0c0IubGVuZ3RoIC0gMVxuXG4gICAgICBpZiAoaXNBTGFzdCAmJiAhaXNCTGFzdCkge1xuICAgICAgICByZXR1cm4gMSAvLyBBIGlzIGZpbGUgYW5kIEIgaXMgZGlyZWN0b3J5IC0+IEIgY29tZXMgZmlyc3RcbiAgICAgIH1cbiAgICAgIGlmICghaXNBTGFzdCAmJiBpc0JMYXN0KSB7XG4gICAgICAgIHJldHVybiAtMSAvLyBBIGlzIGRpcmVjdG9yeSBhbmQgQiBpcyBmaWxlIC0+IEEgY29tZXMgZmlyc3RcbiAgICAgIH1cblxuICAgICAgLy8gQm90aCBhcmUgZmlsZXMgb3IgYm90aCBhcmUgZGlyZWN0b3JpZXMgLT4gQWxwaGFiZXRpY2FsIHNvcnRpbmdcbiAgICAgIHJldHVybiBwYXJ0QS5sb2NhbGVDb21wYXJlKHBhcnRCKVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIG9uZSBwYXRoIGlzIHByZWZpeCBvZiBvdGhlciB0aGVuIHNob3J0ZXIgcGF0aCBjb21lcyBmaXJzdFxuICByZXR1cm4gcGFydHNBLmxlbmd0aCAtIHBhcnRzQi5sZW5ndGhcbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import type { TestCaseFinished } from '@cucumber/messages';
2
+ import { type ExpandedTestCase } from '../search/index.js';
3
+ export declare function useFilteredTestCases(): {
4
+ results?: ReadonlyArray<ExpandedTestCase<TestCaseFinished>>;
5
+ filtered: boolean;
6
+ };
@@ -0,0 +1,36 @@
1
+ import { useEffect, useMemo, useState } from 'react';
2
+ import { filterAndExpandTestCaseEvents, pruneTestCaseEvents, } from '../search/index.js';
3
+ import { useQueries } from './useQueries.js';
4
+ import { useSearch } from './useSearch.js';
5
+ import { useSearchResult } from './useSearchResult.js';
6
+ export function useFilteredTestCases() {
7
+ const { cucumberQuery } = useQueries();
8
+ const allTestCasesFinished = useMemo(() => cucumberQuery.findAllTestCaseFinished(), [cucumberQuery]);
9
+ const { hideStatuses, tagExpression, unchanged } = useSearch();
10
+ const candidates = useMemo(() => filterAndExpandTestCaseEvents(cucumberQuery, allTestCasesFinished, {
11
+ hideStatuses,
12
+ tagExpression,
13
+ }), [allTestCasesFinished, cucumberQuery, hideStatuses, tagExpression]);
14
+ const searchResult = useSearchResult();
15
+ const [results, setResults] = useState();
16
+ useEffect(() => {
17
+ switch (searchResult.status) {
18
+ case 'WAITING':
19
+ // results are not ready yet - leave them as they are
20
+ return;
21
+ case 'NOOP':
22
+ case 'ERROR':
23
+ // no narrowing to apply
24
+ setResults(candidates);
25
+ return;
26
+ case 'SUCCESS':
27
+ setResults(pruneTestCaseEvents(candidates, searchResult.hits));
28
+ return;
29
+ }
30
+ }, [candidates, searchResult]);
31
+ return {
32
+ results,
33
+ filtered: !unchanged,
34
+ };
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRmlsdGVyZWRUZXN0Q2FzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlRmlsdGVyZWRUZXN0Q2FzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQ3BELE9BQU8sRUFFTCw2QkFBNkIsRUFDN0IsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFdEQsTUFBTSxVQUFVLG9CQUFvQjtJQUlsQyxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDdEMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQ2xDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsRUFBRSxFQUM3QyxDQUFDLGFBQWEsQ0FBQyxDQUNoQixDQUFBO0lBQ0QsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUE7SUFDOUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUN4QixHQUFHLEVBQUUsQ0FDSCw2QkFBNkIsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLEVBQUU7UUFDakUsWUFBWTtRQUNaLGFBQWE7S0FDZCxDQUFDLEVBQ0osQ0FBQyxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUNuRSxDQUFBO0lBQ0QsTUFBTSxZQUFZLEdBQUcsZUFBZSxFQUFFLENBQUE7SUFDdEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxRQUFRLEVBQXFELENBQUE7SUFFM0YsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLFFBQVEsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLEtBQUssU0FBUztnQkFDWixxREFBcUQ7Z0JBQ3JELE9BQU07WUFDUixLQUFLLE1BQU0sQ0FBQztZQUNaLEtBQUssT0FBTztnQkFDVix3QkFBd0I7Z0JBQ3hCLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtnQkFDdEIsT0FBTTtZQUNSLEtBQUssU0FBUztnQkFDWixVQUFVLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO2dCQUM5RCxPQUFNO1FBQ1YsQ0FBQztJQUNILENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBRTlCLE9BQU87UUFDTCxPQUFPO1FBQ1AsUUFBUSxFQUFFLENBQUMsU0FBUztLQUNyQixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGVzdENhc2VGaW5pc2hlZCB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIHR5cGUgRXhwYW5kZWRUZXN0Q2FzZSxcbiAgZmlsdGVyQW5kRXhwYW5kVGVzdENhc2VFdmVudHMsXG4gIHBydW5lVGVzdENhc2VFdmVudHMsXG59IGZyb20gJy4uL3NlYXJjaC9pbmRleC5qcydcbmltcG9ydCB7IHVzZVF1ZXJpZXMgfSBmcm9tICcuL3VzZVF1ZXJpZXMuanMnXG5pbXBvcnQgeyB1c2VTZWFyY2ggfSBmcm9tICcuL3VzZVNlYXJjaC5qcydcbmltcG9ydCB7IHVzZVNlYXJjaFJlc3VsdCB9IGZyb20gJy4vdXNlU2VhcmNoUmVzdWx0LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlRmlsdGVyZWRUZXN0Q2FzZXMoKToge1xuICByZXN1bHRzPzogUmVhZG9ubHlBcnJheTxFeHBhbmRlZFRlc3RDYXNlPFRlc3RDYXNlRmluaXNoZWQ+PlxuICBmaWx0ZXJlZDogYm9vbGVhblxufSB7XG4gIGNvbnN0IHsgY3VjdW1iZXJRdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIGNvbnN0IGFsbFRlc3RDYXNlc0ZpbmlzaGVkID0gdXNlTWVtbyhcbiAgICAoKSA9PiBjdWN1bWJlclF1ZXJ5LmZpbmRBbGxUZXN0Q2FzZUZpbmlzaGVkKCksXG4gICAgW2N1Y3VtYmVyUXVlcnldXG4gIClcbiAgY29uc3QgeyBoaWRlU3RhdHVzZXMsIHRhZ0V4cHJlc3Npb24sIHVuY2hhbmdlZCB9ID0gdXNlU2VhcmNoKClcbiAgY29uc3QgY2FuZGlkYXRlcyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGZpbHRlckFuZEV4cGFuZFRlc3RDYXNlRXZlbnRzKGN1Y3VtYmVyUXVlcnksIGFsbFRlc3RDYXNlc0ZpbmlzaGVkLCB7XG4gICAgICAgIGhpZGVTdGF0dXNlcyxcbiAgICAgICAgdGFnRXhwcmVzc2lvbixcbiAgICAgIH0pLFxuICAgIFthbGxUZXN0Q2FzZXNGaW5pc2hlZCwgY3VjdW1iZXJRdWVyeSwgaGlkZVN0YXR1c2VzLCB0YWdFeHByZXNzaW9uXVxuICApXG4gIGNvbnN0IHNlYXJjaFJlc3VsdCA9IHVzZVNlYXJjaFJlc3VsdCgpXG4gIGNvbnN0IFtyZXN1bHRzLCBzZXRSZXN1bHRzXSA9IHVzZVN0YXRlPFJlYWRvbmx5QXJyYXk8RXhwYW5kZWRUZXN0Q2FzZTxUZXN0Q2FzZUZpbmlzaGVkPj4+KClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHN3aXRjaCAoc2VhcmNoUmVzdWx0LnN0YXR1cykge1xuICAgICAgY2FzZSAnV0FJVElORyc6XG4gICAgICAgIC8vIHJlc3VsdHMgYXJlIG5vdCByZWFkeSB5ZXQgLSBsZWF2ZSB0aGVtIGFzIHRoZXkgYXJlXG4gICAgICAgIHJldHVyblxuICAgICAgY2FzZSAnTk9PUCc6XG4gICAgICBjYXNlICdFUlJPUic6XG4gICAgICAgIC8vIG5vIG5hcnJvd2luZyB0byBhcHBseVxuICAgICAgICBzZXRSZXN1bHRzKGNhbmRpZGF0ZXMpXG4gICAgICAgIHJldHVyblxuICAgICAgY2FzZSAnU1VDQ0VTUyc6XG4gICAgICAgIHNldFJlc3VsdHMocHJ1bmVUZXN0Q2FzZUV2ZW50cyhjYW5kaWRhdGVzLCBzZWFyY2hSZXN1bHQuaGl0cykpXG4gICAgICAgIHJldHVyblxuICAgIH1cbiAgfSwgW2NhbmRpZGF0ZXMsIHNlYXJjaFJlc3VsdF0pXG5cbiAgcmV0dXJuIHtcbiAgICByZXN1bHRzLFxuICAgIGZpbHRlcmVkOiAhdW5jaGFuZ2VkLFxuICB9XG59XG4iXX0=
@@ -1,3 +1,2 @@
1
1
  import { TestStepResultStatus } from '@cucumber/messages';
2
2
  export declare function useMostSevereStatusByUri(): Map<string, TestStepResultStatus>;
3
- //# sourceMappingURL=useMostSevereStatusByUri.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { TestStepResultStatus } from '@cucumber/messages';
2
+ import { SetMultimap } from '@teppeis/multimaps';
3
+ import { useMemo } from 'react';
4
+ import { findMostSevereTestStepResultStatus } from '../components/app/findMostSevereTestStepResultStatus.js';
5
+ import { useQueries } from './useQueries.js';
6
+ export function useMostSevereStatusByUri() {
7
+ const { cucumberQuery } = useQueries();
8
+ return useMemo(() => {
9
+ const allByUri = new SetMultimap();
10
+ for (const testCaseStarted of cucumberQuery.findAllTestCaseStarted()) {
11
+ const result = cucumberQuery.findMostSevereTestStepResultBy(testCaseStarted);
12
+ const status = result ? result.status : TestStepResultStatus.UNKNOWN;
13
+ const pickle = cucumberQuery.findPickleBy(testCaseStarted);
14
+ if (pickle?.uri) {
15
+ allByUri.put(pickle.uri, status);
16
+ }
17
+ }
18
+ const mostSevereByUri = new Map();
19
+ for (const key of allByUri.keys()) {
20
+ mostSevereByUri.set(key, findMostSevereTestStepResultStatus(allByUri.get(key)));
21
+ }
22
+ return mostSevereByUri;
23
+ }, [cucumberQuery]);
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTW9zdFNldmVyZVN0YXR1c0J5VXJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZU1vc3RTZXZlcmVTdGF0dXNCeVVyaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUUvQixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx5REFBeUQsQ0FBQTtBQUM1RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFNUMsTUFBTSxVQUFVLHdCQUF3QjtJQUN0QyxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDdEMsT0FBTyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLElBQUksV0FBVyxFQUFnQyxDQUFBO1FBQ2hFLEtBQUssTUFBTSxlQUFlLElBQUksYUFBYSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztZQUNyRSxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsOEJBQThCLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDNUUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUE7WUFDcEUsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQTtZQUMxRCxJQUFJLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ2xDLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQWdDLENBQUE7UUFDL0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNsQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxrQ0FBa0MsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNqRixDQUFDO1FBQ0QsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVzdFN0ZXBSZXN1bHRTdGF0dXMgfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgeyBTZXRNdWx0aW1hcCB9IGZyb20gJ0B0ZXBwZWlzL211bHRpbWFwcydcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgZmluZE1vc3RTZXZlcmVUZXN0U3RlcFJlc3VsdFN0YXR1cyB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXBwL2ZpbmRNb3N0U2V2ZXJlVGVzdFN0ZXBSZXN1bHRTdGF0dXMuanMnXG5pbXBvcnQgeyB1c2VRdWVyaWVzIH0gZnJvbSAnLi91c2VRdWVyaWVzLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlTW9zdFNldmVyZVN0YXR1c0J5VXJpKCk6IE1hcDxzdHJpbmcsIFRlc3RTdGVwUmVzdWx0U3RhdHVzPiB7XG4gIGNvbnN0IHsgY3VjdW1iZXJRdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBhbGxCeVVyaSA9IG5ldyBTZXRNdWx0aW1hcDxzdHJpbmcsIFRlc3RTdGVwUmVzdWx0U3RhdHVzPigpXG4gICAgZm9yIChjb25zdCB0ZXN0Q2FzZVN0YXJ0ZWQgb2YgY3VjdW1iZXJRdWVyeS5maW5kQWxsVGVzdENhc2VTdGFydGVkKCkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGN1Y3VtYmVyUXVlcnkuZmluZE1vc3RTZXZlcmVUZXN0U3RlcFJlc3VsdEJ5KHRlc3RDYXNlU3RhcnRlZClcbiAgICAgIGNvbnN0IHN0YXR1cyA9IHJlc3VsdCA/IHJlc3VsdC5zdGF0dXMgOiBUZXN0U3RlcFJlc3VsdFN0YXR1cy5VTktOT1dOXG4gICAgICBjb25zdCBwaWNrbGUgPSBjdWN1bWJlclF1ZXJ5LmZpbmRQaWNrbGVCeSh0ZXN0Q2FzZVN0YXJ0ZWQpXG4gICAgICBpZiAocGlja2xlPy51cmkpIHtcbiAgICAgICAgYWxsQnlVcmkucHV0KHBpY2tsZS51cmksIHN0YXR1cylcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbW9zdFNldmVyZUJ5VXJpID0gbmV3IE1hcDxzdHJpbmcsIFRlc3RTdGVwUmVzdWx0U3RhdHVzPigpXG4gICAgZm9yIChjb25zdCBrZXkgb2YgYWxsQnlVcmkua2V5cygpKSB7XG4gICAgICBtb3N0U2V2ZXJlQnlVcmkuc2V0KGtleSwgZmluZE1vc3RTZXZlcmVUZXN0U3RlcFJlc3VsdFN0YXR1cyhhbGxCeVVyaS5nZXQoa2V5KSkpXG4gICAgfVxuICAgIHJldHVybiBtb3N0U2V2ZXJlQnlVcmlcbiAgfSwgW2N1Y3VtYmVyUXVlcnldKVxufVxuIl19
@@ -0,0 +1,6 @@
1
+ import type { Query as GherkinQuery } from '@cucumber/gherkin-utils';
2
+ import type { Query as CucumberQuery } from '@cucumber/query';
3
+ export declare function useQueries(): {
4
+ cucumberQuery: CucumberQuery;
5
+ gherkinQuery: GherkinQuery;
6
+ };
@@ -0,0 +1,9 @@
1
+ import { useContext } from 'react';
2
+ import CucumberQueryContext from '../CucumberQueryContext.js';
3
+ import GherkinQueryContext from '../GherkinQueryContext.js';
4
+ export function useQueries() {
5
+ const gherkinQuery = useContext(GherkinQueryContext);
6
+ const cucumberQuery = useContext(CucumberQueryContext);
7
+ return { cucumberQuery, gherkinQuery };
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUXVlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VRdWVyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFbEMsT0FBTyxvQkFBb0IsTUFBTSw0QkFBNEIsQ0FBQTtBQUM3RCxPQUFPLG1CQUFtQixNQUFNLDJCQUEyQixDQUFBO0FBRTNELE1BQU0sVUFBVSxVQUFVO0lBSXhCLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQ3BELE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUE7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUXVlcnkgYXMgR2hlcmtpblF1ZXJ5IH0gZnJvbSAnQGN1Y3VtYmVyL2doZXJraW4tdXRpbHMnXG5pbXBvcnQgdHlwZSB7IFF1ZXJ5IGFzIEN1Y3VtYmVyUXVlcnkgfSBmcm9tICdAY3VjdW1iZXIvcXVlcnknXG5pbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCBDdWN1bWJlclF1ZXJ5Q29udGV4dCBmcm9tICcuLi9DdWN1bWJlclF1ZXJ5Q29udGV4dC5qcydcbmltcG9ydCBHaGVya2luUXVlcnlDb250ZXh0IGZyb20gJy4uL0doZXJraW5RdWVyeUNvbnRleHQuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VRdWVyaWVzKCk6IHtcbiAgY3VjdW1iZXJRdWVyeTogQ3VjdW1iZXJRdWVyeVxuICBnaGVya2luUXVlcnk6IEdoZXJraW5RdWVyeVxufSB7XG4gIGNvbnN0IGdoZXJraW5RdWVyeSA9IHVzZUNvbnRleHQoR2hlcmtpblF1ZXJ5Q29udGV4dClcbiAgY29uc3QgY3VjdW1iZXJRdWVyeSA9IHVzZUNvbnRleHQoQ3VjdW1iZXJRdWVyeUNvbnRleHQpXG4gIHJldHVybiB7IGN1Y3VtYmVyUXVlcnksIGdoZXJraW5RdWVyeSB9XG59XG4iXX0=
@@ -1,7 +1,6 @@
1
- import { TestStepResultStatus } from '@cucumber/messages';
1
+ import type { TestStepResultStatus } from '@cucumber/messages';
2
2
  export declare function useResultStatistics(): {
3
3
  scenarioCountByStatus: Record<TestStepResultStatus, number>;
4
4
  statusesWithScenarios: readonly TestStepResultStatus[];
5
5
  totalScenarioCount: number;
6
6
  };
7
- //# sourceMappingURL=useResultStatistics.d.ts.map
@@ -0,0 +1,24 @@
1
+ import statuses from '../statuses.js';
2
+ import { useQueries } from './useQueries.js';
3
+ export function useResultStatistics() {
4
+ const { cucumberQuery } = useQueries();
5
+ const scenarioCountByStatus = cucumberQuery.countMostSevereTestStepResultStatus();
6
+ const statusesWithScenarios = Object.entries(scenarioCountByStatus)
7
+ .filter(([, value]) => {
8
+ return value > 0;
9
+ })
10
+ .map(([key]) => key)
11
+ .sort(statusComparator);
12
+ const totalScenarioCount = [...Object.values(scenarioCountByStatus)].reduce((prev, curr) => prev + curr, 0);
13
+ return { scenarioCountByStatus, statusesWithScenarios, totalScenarioCount };
14
+ }
15
+ function statusComparator(a, b) {
16
+ if (statuses.indexOf(a) < statuses.indexOf(b)) {
17
+ return -1;
18
+ }
19
+ if (statuses.indexOf(a) > statuses.indexOf(b)) {
20
+ return 1;
21
+ }
22
+ return 0;
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUmVzdWx0U3RhdGlzdGljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VSZXN1bHRTdGF0aXN0aWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU1QyxNQUFNLFVBQVUsbUJBQW1CO0lBS2pDLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQTtJQUN0QyxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQyxtQ0FBbUMsRUFBRSxDQUFBO0lBRWpGLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztTQUNoRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUNwQixPQUFPLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDbEIsQ0FBQyxDQUFDO1NBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBMkIsQ0FBQztTQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUV6QixNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQ3pFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksRUFDM0IsQ0FBQyxDQUNGLENBQUE7SUFFRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQTtBQUM3RSxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxDQUF1QixFQUFFLENBQXVCO0lBQ3hFLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGVzdFN0ZXBSZXN1bHRTdGF0dXMgfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5cbmltcG9ydCBzdGF0dXNlcyBmcm9tICcuLi9zdGF0dXNlcy5qcydcbmltcG9ydCB7IHVzZVF1ZXJpZXMgfSBmcm9tICcuL3VzZVF1ZXJpZXMuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZXN1bHRTdGF0aXN0aWNzKCk6IHtcbiAgc2NlbmFyaW9Db3VudEJ5U3RhdHVzOiBSZWNvcmQ8VGVzdFN0ZXBSZXN1bHRTdGF0dXMsIG51bWJlcj5cbiAgc3RhdHVzZXNXaXRoU2NlbmFyaW9zOiByZWFkb25seSBUZXN0U3RlcFJlc3VsdFN0YXR1c1tdXG4gIHRvdGFsU2NlbmFyaW9Db3VudDogbnVtYmVyXG59IHtcbiAgY29uc3QgeyBjdWN1bWJlclF1ZXJ5IH0gPSB1c2VRdWVyaWVzKClcbiAgY29uc3Qgc2NlbmFyaW9Db3VudEJ5U3RhdHVzID0gY3VjdW1iZXJRdWVyeS5jb3VudE1vc3RTZXZlcmVUZXN0U3RlcFJlc3VsdFN0YXR1cygpXG5cbiAgY29uc3Qgc3RhdHVzZXNXaXRoU2NlbmFyaW9zID0gT2JqZWN0LmVudHJpZXMoc2NlbmFyaW9Db3VudEJ5U3RhdHVzKVxuICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4ge1xuICAgICAgcmV0dXJuIHZhbHVlID4gMFxuICAgIH0pXG4gICAgLm1hcCgoW2tleV0pID0+IGtleSBhcyBUZXN0U3RlcFJlc3VsdFN0YXR1cylcbiAgICAuc29ydChzdGF0dXNDb21wYXJhdG9yKVxuXG4gIGNvbnN0IHRvdGFsU2NlbmFyaW9Db3VudCA9IFsuLi5PYmplY3QudmFsdWVzKHNjZW5hcmlvQ291bnRCeVN0YXR1cyldLnJlZHVjZShcbiAgICAocHJldiwgY3VycikgPT4gcHJldiArIGN1cnIsXG4gICAgMFxuICApXG5cbiAgcmV0dXJuIHsgc2NlbmFyaW9Db3VudEJ5U3RhdHVzLCBzdGF0dXNlc1dpdGhTY2VuYXJpb3MsIHRvdGFsU2NlbmFyaW9Db3VudCB9XG59XG5cbmZ1bmN0aW9uIHN0YXR1c0NvbXBhcmF0b3IoYTogVGVzdFN0ZXBSZXN1bHRTdGF0dXMsIGI6IFRlc3RTdGVwUmVzdWx0U3RhdHVzKSB7XG4gIGlmIChzdGF0dXNlcy5pbmRleE9mKGEpIDwgc3RhdHVzZXMuaW5kZXhPZihiKSkge1xuICAgIHJldHVybiAtMVxuICB9XG4gIGlmIChzdGF0dXNlcy5pbmRleE9mKGEpID4gc3RhdHVzZXMuaW5kZXhPZihiKSkge1xuICAgIHJldHVybiAxXG4gIH1cbiAgcmV0dXJuIDBcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ import { type SearchContextValue } from '../SearchContext.js';
2
+ export declare function useSearch(): SearchContextValue;
@@ -0,0 +1,6 @@
1
+ import { useContext } from 'react';
2
+ import SearchQueryContext from '../SearchContext.js';
3
+ export function useSearch() {
4
+ return useContext(SearchQueryContext);
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlU2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBRWxDLE9BQU8sa0JBQStDLE1BQU0scUJBQXFCLENBQUE7QUFFakYsTUFBTSxVQUFVLFNBQVM7SUFDdkIsT0FBTyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgU2VhcmNoUXVlcnlDb250ZXh0LCB7IHR5cGUgU2VhcmNoQ29udGV4dFZhbHVlIH0gZnJvbSAnLi4vU2VhcmNoQ29udGV4dC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlYXJjaCgpOiBTZWFyY2hDb250ZXh0VmFsdWUge1xuICByZXR1cm4gdXNlQ29udGV4dChTZWFyY2hRdWVyeUNvbnRleHQpXG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { type SearchHits } from '../search/index.js';
2
+ /** the search ran - `hits` is an empty map when nothing matched */
3
+ export interface SuccessSearchResult {
4
+ status: 'SUCCESS';
5
+ hits: SearchHits;
6
+ }
7
+ /** there was no search term, so no search was done */
8
+ export interface NoopSearchResult {
9
+ status: 'NOOP';
10
+ }
11
+ /** waiting for the index to build or the search to resolve */
12
+ export interface WaitingSearchResult {
13
+ status: 'WAITING';
14
+ }
15
+ /** the index failed to build or the search itself failed */
16
+ export interface ErrorSearchResult {
17
+ status: 'ERROR';
18
+ error: Error;
19
+ }
20
+ export type SearchResult = SuccessSearchResult | NoopSearchResult | WaitingSearchResult | ErrorSearchResult;
21
+ /**
22
+ * Creates and populates a search index from the loaded Gherkin documents, runs the current search
23
+ * term against it, and returns a discriminated result describing the outcome. Consumers narrow on
24
+ * `result.status` and don't need to know whether a search term is present.
25
+ */
26
+ export declare function useSearchResult(): SearchResult;