@cccsaurora/howler-ui 2.19.0-dev.842 → 2.19.0-dev.905

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 (328) hide show
  1. package/api/index.d.ts +0 -4
  2. package/api/index.js +2 -10
  3. package/api/search/facet/hit.d.ts +3 -1
  4. package/api/search/facet/index.d.ts +1 -3
  5. package/api/search/index.d.ts +1 -2
  6. package/api/search/index.js +1 -2
  7. package/commons/components/leftnav/LeftNavDrawer.js +1 -1
  8. package/components/app/App.js +8 -41
  9. package/components/app/hooks/useMatchers.d.ts +1 -1
  10. package/components/app/hooks/useMatchers.js +11 -23
  11. package/components/app/hooks/useMatchers.test.js +22 -22
  12. package/components/app/hooks/useTitle.js +5 -5
  13. package/components/app/providers/FavouritesProvider.js +2 -2
  14. package/components/app/providers/HitProvider.d.ts +22 -0
  15. package/components/app/providers/{RecordProvider.js → HitProvider.js} +41 -41
  16. package/components/app/providers/{RecordSearchProvider.d.ts → HitSearchProvider.d.ts} +6 -6
  17. package/components/app/providers/{RecordSearchProvider.js → HitSearchProvider.js} +17 -12
  18. package/components/app/providers/{RecordSearchProvider.test.js → HitSearchProvider.test.js} +71 -52
  19. package/components/app/providers/ModalProvider.d.ts +0 -1
  20. package/components/app/providers/ParameterProvider.d.ts +2 -9
  21. package/components/app/providers/ParameterProvider.js +240 -165
  22. package/components/app/providers/ParameterProvider.test.js +94 -346
  23. package/components/app/providers/SocketProvider.d.ts +2 -11
  24. package/components/app/providers/SocketProvider.js +5 -18
  25. package/components/app/providers/UserListProvider.js +8 -28
  26. package/components/elements/PluginTypography.d.ts +1 -2
  27. package/components/elements/PluginTypography.js +2 -3
  28. package/components/elements/UserList.d.ts +2 -5
  29. package/components/elements/UserList.js +8 -18
  30. package/components/elements/addons/search/phrase/Phrase.js +1 -1
  31. package/components/elements/display/ChipPopper.d.ts +1 -1
  32. package/components/elements/display/ChipPopper.js +5 -5
  33. package/components/elements/display/HowlerCard.js +1 -1
  34. package/components/elements/display/Modal.js +0 -2
  35. package/components/elements/display/icons/BundleButton.d.ts +6 -0
  36. package/components/elements/display/icons/BundleButton.js +32 -0
  37. package/components/elements/hit/HitActions.js +4 -4
  38. package/components/elements/hit/HitBanner.d.ts +0 -1
  39. package/components/elements/hit/HitBanner.js +47 -29
  40. package/components/elements/hit/HitCard.d.ts +0 -2
  41. package/components/elements/hit/HitCard.js +7 -7
  42. package/components/elements/{record/RecordComments.d.ts → hit/HitComments.d.ts} +4 -5
  43. package/components/elements/{record/RecordComments.js → hit/HitComments.js} +28 -29
  44. package/components/elements/{ObjectDetails.js → hit/HitDetails.js} +17 -17
  45. package/components/elements/hit/HitLabels.js +2 -2
  46. package/components/elements/hit/HitOutline.d.ts +0 -1
  47. package/components/elements/hit/HitOutline.js +3 -3
  48. package/components/elements/hit/{HitPreview.d.ts → HitQuickSearch.d.ts} +3 -3
  49. package/components/elements/hit/{HitPreview.js → HitQuickSearch.js} +4 -10
  50. package/components/elements/hit/HitRelated.d.ts +6 -0
  51. package/components/elements/hit/HitRelated.js +7 -0
  52. package/components/elements/hit/HitSummary.d.ts +1 -2
  53. package/components/elements/hit/HitSummary.js +5 -6
  54. package/components/elements/{record/RecordWorklog.d.ts → hit/HitWorklog.d.ts} +3 -4
  55. package/components/elements/{record/RecordWorklog.js → hit/HitWorklog.js} +13 -15
  56. package/components/elements/hit/aggregate/HitGraph.js +8 -8
  57. package/components/elements/hit/elements/Assigned.js +3 -6
  58. package/components/elements/hit/outlines/DefaultOutline.js +1 -1
  59. package/components/elements/view/ViewTitle.d.ts +0 -1
  60. package/components/elements/view/ViewTitle.js +2 -9
  61. package/components/hooks/useHitActions.d.ts +1 -1
  62. package/components/hooks/useHitActions.js +4 -4
  63. package/components/hooks/{useRecordSelection.d.ts → useHitSelection.d.ts} +2 -2
  64. package/components/hooks/{useRecordSelection.js → useHitSelection.js} +33 -12
  65. package/components/hooks/useMyPreferences.js +1 -10
  66. package/components/hooks/useMySearch.js +2 -2
  67. package/components/hooks/useMySitemap.js +1 -4
  68. package/components/hooks/useMyTheme.js +2 -9
  69. package/components/routes/action/edit/ActionEditor.js +2 -2
  70. package/components/routes/action/view/ActionSearch.js +1 -1
  71. package/components/routes/advanced/QueryBuilder.js +1 -1
  72. package/components/routes/advanced/QueryEditor.js +3 -3
  73. package/components/routes/advanced/historyCompletionProvider.js +3 -3
  74. package/components/routes/analytics/AnalyticDetails.js +2 -2
  75. package/components/routes/analytics/AnalyticSearch.js +1 -1
  76. package/components/routes/dossiers/DossierEditor.js +2 -2
  77. package/components/routes/dossiers/DossierEditor.test.js +1 -1
  78. package/components/routes/help/ApiDocumentation.js +1 -1
  79. package/components/routes/help/BundleDocumentation.d.ts +3 -0
  80. package/components/routes/help/BundleDocumentation.js +12 -0
  81. package/components/routes/help/HitBannerDocumentation.js +0 -1
  82. package/components/routes/help/HitDocumentation.js +3 -1
  83. package/components/routes/help/markdown/en/bundles.md.js +1 -0
  84. package/components/routes/help/markdown/fr/bundles.md.js +1 -0
  85. package/components/routes/hits/search/BundleParentMenu.d.ts +6 -0
  86. package/components/routes/hits/search/BundleParentMenu.js +32 -0
  87. package/components/routes/hits/search/BundleScroller.d.ts +2 -0
  88. package/components/routes/hits/search/BundleScroller.js +6 -0
  89. package/components/routes/hits/search/{RecordBrowser.js → HitBrowser.js} +9 -9
  90. package/components/{elements/record/RecordContextMenu.d.ts → routes/hits/search/HitContextMenu.d.ts} +3 -3
  91. package/components/routes/hits/search/HitContextMenu.js +239 -0
  92. package/components/{elements/record/RecordContextMenu.test.js → routes/hits/search/HitContextMenu.test.js} +43 -98
  93. package/components/routes/hits/search/{RecordQuery.d.ts → HitQuery.d.ts} +2 -2
  94. package/components/routes/hits/search/{RecordQuery.js → HitQuery.js} +6 -6
  95. package/components/routes/hits/search/InformationPane.d.ts +0 -1
  96. package/components/routes/hits/search/InformationPane.js +63 -50
  97. package/components/routes/hits/search/LayoutSettings.js +3 -3
  98. package/components/routes/hits/search/QuerySettings.js +1 -2
  99. package/components/routes/hits/search/QuerySettings.test.js +9 -14
  100. package/components/routes/hits/search/SearchPane.js +49 -26
  101. package/components/routes/hits/search/ViewLink.js +3 -3
  102. package/components/routes/hits/search/ViewLink.test.js +8 -8
  103. package/components/routes/hits/search/grid/AddColumnModal.js +4 -5
  104. package/components/routes/hits/search/grid/EnhancedCell.d.ts +1 -2
  105. package/components/routes/hits/search/grid/EnhancedCell.js +2 -2
  106. package/components/routes/hits/search/grid/HitGrid.js +18 -20
  107. package/components/routes/hits/search/grid/{RecordRow.d.ts → HitRow.d.ts} +2 -3
  108. package/components/routes/hits/search/grid/{RecordRow.js → HitRow.js} +8 -10
  109. package/components/routes/hits/view/HitViewer.js +13 -12
  110. package/components/routes/home/ViewCard.js +41 -47
  111. package/components/{elements/MarkdownEditor.js → routes/overviews/OverviewEditor.js} +3 -3
  112. package/components/routes/overviews/OverviewViewer.js +2 -2
  113. package/components/routes/views/ViewComposer.js +19 -46
  114. package/locales/en/translation.json +3 -122
  115. package/locales/fr/translation.json +3 -120
  116. package/models/WithMetadata.d.ts +1 -2
  117. package/models/entities/generated/{ThreatEnrichment.d.ts → Enrichment.d.ts} +1 -1
  118. package/models/entities/generated/Hit.d.ts +0 -1
  119. package/models/entities/generated/Howler.d.ts +5 -0
  120. package/models/entities/generated/Rule.d.ts +9 -6
  121. package/models/entities/generated/Threat.d.ts +2 -2
  122. package/models/entities/generated/View.d.ts +0 -1
  123. package/package.json +121 -141
  124. package/plugins/clue/components/ClueTypography.js +2 -2
  125. package/plugins/clue/utils.d.ts +1 -2
  126. package/tests/mocks.d.ts +1 -11
  127. package/tests/mocks.js +7 -12
  128. package/tests/server-handlers.js +1 -6
  129. package/tests/utils.d.ts +0 -4
  130. package/tests/utils.js +0 -20
  131. package/utils/constants.d.ts +3 -4
  132. package/utils/constants.js +0 -6
  133. package/utils/hitFunctions.d.ts +1 -2
  134. package/utils/hitFunctions.js +4 -4
  135. package/utils/socketUtils.d.ts +0 -14
  136. package/utils/socketUtils.js +1 -17
  137. package/utils/viewUtils.js +0 -3
  138. package/api/search/case.d.ts +0 -4
  139. package/api/search/case.js +0 -8
  140. package/api/socket/index.d.ts +0 -3
  141. package/api/socket/index.js +0 -6
  142. package/api/socket/viewers.d.ts +0 -2
  143. package/api/socket/viewers.js +0 -8
  144. package/api/socket/viewers.test.js +0 -44
  145. package/api/v2/case/index.d.ts +0 -9
  146. package/api/v2/case/index.js +0 -21
  147. package/api/v2/case/items.d.ts +0 -6
  148. package/api/v2/case/items.js +0 -18
  149. package/api/v2/case/rules.d.ts +0 -6
  150. package/api/v2/case/rules.js +0 -18
  151. package/api/v2/index.d.ts +0 -4
  152. package/api/v2/index.js +0 -6
  153. package/api/v2/search/facet.d.ts +0 -3
  154. package/api/v2/search/facet.js +0 -12
  155. package/api/v2/search/index.d.ts +0 -5
  156. package/api/v2/search/index.js +0 -24
  157. package/components/app/providers/RecordProvider.d.ts +0 -23
  158. package/components/elements/ContextMenu.d.ts +0 -56
  159. package/components/elements/ContextMenu.js +0 -109
  160. package/components/elements/ContextMenu.test.d.ts +0 -1
  161. package/components/elements/ContextMenu.test.js +0 -215
  162. package/components/elements/ObjectDetails.d.ts +0 -6
  163. package/components/elements/case/CaseCard.d.ts +0 -12
  164. package/components/elements/case/CaseCard.js +0 -42
  165. package/components/elements/case/CasePreview.d.ts +0 -6
  166. package/components/elements/case/CasePreview.js +0 -17
  167. package/components/elements/case/StatusIcon.d.ts +0 -5
  168. package/components/elements/case/StatusIcon.js +0 -13
  169. package/components/elements/hit/elements/AnalyticLink.d.ts +0 -9
  170. package/components/elements/hit/elements/AnalyticLink.js +0 -22
  171. package/components/elements/hit/elements/Assigned.test.d.ts +0 -1
  172. package/components/elements/hit/elements/Assigned.test.js +0 -65
  173. package/components/elements/hit/related/RelatedRecords.js +0 -63
  174. package/components/elements/observable/ObservableCard.d.ts +0 -6
  175. package/components/elements/observable/ObservableCard.js +0 -22
  176. package/components/elements/observable/ObservablePreview.d.ts +0 -6
  177. package/components/elements/observable/ObservablePreview.js +0 -12
  178. package/components/elements/record/RecordContextMenu.js +0 -268
  179. package/components/elements/record/RecordContextMenu.test.d.ts +0 -1
  180. package/components/elements/record/RecordRelated.d.ts +0 -7
  181. package/components/elements/record/RecordRelated.js +0 -34
  182. package/components/hooks/useRelatedRecords.d.ts +0 -13
  183. package/components/hooks/useRelatedRecords.js +0 -32
  184. package/components/routes/cases/CaseViewer.d.ts +0 -2
  185. package/components/routes/cases/CaseViewer.js +0 -44
  186. package/components/routes/cases/CaseViewer.test.d.ts +0 -1
  187. package/components/routes/cases/CaseViewer.test.js +0 -133
  188. package/components/routes/cases/Cases.d.ts +0 -2
  189. package/components/routes/cases/Cases.js +0 -148
  190. package/components/routes/cases/constants.d.ts +0 -6
  191. package/components/routes/cases/constants.js +0 -6
  192. package/components/routes/cases/detail/AlertPanel.d.ts +0 -6
  193. package/components/routes/cases/detail/AlertPanel.js +0 -33
  194. package/components/routes/cases/detail/CaseAssets.d.ts +0 -11
  195. package/components/routes/cases/detail/CaseAssets.js +0 -104
  196. package/components/routes/cases/detail/CaseAssets.test.d.ts +0 -1
  197. package/components/routes/cases/detail/CaseAssets.test.js +0 -167
  198. package/components/routes/cases/detail/CaseDashboard.d.ts +0 -7
  199. package/components/routes/cases/detail/CaseDashboard.js +0 -66
  200. package/components/routes/cases/detail/CaseDetails.d.ts +0 -6
  201. package/components/routes/cases/detail/CaseDetails.js +0 -70
  202. package/components/routes/cases/detail/CaseOverview.d.ts +0 -7
  203. package/components/routes/cases/detail/CaseOverview.js +0 -43
  204. package/components/routes/cases/detail/CaseRules.d.ts +0 -7
  205. package/components/routes/cases/detail/CaseRules.js +0 -57
  206. package/components/routes/cases/detail/CaseRules.test.d.ts +0 -1
  207. package/components/routes/cases/detail/CaseRules.test.js +0 -221
  208. package/components/routes/cases/detail/CaseSidebar.d.ts +0 -8
  209. package/components/routes/cases/detail/CaseSidebar.js +0 -107
  210. package/components/routes/cases/detail/CaseSidebar.test.d.ts +0 -1
  211. package/components/routes/cases/detail/CaseSidebar.test.js +0 -266
  212. package/components/routes/cases/detail/CaseTask.d.ts +0 -11
  213. package/components/routes/cases/detail/CaseTask.js +0 -66
  214. package/components/routes/cases/detail/CaseTimeline.d.ts +0 -12
  215. package/components/routes/cases/detail/CaseTimeline.js +0 -106
  216. package/components/routes/cases/detail/CaseTimeline.test.d.ts +0 -1
  217. package/components/routes/cases/detail/CaseTimeline.test.js +0 -320
  218. package/components/routes/cases/detail/CreateRuleDialog.d.ts +0 -9
  219. package/components/routes/cases/detail/CreateRuleDialog.js +0 -163
  220. package/components/routes/cases/detail/CreateRuleDialog.test.d.ts +0 -1
  221. package/components/routes/cases/detail/CreateRuleDialog.test.js +0 -259
  222. package/components/routes/cases/detail/ItemPage.d.ts +0 -6
  223. package/components/routes/cases/detail/ItemPage.js +0 -95
  224. package/components/routes/cases/detail/RelatedCasePanel.d.ts +0 -6
  225. package/components/routes/cases/detail/RelatedCasePanel.js +0 -34
  226. package/components/routes/cases/detail/TaskPanel.d.ts +0 -7
  227. package/components/routes/cases/detail/TaskPanel.js +0 -52
  228. package/components/routes/cases/detail/aggregates/CaseAggregate.d.ts +0 -11
  229. package/components/routes/cases/detail/aggregates/CaseAggregate.js +0 -24
  230. package/components/routes/cases/detail/aggregates/SourceAggregate.d.ts +0 -6
  231. package/components/routes/cases/detail/aggregates/SourceAggregate.js +0 -26
  232. package/components/routes/cases/detail/assets/Asset.d.ts +0 -14
  233. package/components/routes/cases/detail/assets/Asset.js +0 -12
  234. package/components/routes/cases/detail/assets/Asset.test.d.ts +0 -1
  235. package/components/routes/cases/detail/assets/Asset.test.js +0 -72
  236. package/components/routes/cases/detail/sidebar/CaseFolder.d.ts +0 -20
  237. package/components/routes/cases/detail/sidebar/CaseFolder.js +0 -83
  238. package/components/routes/cases/detail/sidebar/CaseFolder.test.d.ts +0 -1
  239. package/components/routes/cases/detail/sidebar/CaseFolder.test.js +0 -295
  240. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.d.ts +0 -34
  241. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.js +0 -103
  242. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.d.ts +0 -1
  243. package/components/routes/cases/detail/sidebar/CaseFolderContextMenu.test.js +0 -363
  244. package/components/routes/cases/detail/sidebar/FolderEntry.d.ts +0 -25
  245. package/components/routes/cases/detail/sidebar/FolderEntry.js +0 -88
  246. package/components/routes/cases/detail/sidebar/FolderEntry.test.d.ts +0 -1
  247. package/components/routes/cases/detail/sidebar/FolderEntry.test.js +0 -206
  248. package/components/routes/cases/detail/sidebar/RootDropZone.d.ts +0 -5
  249. package/components/routes/cases/detail/sidebar/RootDropZone.js +0 -33
  250. package/components/routes/cases/detail/sidebar/types.d.ts +0 -9
  251. package/components/routes/cases/detail/sidebar/utils.d.ts +0 -3
  252. package/components/routes/cases/detail/sidebar/utils.js +0 -29
  253. package/components/routes/cases/detail/sidebar/utils.test.d.ts +0 -1
  254. package/components/routes/cases/detail/sidebar/utils.test.js +0 -82
  255. package/components/routes/cases/hooks/useCase.d.ts +0 -13
  256. package/components/routes/cases/hooks/useCase.js +0 -69
  257. package/components/routes/cases/hooks/useCase.test.d.ts +0 -1
  258. package/components/routes/cases/hooks/useCase.test.js +0 -141
  259. package/components/routes/cases/modals/AddToCaseModal.d.ts +0 -7
  260. package/components/routes/cases/modals/AddToCaseModal.js +0 -59
  261. package/components/routes/cases/modals/AddToCaseModal.test.d.ts +0 -1
  262. package/components/routes/cases/modals/AddToCaseModal.test.js +0 -313
  263. package/components/routes/cases/modals/CaseRecordRow.d.ts +0 -9
  264. package/components/routes/cases/modals/CaseRecordRow.js +0 -15
  265. package/components/routes/cases/modals/CreateCaseModal.d.ts +0 -7
  266. package/components/routes/cases/modals/CreateCaseModal.js +0 -55
  267. package/components/routes/cases/modals/CreateCaseModal.test.d.ts +0 -1
  268. package/components/routes/cases/modals/CreateCaseModal.test.js +0 -358
  269. package/components/routes/cases/modals/RenameItemModal.d.ts +0 -9
  270. package/components/routes/cases/modals/RenameItemModal.js +0 -48
  271. package/components/routes/cases/modals/ResolveModal.d.ts +0 -7
  272. package/components/routes/cases/modals/ResolveModal.js +0 -115
  273. package/components/routes/cases/modals/ResolveModal.test.d.ts +0 -1
  274. package/components/routes/cases/modals/ResolveModal.test.js +0 -394
  275. package/components/routes/cases/modals/hooks.d.ts +0 -7
  276. package/components/routes/cases/modals/hooks.js +0 -44
  277. package/components/routes/cases/modals/types.d.ts +0 -5
  278. package/components/routes/cases/search/CaseAssigneeFilter.d.ts +0 -6
  279. package/components/routes/cases/search/CaseAssigneeFilter.js +0 -33
  280. package/components/routes/cases/search/CaseAssigneeFilter.test.d.ts +0 -1
  281. package/components/routes/cases/search/CaseAssigneeFilter.test.js +0 -127
  282. package/components/routes/cases/search/CaseDateFilter.d.ts +0 -13
  283. package/components/routes/cases/search/CaseDateFilter.js +0 -26
  284. package/components/routes/cases/search/CaseDateFilter.test.d.ts +0 -1
  285. package/components/routes/cases/search/CaseDateFilter.test.js +0 -115
  286. package/components/routes/cases/search/CaseStatusFilter.d.ts +0 -6
  287. package/components/routes/cases/search/CaseStatusFilter.js +0 -13
  288. package/components/routes/cases/search/CaseStatusFilter.test.d.ts +0 -1
  289. package/components/routes/cases/search/CaseStatusFilter.test.js +0 -86
  290. package/components/routes/hits/search/shared/IndexPicker.d.ts +0 -2
  291. package/components/routes/hits/search/shared/IndexPicker.js +0 -20
  292. package/components/routes/observables/ObservableViewer.d.ts +0 -7
  293. package/components/routes/observables/ObservableViewer.js +0 -27
  294. package/models/entities/generated/AttachmentsFile.d.ts +0 -12
  295. package/models/entities/generated/Case.d.ts +0 -28
  296. package/models/entities/generated/DestinationOriginal.d.ts +0 -19
  297. package/models/entities/generated/EmailAttachment.d.ts +0 -8
  298. package/models/entities/generated/EmailParent.d.ts +0 -19
  299. package/models/entities/generated/Enrichments.d.ts +0 -7
  300. package/models/entities/generated/EnrichmentsIndicator.d.ts +0 -21
  301. package/models/entities/generated/HttpResponse.d.ts +0 -11
  302. package/models/entities/generated/Item.d.ts +0 -9
  303. package/models/entities/generated/Observable.d.ts +0 -85
  304. package/models/entities/generated/ObservableCloud.d.ts +0 -20
  305. package/models/entities/generated/ObservableDestination.d.ts +0 -23
  306. package/models/entities/generated/ObservableEmail.d.ts +0 -30
  307. package/models/entities/generated/ObservableFile.d.ts +0 -36
  308. package/models/entities/generated/ObservableHowler.d.ts +0 -42
  309. package/models/entities/generated/ObservableHttp.d.ts +0 -11
  310. package/models/entities/generated/ObservableObserver.d.ts +0 -21
  311. package/models/entities/generated/ObservableOrganization.d.ts +0 -7
  312. package/models/entities/generated/ObservableProcess.d.ts +0 -34
  313. package/models/entities/generated/ObservableSource.d.ts +0 -23
  314. package/models/entities/generated/ObservableThreat.d.ts +0 -21
  315. package/models/entities/generated/ObservableTls.d.ts +0 -12
  316. package/models/entities/generated/ObserverIngress.d.ts +0 -9
  317. package/models/entities/generated/Task.d.ts +0 -10
  318. package/models/socket/CaseUpdate.d.ts +0 -5
  319. package/models/socket/ViewersUpdate.d.ts +0 -4
  320. package/utils/socketUtils.test.d.ts +0 -1
  321. package/utils/socketUtils.test.js +0 -59
  322. package/utils/typeUtils.d.ts +0 -7
  323. package/utils/typeUtils.js +0 -27
  324. /package/{api/socket/viewers.test.d.ts → components/app/providers/HitSearchProvider.test.d.ts} +0 -0
  325. /package/components/elements/hit/{related/RelatedRecords.d.ts → HitDetails.d.ts} +0 -0
  326. /package/components/routes/hits/search/{RecordBrowser.d.ts → HitBrowser.d.ts} +0 -0
  327. /package/components/{app/providers/RecordSearchProvider.test.d.ts → routes/hits/search/HitContextMenu.test.d.ts} +0 -0
  328. /package/components/{elements/MarkdownEditor.d.ts → routes/overviews/OverviewEditor.d.ts} +0 -0
@@ -57,7 +57,6 @@ vi.mock('components/app/hooks/useMatchers', () => ({
57
57
  getMatchingTemplate: mockGetMatchingTemplate
58
58
  }))
59
59
  }));
60
- const mockShowModal = vi.fn();
61
60
  const mockDispatchApi = vi.fn();
62
61
  vi.mock('components/hooks/useMyApi', () => ({
63
62
  default: vi.fn(() => ({
@@ -83,9 +82,6 @@ vi.mock('plugins/store', () => ({
83
82
  plugins: ['plugin1']
84
83
  }
85
84
  }));
86
- vi.mock('components/routes/cases/modals/AddToCaseModal', () => ({
87
- default: () => null
88
- }));
89
85
  // Mock MUI components
90
86
  vi.mock('@mui/material', async () => {
91
87
  const actual = await vi.importActual('@mui/material');
@@ -105,14 +101,13 @@ vi.mock('@mui/material', async () => {
105
101
  });
106
102
  // Import component after mocks
107
103
  import { ApiConfigContext } from '@cccsaurora/howler-ui/components/app/providers/ApiConfigProvider';
108
- import { ModalContext } from '@cccsaurora/howler-ui/components/app/providers/ModalProvider';
104
+ import { HitContext } from '@cccsaurora/howler-ui/components/app/providers/HitProvider';
109
105
  import { ParameterContext } from '@cccsaurora/howler-ui/components/app/providers/ParameterProvider';
110
- import { RecordContext } from '@cccsaurora/howler-ui/components/app/providers/RecordProvider';
111
106
  import i18n from '@cccsaurora/howler-ui/i18n';
112
107
  import { I18nextProvider } from 'react-i18next';
113
108
  import { createMockAction, createMockAnalytic, createMockHit, createMockTemplate } from '@cccsaurora/howler-ui/tests/utils';
114
109
  import { DEFAULT_QUERY } from '@cccsaurora/howler-ui/utils/constants';
115
- import RecordContextMenu from './RecordContextMenu';
110
+ import HitContextMenu from './HitContextMenu';
116
111
  const mockGetSelectedId = vi.fn(() => 'test-hit-1');
117
112
  const mockConfig = {
118
113
  lookups: {
@@ -120,16 +115,16 @@ const mockConfig = {
120
115
  }
121
116
  };
122
117
  const mockApiContext = { config: mockConfig };
123
- const mockRecordContext = {
124
- records: {
118
+ const mockHitContext = {
119
+ hits: {
125
120
  'test-hit-1': createMockHit()
126
121
  },
127
- selectedRecords: []
122
+ selectedHits: []
128
123
  };
129
124
  const mockParameterContext = { query: DEFAULT_QUERY, setQuery: vi.fn() };
130
125
  // Test wrapper
131
126
  const Wrapper = ({ children }) => {
132
- return (_jsx(I18nextProvider, { i18n: i18n, children: _jsx(ApiConfigContext.Provider, { value: mockApiContext, children: _jsx(ModalContext.Provider, { value: { showModal: mockShowModal }, children: _jsx(RecordContext.Provider, { value: mockRecordContext, children: _jsx(ParameterContext.Provider, { value: mockParameterContext, children: children }) }) }) }) }));
127
+ return (_jsx(I18nextProvider, { i18n: i18n, children: _jsx(ApiConfigContext.Provider, { value: mockApiContext, children: _jsx(HitContext.Provider, { value: mockHitContext, children: _jsx(ParameterContext.Provider, { value: mockParameterContext, children: children }) }) }) }));
133
128
  };
134
129
  describe('HitContextMenu', () => {
135
130
  let user;
@@ -137,11 +132,11 @@ describe('HitContextMenu', () => {
137
132
  beforeEach(() => {
138
133
  user = userEvent.setup();
139
134
  vi.clearAllMocks();
140
- mockRecordContext.selectedRecords.length = 0;
141
- mockRecordContext.records['test-hit-1'] = createMockHit();
135
+ mockHitContext.selectedHits.length = 0;
136
+ mockHitContext.hits['test-hit-1'] = createMockHit();
142
137
  mockGetMatchingAnalytic.mockResolvedValue(createMockAnalytic());
143
138
  mockGetMatchingTemplate.mockResolvedValue(createMockTemplate());
144
- rerender = render(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) })).rerender;
139
+ rerender = render(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) })).rerender;
145
140
  });
146
141
  describe('Context Menu Initialization', () => {
147
142
  it('should open menu on right-click', async () => {
@@ -205,13 +200,13 @@ describe('HitContextMenu', () => {
205
200
  });
206
201
  it('should disable "Open Hit" when hit is null', async () => {
207
202
  act(() => {
208
- mockRecordContext.records['test-hit-1'] = null;
203
+ mockHitContext.hits['test-hit-1'] = null;
209
204
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
210
205
  fireEvent.contextMenu(contextMenuWrapper);
211
206
  });
212
207
  await waitFor(() => {
213
208
  const menuItems = screen.getAllByRole('menuitem');
214
- const openHitItem = menuItems.find(item => item.textContent?.toLowerCase().includes('open hit'));
209
+ const openHitItem = menuItems.find(item => item.textContent?.toLowerCase().includes('open hit viewer'));
215
210
  expect(openHitItem).toHaveAttribute('aria-disabled', 'true');
216
211
  });
217
212
  });
@@ -252,7 +247,7 @@ describe('HitContextMenu', () => {
252
247
  skip_rationale: false
253
248
  }
254
249
  }));
255
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
250
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
256
251
  act(() => {
257
252
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
258
253
  fireEvent.contextMenu(contextMenuWrapper);
@@ -310,7 +305,7 @@ describe('HitContextMenu', () => {
310
305
  createMockAction({ action_id: 'action-2', name: 'Custom Action 2' })
311
306
  ];
312
307
  mockDispatchApi.mockResolvedValue({ items: mockActions });
313
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
308
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
314
309
  act(() => {
315
310
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
316
311
  fireEvent.contextMenu(contextMenuWrapper);
@@ -354,7 +349,7 @@ describe('HitContextMenu', () => {
354
349
  });
355
350
  it('should disable custom actions menu when no actions are available', async () => {
356
351
  mockDispatchApi.mockResolvedValueOnce({ items: [] });
357
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
352
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
358
353
  act(() => {
359
354
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
360
355
  fireEvent.contextMenu(contextMenuWrapper);
@@ -396,7 +391,7 @@ describe('HitContextMenu', () => {
396
391
  skip_rationale: true
397
392
  }
398
393
  }));
399
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
394
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
400
395
  act(() => {
401
396
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
402
397
  fireEvent.contextMenu(contextMenuWrapper);
@@ -464,7 +459,7 @@ describe('HitContextMenu', () => {
464
459
  it('should call executeAction with action_id and hit query', async () => {
465
460
  const mockActions = [createMockAction({ action_id: 'action-1', name: 'Custom Action' })];
466
461
  mockDispatchApi.mockResolvedValue({ items: mockActions });
467
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
462
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
468
463
  act(() => {
469
464
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
470
465
  fireEvent.contextMenu(contextMenuWrapper);
@@ -517,7 +512,7 @@ describe('HitContextMenu', () => {
517
512
  mockGetMatchingTemplate.mockResolvedValue(createMockTemplate({
518
513
  keys: ['howler.detection', 'event.id']
519
514
  }));
520
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
515
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
521
516
  });
522
517
  it('should render exclusion submenu with template keys', async () => {
523
518
  act(() => {
@@ -565,7 +560,7 @@ describe('HitContextMenu', () => {
565
560
  mockGetMatchingTemplate.mockResolvedValue(createMockTemplate({
566
561
  keys: ['howler.outline.indicators']
567
562
  }));
568
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
563
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
569
564
  act(() => {
570
565
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
571
566
  fireEvent.contextMenu(contextMenuWrapper);
@@ -608,7 +603,7 @@ describe('HitContextMenu', () => {
608
603
  mockGetMatchingTemplate.mockResolvedValue(createMockTemplate({
609
604
  keys: []
610
605
  }));
611
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
606
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
612
607
  act(() => {
613
608
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
614
609
  fireEvent.contextMenu(contextMenuWrapper);
@@ -620,7 +615,7 @@ describe('HitContextMenu', () => {
620
615
  });
621
616
  it('should skip null field values in exclusion menu', async () => {
622
617
  act(() => {
623
- mockRecordContext.records['test-hit-1'].event = {};
618
+ mockHitContext.hits['test-hit-1'].event = {};
624
619
  });
625
620
  act(() => {
626
621
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
@@ -643,7 +638,7 @@ describe('HitContextMenu', () => {
643
638
  mockGetMatchingTemplate.mockResolvedValue(createMockTemplate({
644
639
  keys: ['howler.detection', 'event.id']
645
640
  }));
646
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
641
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
647
642
  });
648
643
  it('should render inclusion submenu with template keys', async () => {
649
644
  act(() => {
@@ -691,7 +686,7 @@ describe('HitContextMenu', () => {
691
686
  mockGetMatchingTemplate.mockResolvedValue(createMockTemplate({
692
687
  keys: ['howler.outline.indicators']
693
688
  }));
694
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
689
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
695
690
  act(() => {
696
691
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
697
692
  fireEvent.contextMenu(contextMenuWrapper);
@@ -734,7 +729,7 @@ describe('HitContextMenu', () => {
734
729
  mockGetMatchingTemplate.mockResolvedValue(createMockTemplate({
735
730
  keys: []
736
731
  }));
737
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
732
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
738
733
  act(() => {
739
734
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
740
735
  fireEvent.contextMenu(contextMenuWrapper);
@@ -746,7 +741,7 @@ describe('HitContextMenu', () => {
746
741
  });
747
742
  it('should skip null field values in inclusion menu', async () => {
748
743
  act(() => {
749
- mockRecordContext.records['test-hit-1'].event = {};
744
+ mockHitContext.hits['test-hit-1'].event = {};
750
745
  });
751
746
  act(() => {
752
747
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
@@ -765,24 +760,24 @@ describe('HitContextMenu', () => {
765
760
  });
766
761
  });
767
762
  describe('Multiple Hit Selection', () => {
768
- it('should use selectedRecords when current hit is included', async () => {
763
+ it('should use selectedHits when current hit is included', async () => {
769
764
  act(() => {
770
- mockRecordContext.records['hit-1'] = createMockHit({ howler: { id: 'hit-1' } });
771
- mockRecordContext.records['hit-2'] = createMockHit({ howler: { id: 'hit-2' } });
772
- mockRecordContext.selectedRecords.push(mockRecordContext.records['hit-1'], mockRecordContext.records['hit-2']);
765
+ mockHitContext.hits['hit-1'] = createMockHit({ howler: { id: 'hit-1' } });
766
+ mockHitContext.hits['hit-2'] = createMockHit({ howler: { id: 'hit-2' } });
767
+ mockHitContext.selectedHits.push(mockHitContext.hits['hit-1'], mockHitContext.hits['hit-2']);
773
768
  mockGetSelectedId.mockReturnValue('hit-1');
774
769
  });
775
770
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
776
771
  await user.pointer({ keys: '[MouseRight]', target: contextMenuWrapper });
777
- // The component should use selectedRecords for actions
772
+ // The component should use selectedHits for actions
778
773
  // We can verify this indirectly through the useHitActions hook receiving the right data
779
774
  expect(screen.getByRole('menu')).toBeInTheDocument();
780
775
  expect(mockGetSelectedId).toHaveBeenCalled();
781
776
  });
782
- it('should use only current hit when not in selectedRecords', async () => {
777
+ it('should use only current hit when not in selectedHits', async () => {
783
778
  act(() => {
784
- mockRecordContext.records['hit-1'] = createMockHit({ howler: { id: 'hit-1' } });
785
- mockRecordContext.selectedRecords.push(mockRecordContext.records['hit-1']);
779
+ mockHitContext.hits['hit-1'] = createMockHit({ howler: { id: 'hit-1' } });
780
+ mockHitContext.selectedHits.push(mockHitContext.hits['hit-1']);
786
781
  mockGetSelectedId.mockReturnValue('test-hit-1');
787
782
  });
788
783
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
@@ -801,12 +796,12 @@ describe('HitContextMenu', () => {
801
796
  });
802
797
  it('should call getMatchingAnalytic when hit has analytic', async () => {
803
798
  await waitFor(() => {
804
- expect(mockGetMatchingAnalytic).toHaveBeenCalledWith(mockRecordContext.records['test-hit-1']);
799
+ expect(mockGetMatchingAnalytic).toHaveBeenCalledWith(mockHitContext.hits['test-hit-1']);
805
800
  });
806
801
  });
807
802
  it('should call getMatchingTemplate when menu opens', async () => {
808
803
  await waitFor(() => {
809
- expect(mockGetMatchingTemplate).toHaveBeenCalledWith(mockRecordContext.records['test-hit-1']);
804
+ expect(mockGetMatchingTemplate).toHaveBeenCalledWith(mockHitContext.hits['test-hit-1']);
810
805
  });
811
806
  });
812
807
  it('should reset state when menu closes', async () => {
@@ -839,7 +834,7 @@ describe('HitContextMenu', () => {
839
834
  describe('Edge Cases and Error Handling', () => {
840
835
  it('should not crash when hit is null', async () => {
841
836
  act(() => {
842
- mockRecordContext.records = {};
837
+ mockHitContext.hits = {};
843
838
  });
844
839
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
845
840
  fireEvent.contextMenu(contextMenuWrapper);
@@ -850,7 +845,7 @@ describe('HitContextMenu', () => {
850
845
  });
851
846
  it('should not render exclusion menu when template is null', async () => {
852
847
  mockGetMatchingTemplate.mockResolvedValue(null);
853
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
848
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
854
849
  act(() => {
855
850
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
856
851
  fireEvent.contextMenu(contextMenuWrapper);
@@ -864,7 +859,7 @@ describe('HitContextMenu', () => {
864
859
  });
865
860
  it('should not render inclusion menu when template is null', async () => {
866
861
  mockGetMatchingTemplate.mockResolvedValue(null);
867
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
862
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
868
863
  act(() => {
869
864
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
870
865
  fireEvent.contextMenu(contextMenuWrapper);
@@ -878,7 +873,7 @@ describe('HitContextMenu', () => {
878
873
  });
879
874
  it('should handle API failure gracefully', async () => {
880
875
  mockDispatchApi.mockResolvedValue(null);
881
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
876
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
882
877
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
883
878
  fireEvent.contextMenu(contextMenuWrapper);
884
879
  await waitFor(() => {
@@ -889,7 +884,7 @@ describe('HitContextMenu', () => {
889
884
  });
890
885
  it('should not call getMatchingAnalytic or getMatchingTemplate when hit has no analytic', async () => {
891
886
  act(() => {
892
- mockRecordContext.records['test-hit-1'].howler.analytic = null;
887
+ mockHitContext.hits['test-hit-1'].howler.analytic = null;
893
888
  });
894
889
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
895
890
  fireEvent.contextMenu(contextMenuWrapper);
@@ -908,56 +903,6 @@ describe('HitContextMenu', () => {
908
903
  expect(mockPluginStoreExecuteFunction).toHaveBeenCalled();
909
904
  });
910
905
  });
911
- describe('Add to Case Menu Item', () => {
912
- it('should render "Add to Case" item in the menu', async () => {
913
- act(() => {
914
- const contextMenuWrapper = screen.getByText('Test Content').parentElement;
915
- fireEvent.contextMenu(contextMenuWrapper);
916
- });
917
- await waitFor(() => {
918
- expect(screen.getByText('Add to Case')).toBeInTheDocument();
919
- });
920
- });
921
- it('should enable "Add to Case" when a record is present', async () => {
922
- act(() => {
923
- const contextMenuWrapper = screen.getByText('Test Content').parentElement;
924
- fireEvent.contextMenu(contextMenuWrapper);
925
- });
926
- await waitFor(() => {
927
- const menuItems = screen.getAllByRole('menuitem');
928
- const addToCaseItem = menuItems.find(item => item.textContent?.includes('Add to Case'));
929
- expect(addToCaseItem).toHaveAttribute('aria-disabled', 'false');
930
- });
931
- });
932
- it('should disable "Add to Case" when record is null', async () => {
933
- act(() => {
934
- mockRecordContext.records['test-hit-1'] = null;
935
- const contextMenuWrapper = screen.getByText('Test Content').parentElement;
936
- fireEvent.contextMenu(contextMenuWrapper);
937
- });
938
- await waitFor(() => {
939
- const menuItems = screen.getAllByRole('menuitem');
940
- const addToCaseItem = menuItems.find(item => item.textContent?.includes('Add to Case'));
941
- expect(addToCaseItem).toHaveAttribute('aria-disabled', 'true');
942
- });
943
- });
944
- it('should call showModal with an AddToCaseModal element when clicked', async () => {
945
- act(() => {
946
- const contextMenuWrapper = screen.getByText('Test Content').parentElement;
947
- fireEvent.contextMenu(contextMenuWrapper);
948
- });
949
- await waitFor(() => {
950
- expect(screen.getByText('Add to Case')).toBeInTheDocument();
951
- });
952
- await act(async () => {
953
- await user.click(screen.getByText('Add to Case'));
954
- });
955
- await waitFor(() => {
956
- expect(mockShowModal).toHaveBeenCalledOnce();
957
- expect(mockShowModal).toHaveBeenCalledWith(expect.objectContaining({ type: expect.any(Function) }), expect.objectContaining({ maxHeight: expect.any(String) }));
958
- });
959
- });
960
- });
961
906
  describe('Role-Based Action Permissions', () => {
962
907
  afterEach(() => {
963
908
  // Reset to default user with required roles
@@ -977,7 +922,7 @@ describe('HitContextMenu', () => {
977
922
  });
978
923
  const mockActions = [createMockAction({ action_id: 'action-1', name: 'Custom Action 1' })];
979
924
  mockDispatchApi.mockResolvedValue({ items: mockActions });
980
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
925
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
981
926
  act(() => {
982
927
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
983
928
  fireEvent.contextMenu(contextMenuWrapper);
@@ -996,7 +941,7 @@ describe('HitContextMenu', () => {
996
941
  });
997
942
  const mockActions = [createMockAction({ action_id: 'action-1', name: 'Custom Action 1' })];
998
943
  mockDispatchApi.mockResolvedValue({ items: mockActions });
999
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
944
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
1000
945
  act(() => {
1001
946
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
1002
947
  fireEvent.contextMenu(contextMenuWrapper);
@@ -1015,7 +960,7 @@ describe('HitContextMenu', () => {
1015
960
  });
1016
961
  const mockActions = [createMockAction({ action_id: 'action-1', name: 'Custom Action 1' })];
1017
962
  mockDispatchApi.mockResolvedValue({ items: mockActions });
1018
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
963
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
1019
964
  act(() => {
1020
965
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
1021
966
  fireEvent.contextMenu(contextMenuWrapper);
@@ -1033,7 +978,7 @@ describe('HitContextMenu', () => {
1033
978
  }
1034
979
  });
1035
980
  mockDispatchApi.mockResolvedValue({ items: [] });
1036
- rerender(_jsx(Wrapper, { children: _jsx(RecordContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
981
+ rerender(_jsx(Wrapper, { children: _jsx(HitContextMenu, { getSelectedId: mockGetSelectedId, children: _jsx("div", { children: "Test Content" }) }) }));
1037
982
  act(() => {
1038
983
  const contextMenuWrapper = screen.getByText('Test Content').parentElement;
1039
984
  fireEvent.contextMenu(contextMenuWrapper);
@@ -1,9 +1,9 @@
1
- export type RecordQueryProps = {
1
+ export type HitQueryProps = {
2
2
  triggerSearch: (query: string) => void;
3
3
  onChange?: (query: string, isDirty: boolean) => void;
4
4
  searching?: boolean;
5
5
  disabled?: boolean;
6
6
  compact?: boolean;
7
7
  };
8
- declare const _default: import("react").NamedExoticComponent<RecordQueryProps>;
8
+ declare const _default: import("react").NamedExoticComponent<HitQueryProps>;
9
9
  export default _default;
@@ -5,7 +5,7 @@ import { Badge, Box, Card, Skeleton, Tooltip, alpha, useTheme } from '@mui/mater
5
5
  import { ParameterContext } from '@cccsaurora/howler-ui/components/app/providers/ParameterProvider';
6
6
  import TuiIconButton from '@cccsaurora/howler-ui/components/elements/addons/buttons/CustomIconButton';
7
7
  import QueryEditor from '@cccsaurora/howler-ui/components/routes/advanced/QueryEditor';
8
- import { RecordSearchContext } from '@cccsaurora/howler-ui/components/app/providers/RecordSearchProvider';
8
+ import { HitSearchContext } from '@cccsaurora/howler-ui/components/app/providers/HitSearchProvider';
9
9
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
10
10
  import { useTranslation } from 'react-i18next';
11
11
  import { useLocation } from 'react-router-dom';
@@ -13,8 +13,8 @@ import { useContextSelector } from 'use-context-selector';
13
13
  import { DEFAULT_QUERY } from '@cccsaurora/howler-ui/utils/constants';
14
14
  import { sanitizeMultilineLucene } from '@cccsaurora/howler-ui/utils/stringUtils';
15
15
  const DEFAULT_MULTILINE_HEIGHT = 250;
16
- const PROMPT_CONTEXT = 'isRecordQuery && !suggestWidgetVisible && !renameInputVisible && !inSnippetMode && !quickFixWidgetVisible';
17
- const RecordQuery = ({ searching = false, disabled = false, compact = false, triggerSearch, onChange }) => {
16
+ const PROMPT_CONTEXT = 'isHitQuery && !suggestWidgetVisible && !renameInputVisible && !inSnippetMode && !quickFixWidgetVisible';
17
+ const HitQuery = ({ searching = false, disabled = false, compact = false, triggerSearch, onChange }) => {
18
18
  const { t } = useTranslation();
19
19
  const location = useLocation();
20
20
  const theme = useTheme();
@@ -22,7 +22,7 @@ const RecordQuery = ({ searching = false, disabled = false, compact = false, tri
22
22
  const savedQuery = useContextSelector(ParameterContext, ctx => ctx.query || DEFAULT_QUERY);
23
23
  const prevQuery = useRef(null);
24
24
  const [query, setQuery] = useState(new URLSearchParams(window.location.search).get('query') || DEFAULT_QUERY);
25
- const fzfSearch = useContextSelector(RecordSearchContext, ctx => ctx?.fzfSearch ?? false);
25
+ const fzfSearch = useContextSelector(HitSearchContext, ctx => ctx?.fzfSearch ?? false);
26
26
  const [loaded, setLoaded] = useState(false);
27
27
  const [multiline, setMultiline] = useState(false);
28
28
  const [y, setY] = useState(0);
@@ -90,7 +90,7 @@ const RecordQuery = ({ searching = false, disabled = false, compact = false, tri
90
90
  window.addEventListener('mouseup', onMouseUp);
91
91
  }, [onMouseMove, onMouseUp]);
92
92
  const onMount = useCallback((ed) => {
93
- ed.createContextKey('isRecordQuery', true);
93
+ ed.createContextKey('isHitQuery', true);
94
94
  setLoaded(true);
95
95
  }, []);
96
96
  const options = useMemo(() => ({
@@ -148,4 +148,4 @@ const RecordQuery = ({ searching = false, disabled = false, compact = false, tri
148
148
  zIndex: 1000
149
149
  }, onMouseDown: onMouseDown }))] }));
150
150
  };
151
- export default memo(RecordQuery);
151
+ export default memo(HitQuery);
@@ -1,6 +1,5 @@
1
1
  import type { FC } from 'react';
2
2
  declare const InformationPane: FC<{
3
- selected?: string;
4
3
  onClose?: () => void;
5
4
  }>;
6
5
  export default InformationPane;