From 538fd93f4cdfad837456cf88f55b7b72ed7f9e2a Mon Sep 17 00:00:00 2001 From: Kai Rollmann Date: Wed, 2 Sep 2026 17:17:04 +0200 Subject: [PATCH] refactor(frontend): rename tooltip panel to info pane --- frontend/README.md | 4 +-- frontend/src/js/app/Content.tsx | 18 +++++------ frontend/src/js/app/actions.ts | 4 +-- frontend/src/js/app/reducers.ts | 6 ++-- frontend/src/js/button/HistoryButton.tsx | 2 +- .../ConceptTreesOpenButtons.tsx | 2 +- .../ConceptTreeNodeTextContainer.tsx | 2 +- frontend/src/js/dataset/DatasetSelector.tsx | 2 +- frontend/src/js/editor-v2/EditorV2.tsx | 4 +-- .../js/editor-v2/KeyboardShortcutTooltip.tsx | 2 +- frontend/src/js/editor-v2/TreeNode.tsx | 2 +- .../src/js/entity-history/ContentControl.tsx | 2 +- .../src/js/entity-history/DetailControl.tsx | 2 +- .../js/entity-history/InteractionControl.tsx | 2 +- frontend/src/js/entity-history/Navigation.tsx | 4 +-- .../js/entity-history/NavigationHeader.tsx | 4 +-- .../TimeStratifiedConceptChart.tsx | 2 +- .../js/entity-history/VisibilityControl.tsx | 2 +- .../timeline-search/SearchControl.tsx | 2 +- .../js/entity-history/timeline/EventCard.tsx | 2 +- .../js/entity-history/timeline/YearHead.tsx | 2 +- .../src/js/external-forms/FormsNavigation.tsx | 4 +-- .../form-components/DropzoneList.tsx | 2 +- .../form-concept-group/FormConceptNode.tsx | 2 +- .../form-query-dropzone/FormQueryDropzone.tsx | 2 +- .../external-forms/form/fields/DateField.tsx | 2 +- .../form/fields/DisclosureListField.tsx | 2 +- frontend/src/js/header/HelpMenu.tsx | 2 +- frontend/src/js/header/LogoutButton.tsx | 2 +- .../AdditionalInfoHoverable.tsx | 0 .../Tooltip.tsx => info-pane/InfoPane.tsx} | 30 +++++++++---------- .../InfoPaneCollapsed.tsx} | 10 +++---- .../InfoPaneHeader.tsx} | 10 +++---- .../MatchingStats.tsx} | 12 ++++---- .../src/js/{tooltip => info-pane}/actions.ts | 12 ++++---- .../src/js/{tooltip => info-pane}/reducer.ts | 24 +++++++-------- frontend/src/js/modal/Modal.tsx | 2 +- frontend/src/js/pane/TabNavigation.tsx | 2 +- frontend/src/js/preview/HeadlineStats.tsx | 8 ++--- frontend/src/js/preview/Preview.tsx | 2 +- .../list/DeleteProjectItemButton.tsx | 4 +-- .../src/js/previous-queries/list/Folders.tsx | 2 +- .../list/FoldersToggleButton.tsx | 2 +- .../js/previous-queries/list/ProjectItem.tsx | 2 +- .../list/ShareProjectItemModal.tsx | 2 +- .../upload/CSVColumnPicker.tsx | 2 +- .../upload/UploadQueryResults.tsx | 2 +- .../upload/UploadQueryResultsModal.tsx | 2 +- .../src/js/query-node-editor/ConceptEntry.tsx | 2 +- .../js/query-node-editor/MenuColumnItem.tsx | 2 +- .../ResetAllSettingsButton.tsx | 4 +-- .../js/query-node-editor/ResetAndClose.tsx | 2 +- .../DownloadResultsDropdownButton.tsx | 2 +- frontend/src/js/query-runner/QueryRunner.tsx | 2 +- .../SmallTabNavigation.tsx | 2 +- .../QueryAndDropzone.tsx | 2 +- .../QueryClearButton.tsx | 4 +-- .../js/standard-query-editor/QueryGroup.tsx | 2 +- .../QueryGroupActions.tsx | 2 +- .../js/standard-query-editor/QueryNode.tsx | 2 +- .../QueryNodeActions.tsx | 2 +- .../QueryNodeContent.tsx | 2 +- .../SecondaryIdSelector.tsx | 2 +- frontend/src/js/ui-components/BaseInput.tsx | 3 +- .../ConfirmableTooltip.tsx | 0 .../src/js/ui-components/EditableTagsForm.tsx | 3 +- .../src/js/ui-components/EditableText.tsx | 3 +- .../src/js/ui-components/EditableTextForm.tsx | 2 +- .../InfoTooltip.tsx | 0 .../src/js/ui-components/InputCheckbox.tsx | 4 +-- .../src/js/ui-components/InputDateRange.tsx | 2 +- .../InputMultiSelect/InputMultiSelect.tsx | 2 +- .../src/js/ui-components/InputRangeHeader.tsx | 2 +- .../ui-components/InputSelect/InputSelect.tsx | 2 +- frontend/src/js/ui-components/Labeled.tsx | 2 +- .../src/js/ui-components/ToggleButton.tsx | 2 +- .../WithTooltip.tsx | 0 frontend/src/localization/de.json | 12 ++++---- frontend/src/localization/en.json | 12 ++++---- 79 files changed, 149 insertions(+), 156 deletions(-) rename frontend/src/js/{tooltip => info-pane}/AdditionalInfoHoverable.tsx (100%) rename frontend/src/js/{tooltip/Tooltip.tsx => info-pane/InfoPane.tsx} (90%) rename frontend/src/js/{tooltip/ActivateTooltip.tsx => info-pane/InfoPaneCollapsed.tsx} (72%) rename frontend/src/js/{tooltip/TooltipHeader.tsx => info-pane/InfoPaneHeader.tsx} (75%) rename frontend/src/js/{tooltip/TooltipEntries.tsx => info-pane/MatchingStats.tsx} (93%) rename frontend/src/js/{tooltip => info-pane}/actions.ts (59%) rename frontend/src/js/{tooltip => info-pane}/reducer.ts (81%) rename frontend/src/js/{tooltip => ui-components}/ConfirmableTooltip.tsx (100%) rename frontend/src/js/{tooltip => ui-components}/InfoTooltip.tsx (100%) rename frontend/src/js/{tooltip => ui-components}/WithTooltip.tsx (100%) diff --git a/frontend/README.md b/frontend/README.md index 0b24cd41db..65a377e562 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -109,8 +109,8 @@ Depending on the use-case, we're still calling the same concepts differently som - **Query Node / Element** – one node in the query editor, either a concept or a previous query - **Previous Query / Stored Query** – a previous query that has been saved in the backend database for future use (as itself or within other queries) - **Dataset / Database** – data set that is used to ask queries against -- **Tooltip** – small area (below), that contains additional information on hovering over certain elements -- **Additional Infos** – data (key-value pairs) that are part of concept nodes and can be displayed inside the tooltip +- **Info Pane** – collapsible area on the left, that contains additional information on hovering over certain elements +- **Additional Infos** – data (key-value pairs) that are part of concept nodes and can be displayed inside the info pane ## Technical Explanations (mini ADRs – "architectural decision records") diff --git a/frontend/src/js/app/Content.tsx b/frontend/src/js/app/Content.tsx index d7e02894eb..f7ca5fac2f 100644 --- a/frontend/src/js/app/Content.tsx +++ b/frontend/src/js/app/Content.tsx @@ -3,17 +3,17 @@ import { Group, Panel } from "react-resizable-panels"; import { ResizeHandle } from "../common/ResizeHandle"; import { useCollapsiblePanel } from "../common/useCollapsiblePanel"; import { History } from "../entity-history/History"; +import InfoPane from "../info-pane/InfoPane"; +import InfoPaneCollapsed from "../info-pane/InfoPaneCollapsed"; import Preview from "../preview/Preview"; -import ActivateTooltip from "../tooltip/ActivateTooltip"; -import Tooltip from "../tooltip/Tooltip"; import DndProvider from "./DndProvider"; import LeftPane from "./LeftPane"; import RightPane from "./RightPane"; import type { StateT } from "./reducers"; const Content = () => { - const displayTooltip = useSelector( - (state) => state.tooltip.displayTooltip, + const isInfoPaneOpen = useSelector( + (state) => state.infoPane.isOpen, ); const isPreviewOpen = useSelector( @@ -24,23 +24,23 @@ const Content = () => { (state) => state.entityHistory.isOpen, ); - const tooltipPanelRef = useCollapsiblePanel(!displayTooltip); + const infoPaneRef = useCollapsiblePanel(!isInfoPaneOpen); return (
- {displayTooltip ? : } + {isInfoPaneOpen ? : } - + diff --git a/frontend/src/js/app/actions.ts b/frontend/src/js/app/actions.ts index 1fb125106e..f37ed730ba 100644 --- a/frontend/src/js/app/actions.ts +++ b/frontend/src/js/app/actions.ts @@ -3,6 +3,7 @@ import type { ConceptTreesOpenActions } from "../concept-trees-open/actions"; import type { DatasetActions } from "../dataset/actions"; import type { EntityHistoryActions } from "../entity-history/actions"; import type { ExternalFormActions } from "../external-forms/actions"; +import type { InfoPaneActions } from "../info-pane/actions"; import type { PaneActions } from "../pane/actions"; import type { PreviewActions } from "../preview/actions"; import type { ProjectItemsFilterActions } from "../previous-queries/filter/actions"; @@ -16,7 +17,6 @@ import type { QueryUploadConceptListModalActions } from "../query-upload-concept import type { SnackMessageActions } from "../snack-message/actions"; import type { StandardQueryEditorActions } from "../standard-query-editor/actions"; import type { StartupActions } from "../startup/actions"; -import type { TooltipActions } from "../tooltip/actions"; import type { UploadConceptListModalActions } from "../upload-concept-list-modal/actions"; import type { UserActions } from "../user/actions"; @@ -35,7 +35,7 @@ export type Action = | SnackMessageActions | PreviousQueryListActions | StartupActions - | TooltipActions + | InfoPaneActions | ExternalFormActions | QueryRunnerActions | PaneActions diff --git a/frontend/src/js/app/reducers.ts b/frontend/src/js/app/reducers.ts index 9b35a3e43e..b0a43adbd8 100644 --- a/frontend/src/js/app/reducers.ts +++ b/frontend/src/js/app/reducers.ts @@ -14,6 +14,7 @@ import { activeFormReducer, availableFormsReducer, } from "../external-forms/reducer"; +import infoPane, { type InfoPaneStateT } from "../info-pane/reducer"; import panes, { type PanesStateT } from "../pane/reducer"; import preview, { type PreviewStateT } from "../preview/reducer"; import projectItemsFilter, { @@ -44,7 +45,6 @@ import selectedSecondaryIdsReducer, { type SelectedSecondaryIdStateT, } from "../standard-query-editor/selectedSecondaryIdReducer"; import startup, { type StartupStateT } from "../startup/reducer"; -import tooltip, { type TooltipStateT } from "../tooltip/reducer"; import uploadConceptListModal, { type UploadConceptListModalStateT, } from "../upload-concept-list-modal/reducer"; @@ -54,7 +54,7 @@ export type StateT = { conceptTrees: ConceptTreesStateT; conceptTreesOpen: ConceptTreesOpenStateT; datasets: DatasetStateT; - tooltip: TooltipStateT; + infoPane: InfoPaneStateT; panes: PanesStateT; uploadConceptListModal: UploadConceptListModalStateT; user: UserStateT; @@ -89,7 +89,7 @@ const buildAppReducer = () => { conceptTreesOpen, uploadConceptListModal, datasets, - tooltip, + infoPane, panes, previousQueries, projectItemsSearch, diff --git a/frontend/src/js/button/HistoryButton.tsx b/frontend/src/js/button/HistoryButton.tsx index 5a36fcde58..757fa432c2 100644 --- a/frontend/src/js/button/HistoryButton.tsx +++ b/frontend/src/js/button/HistoryButton.tsx @@ -4,7 +4,7 @@ import { useTranslation } from "react-i18next"; import { useDispatch } from "react-redux"; import { openHistory } from "../entity-history/actions"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import IconButton from "./IconButton"; diff --git a/frontend/src/js/concept-trees-open/ConceptTreesOpenButtons.tsx b/frontend/src/js/concept-trees-open/ConceptTreesOpenButtons.tsx index 1942662d54..e06eb770d7 100644 --- a/frontend/src/js/concept-trees-open/ConceptTreesOpenButtons.tsx +++ b/frontend/src/js/concept-trees-open/ConceptTreesOpenButtons.tsx @@ -8,7 +8,7 @@ import type { StateT } from "../app/reducers"; import IconButton from "../button/IconButton"; import { clearSearchQuery } from "../concept-trees/actions"; import { useRootConceptIds } from "../concept-trees/useRootConceptIds"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import { closeAllConceptOpen, resetAllConceptOpen } from "./actions"; import type { ConceptTreesOpenStateT } from "./reducer"; diff --git a/frontend/src/js/concept-trees/ConceptTreeNodeTextContainer.tsx b/frontend/src/js/concept-trees/ConceptTreeNodeTextContainer.tsx index 15007c2e03..3038ffb97b 100644 --- a/frontend/src/js/concept-trees/ConceptTreeNodeTextContainer.tsx +++ b/frontend/src/js/concept-trees/ConceptTreeNodeTextContainer.tsx @@ -5,12 +5,12 @@ import type { ConceptIdT, ConceptT } from "../api/types"; import { getWidthAndHeight } from "../app/DndProvider"; import { DNDType } from "../common/constants/dndTypes"; import { exists } from "../common/helpers/exists"; +import AdditionalInfoHoverable from "../info-pane/AdditionalInfoHoverable"; import { getNodeIcon } from "../model/node"; import type { ConceptQueryNodeType, DragItemConceptTreeNode, } from "../standard-query-editor/types"; -import AdditionalInfoHoverable from "../tooltip/AdditionalInfoHoverable"; import ConceptTreeNodeText from "./ConceptTreeNodeText"; import type { SearchT } from "./reducer"; diff --git a/frontend/src/js/dataset/DatasetSelector.tsx b/frontend/src/js/dataset/DatasetSelector.tsx index 393dbd9441..38fda6d35a 100644 --- a/frontend/src/js/dataset/DatasetSelector.tsx +++ b/frontend/src/js/dataset/DatasetSelector.tsx @@ -6,8 +6,8 @@ import { tv } from "tailwind-variants"; import type { DatasetT, SelectOptionT } from "../api/types"; import type { StateT } from "../app/reducers"; import { exists } from "../common/helpers/exists"; -import WithTooltip from "../tooltip/WithTooltip"; import InputSelect from "../ui-components/InputSelect/InputSelect"; +import WithTooltip from "../ui-components/WithTooltip"; import { useSelectDataset } from "./actions"; diff --git a/frontend/src/js/editor-v2/EditorV2.tsx b/frontend/src/js/editor-v2/EditorV2.tsx index 72ff2c2bcd..8a2db3637c 100644 --- a/frontend/src/js/editor-v2/EditorV2.tsx +++ b/frontend/src/js/editor-v2/EditorV2.tsx @@ -22,9 +22,9 @@ import type { DragItemConceptTreeNode, DragItemQuery, } from "../standard-query-editor/types"; -import { ConfirmableTooltip } from "../tooltip/ConfirmableTooltip"; -import WithTooltip from "../tooltip/WithTooltip"; +import { ConfirmableTooltip } from "../ui-components/ConfirmableTooltip"; import Dropzone from "../ui-components/Dropzone"; +import WithTooltip from "../ui-components/WithTooltip"; import { EDITOR_DROP_TYPES, HOTKEYS } from "./config"; import { useConnectorEditing } from "./connector-update/useConnectorRotation"; import { DateModal } from "./date-restriction/DateModal"; diff --git a/frontend/src/js/editor-v2/KeyboardShortcutTooltip.tsx b/frontend/src/js/editor-v2/KeyboardShortcutTooltip.tsx index 9b564b1e59..0035e2897c 100644 --- a/frontend/src/js/editor-v2/KeyboardShortcutTooltip.tsx +++ b/frontend/src/js/editor-v2/KeyboardShortcutTooltip.tsx @@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next"; import { tv } from "tailwind-variants"; import { KeyboardKey } from "../common/components/KeyboardKey"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; const keyTooltip = tv({ base: ["flex items-center", "gap-[5px]", "px-[15px] py-2"], diff --git a/frontend/src/js/editor-v2/TreeNode.tsx b/frontend/src/js/editor-v2/TreeNode.tsx index 6e3ecc1101..ec4b3d2755 100644 --- a/frontend/src/js/editor-v2/TreeNode.tsx +++ b/frontend/src/js/editor-v2/TreeNode.tsx @@ -12,11 +12,11 @@ import type { DragItemConceptTreeNode, DragItemQuery, } from "../standard-query-editor/types"; -import WithTooltip from "../tooltip/WithTooltip"; import Dropzone, { type DropzoneProps, type PossibleDroppableObject, } from "../ui-components/Dropzone"; +import WithTooltip from "../ui-components/WithTooltip"; import { EDITOR_DROP_TYPES } from "./config"; import { DateRange } from "./date-restriction/DateRange"; import { Connector, Grid } from "./EditorLayout"; diff --git a/frontend/src/js/entity-history/ContentControl.tsx b/frontend/src/js/entity-history/ContentControl.tsx index b22d131db0..1dc616db74 100644 --- a/frontend/src/js/entity-history/ContentControl.tsx +++ b/frontend/src/js/entity-history/ContentControl.tsx @@ -8,7 +8,7 @@ import { memo, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import IconButton from "../button/IconButton"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; export type ContentType = | "groupId" diff --git a/frontend/src/js/entity-history/DetailControl.tsx b/frontend/src/js/entity-history/DetailControl.tsx index 55d13e443d..e1070a1ed0 100644 --- a/frontend/src/js/entity-history/DetailControl.tsx +++ b/frontend/src/js/entity-history/DetailControl.tsx @@ -10,7 +10,7 @@ import { useTranslation } from "react-i18next"; import { tv } from "tailwind-variants"; import IconButton from "../button/IconButton"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; const root = tv({ base: "flex flex-col items-center" }); export type DetailLevel = "summary" | "detail" | "full"; diff --git a/frontend/src/js/entity-history/InteractionControl.tsx b/frontend/src/js/entity-history/InteractionControl.tsx index abe0404c2b..e7a9fdff65 100644 --- a/frontend/src/js/entity-history/InteractionControl.tsx +++ b/frontend/src/js/entity-history/InteractionControl.tsx @@ -3,7 +3,7 @@ import { memo } from "react"; import { useTranslation } from "react-i18next"; import IconButton from "../button/IconButton"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; const InteractionControl = ({ onCloseAll, diff --git a/frontend/src/js/entity-history/Navigation.tsx b/frontend/src/js/entity-history/Navigation.tsx index 8c7c3b6248..33b47eb015 100644 --- a/frontend/src/js/entity-history/Navigation.tsx +++ b/frontend/src/js/entity-history/Navigation.tsx @@ -20,8 +20,8 @@ import { tv } from "tailwind-variants"; import type { SelectOptionT } from "../api/types"; import type { StateT } from "../app/reducers"; import IconButton from "../button/IconButton"; -import { ConfirmableTooltip } from "../tooltip/ConfirmableTooltip"; -import WithTooltip from "../tooltip/WithTooltip"; +import { ConfirmableTooltip } from "../ui-components/ConfirmableTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import { closeHistory, resetHistory, useUpdateHistorySession } from "./actions"; import { EntityIdsList } from "./EntityIdsList"; import type { EntityIdsStatus } from "./History"; diff --git a/frontend/src/js/entity-history/NavigationHeader.tsx b/frontend/src/js/entity-history/NavigationHeader.tsx index c5ba7b0fe7..8669f88568 100644 --- a/frontend/src/js/entity-history/NavigationHeader.tsx +++ b/frontend/src/js/entity-history/NavigationHeader.tsx @@ -9,7 +9,7 @@ import type { StateT } from "../app/reducers"; import IconButton from "../button/IconButton"; import ProgressBar from "../common/components/ProgressBar"; import { Heading3 } from "../headings/Headings"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import { SettingsModal } from "./SettingsModal"; @@ -97,7 +97,7 @@ export const NavigationHeader = memo(
{idsCount} - {t("tooltip.entitiesFound", { count: idsCount })} + {t("common.entitiesFound", { count: idsCount })} {markedCount} diff --git a/frontend/src/js/entity-history/TimeStratifiedConceptChart.tsx b/frontend/src/js/entity-history/TimeStratifiedConceptChart.tsx index c5bbc0d506..211933ea8b 100644 --- a/frontend/src/js/entity-history/TimeStratifiedConceptChart.tsx +++ b/frontend/src/js/entity-history/TimeStratifiedConceptChart.tsx @@ -9,7 +9,7 @@ import type { } from "../api/types"; import { getConceptById } from "../concept-trees/globalTreeStoreHelper"; import FaIcon from "../icon/FaIcon"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import { ConceptBubble } from "./ConceptBubble"; diff --git a/frontend/src/js/entity-history/VisibilityControl.tsx b/frontend/src/js/entity-history/VisibilityControl.tsx index 5080515c68..afe72228ab 100644 --- a/frontend/src/js/entity-history/VisibilityControl.tsx +++ b/frontend/src/js/entity-history/VisibilityControl.tsx @@ -3,7 +3,7 @@ import { memo } from "react"; import { useTranslation } from "react-i18next"; import IconButton from "../button/IconButton"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; const VisibilityControl = ({ blurred, diff --git a/frontend/src/js/entity-history/timeline-search/SearchControl.tsx b/frontend/src/js/entity-history/timeline-search/SearchControl.tsx index e25cbe84dc..e02c696f22 100644 --- a/frontend/src/js/entity-history/timeline-search/SearchControl.tsx +++ b/frontend/src/js/entity-history/timeline-search/SearchControl.tsx @@ -2,7 +2,7 @@ import { faSearch } from "@fortawesome/free-solid-svg-icons"; import { memo } from "react"; import { useTranslation } from "react-i18next"; import IconButton from "../../button/IconButton"; -import WithTooltip from "../../tooltip/WithTooltip"; +import WithTooltip from "../../ui-components/WithTooltip"; import { useTimelineSearch } from "./timelineSearchState"; const SearchControl = () => { diff --git a/frontend/src/js/entity-history/timeline/EventCard.tsx b/frontend/src/js/entity-history/timeline/EventCard.tsx index c467a2bdd8..5e0cdbd690 100644 --- a/frontend/src/js/entity-history/timeline/EventCard.tsx +++ b/frontend/src/js/entity-history/timeline/EventCard.tsx @@ -14,7 +14,7 @@ import type { import { Highlighter } from "../../common/components/Highlighter"; import { exists } from "../../common/helpers/exists"; import FaIcon from "../../icon/FaIcon"; -import WithTooltip from "../../tooltip/WithTooltip"; +import WithTooltip from "../../ui-components/WithTooltip"; import type { ContentFilterValue } from "../ContentControl"; import { RowDates } from "../RowDates"; import type { DateRow, EntityEvent } from "../reducer"; diff --git a/frontend/src/js/entity-history/timeline/YearHead.tsx b/frontend/src/js/entity-history/timeline/YearHead.tsx index 2e940cabef..5349b5ce79 100644 --- a/frontend/src/js/entity-history/timeline/YearHead.tsx +++ b/frontend/src/js/entity-history/timeline/YearHead.tsx @@ -10,7 +10,7 @@ import type { import { exists } from "../../common/helpers/exists"; import { getConceptById } from "../../concept-trees/globalTreeStoreHelper"; import FaIcon from "../../icon/FaIcon"; -import WithTooltip from "../../tooltip/WithTooltip"; +import WithTooltip from "../../ui-components/WithTooltip"; import { ConceptBubble } from "../ConceptBubble"; import { SmallHeading } from "./SmallHeading"; diff --git a/frontend/src/js/external-forms/FormsNavigation.tsx b/frontend/src/js/external-forms/FormsNavigation.tsx index 9cff9eee6a..8cce7f47cd 100644 --- a/frontend/src/js/external-forms/FormsNavigation.tsx +++ b/frontend/src/js/external-forms/FormsNavigation.tsx @@ -6,9 +6,9 @@ import { tv } from "tailwind-variants"; import type { StateT } from "../app/reducers"; import IconButton from "../button/IconButton"; import { useActiveLang } from "../localization/useActiveLang"; -import { ConfirmableTooltip } from "../tooltip/ConfirmableTooltip"; -import WithTooltip from "../tooltip/WithTooltip"; +import { ConfirmableTooltip } from "../ui-components/ConfirmableTooltip"; import InputSelect from "../ui-components/InputSelect/InputSelect"; +import WithTooltip from "../ui-components/WithTooltip"; import { setExternalForm } from "./actions"; import type { Form } from "./config-types"; diff --git a/frontend/src/js/external-forms/form-components/DropzoneList.tsx b/frontend/src/js/external-forms/form-components/DropzoneList.tsx index 1d00289b9c..61a63c797c 100644 --- a/frontend/src/js/external-forms/form-components/DropzoneList.tsx +++ b/frontend/src/js/external-forms/form-components/DropzoneList.tsx @@ -4,7 +4,6 @@ import type { DropTargetMonitor } from "react-dnd"; import { tv } from "tailwind-variants"; import IconButton from "../../button/IconButton"; -import InfoTooltip from "../../tooltip/InfoTooltip"; import type { ChildArgs, PossibleDroppableObject, @@ -12,6 +11,7 @@ import type { import DropzoneWithFileInput, { type DragItemFile, } from "../../ui-components/DropzoneWithFileInput"; +import InfoTooltip from "../../ui-components/InfoTooltip"; import Label from "../../ui-components/Label"; import DropzoneBetweenElements from "./DropzoneBetweenElements"; diff --git a/frontend/src/js/external-forms/form-concept-group/FormConceptNode.tsx b/frontend/src/js/external-forms/form-concept-group/FormConceptNode.tsx index 8baf02e72b..933021fe71 100644 --- a/frontend/src/js/external-forms/form-concept-group/FormConceptNode.tsx +++ b/frontend/src/js/external-forms/form-concept-group/FormConceptNode.tsx @@ -13,7 +13,7 @@ import { canNodeBeDropped } from "../../model/node"; import { HoverNavigatable } from "../../small-tab-navigation/HoverNavigatable"; import { getRootNodeLabel } from "../../standard-query-editor/helper"; import type { DragItemConceptTreeNode } from "../../standard-query-editor/types"; -import WithTooltip from "../../tooltip/WithTooltip"; +import WithTooltip from "../../ui-components/WithTooltip"; const node = tv({ base: [ diff --git a/frontend/src/js/external-forms/form-query-dropzone/FormQueryDropzone.tsx b/frontend/src/js/external-forms/form-query-dropzone/FormQueryDropzone.tsx index 37d1a8b463..0b6d50d2b9 100644 --- a/frontend/src/js/external-forms/form-query-dropzone/FormQueryDropzone.tsx +++ b/frontend/src/js/external-forms/form-query-dropzone/FormQueryDropzone.tsx @@ -3,8 +3,8 @@ import { useCallback, useRef } from "react"; import { DNDType } from "../../common/constants/dndTypes"; import { exists } from "../../common/helpers/exists"; import type { DragItemQuery } from "../../standard-query-editor/types"; -import InfoTooltip from "../../tooltip/InfoTooltip"; import Dropzone from "../../ui-components/Dropzone"; +import InfoTooltip from "../../ui-components/InfoTooltip"; import Label from "../../ui-components/Label"; import ValidatedFormQueryResult from "./ValidatedFormQueryResult"; diff --git a/frontend/src/js/external-forms/form/fields/DateField.tsx b/frontend/src/js/external-forms/form/fields/DateField.tsx index 3a5cf30c6f..7a66524606 100644 --- a/frontend/src/js/external-forms/form/fields/DateField.tsx +++ b/frontend/src/js/external-forms/form/fields/DateField.tsx @@ -9,7 +9,7 @@ import { } from "../../../common/helpers/dateHelper"; import { exists } from "../../../common/helpers/exists"; import FaIcon from "../../../icon/FaIcon"; -import InfoTooltip from "../../../tooltip/InfoTooltip"; +import InfoTooltip from "../../../ui-components/InfoTooltip"; import InputDate from "../../../ui-components/InputDate/InputDate"; import Label from "../../../ui-components/Label"; import type { DateField as DateFieldT } from "../../config-types"; diff --git a/frontend/src/js/external-forms/form/fields/DisclosureListField.tsx b/frontend/src/js/external-forms/form/fields/DisclosureListField.tsx index 5d3e4f19a1..357da74033 100644 --- a/frontend/src/js/external-forms/form/fields/DisclosureListField.tsx +++ b/frontend/src/js/external-forms/form/fields/DisclosureListField.tsx @@ -13,7 +13,7 @@ import { TransparentButton } from "../../../button/TransparentButton"; import { exists } from "../../../common/helpers/exists"; import { usePrevious } from "../../../common/helpers/usePrevious"; import FaIcon from "../../../icon/FaIcon"; -import InfoTooltip from "../../../tooltip/InfoTooltip"; +import InfoTooltip from "../../../ui-components/InfoTooltip"; import type { DisclosureListField as DisclosureListFieldT } from "../../config-types"; import { getFieldKey, diff --git a/frontend/src/js/header/HelpMenu.tsx b/frontend/src/js/header/HelpMenu.tsx index 7ba8564625..c564662c86 100644 --- a/frontend/src/js/header/HelpMenu.tsx +++ b/frontend/src/js/header/HelpMenu.tsx @@ -10,7 +10,7 @@ import { tv } from "tailwind-variants"; import { useAbout } from "../app/About"; import IconButton from "../button/IconButton"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; const list = tv({ base: ["flex flex-col", "gap-[2px]", "p-2"] }); diff --git a/frontend/src/js/header/LogoutButton.tsx b/frontend/src/js/header/LogoutButton.tsx index 0c93a27dc8..b12559cfe1 100644 --- a/frontend/src/js/header/LogoutButton.tsx +++ b/frontend/src/js/header/LogoutButton.tsx @@ -7,7 +7,7 @@ import { deleteStoredAuthToken } from "../authorization/helper"; import IconButton from "../button/IconButton"; import { clearIndexedDBCache } from "../common/helpers/indexedDBCache"; import { isIDPEnabled } from "../environment"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; const LogoutButton = ({ className }: { className?: string }) => { const { t } = useTranslation(); diff --git a/frontend/src/js/tooltip/AdditionalInfoHoverable.tsx b/frontend/src/js/info-pane/AdditionalInfoHoverable.tsx similarity index 100% rename from frontend/src/js/tooltip/AdditionalInfoHoverable.tsx rename to frontend/src/js/info-pane/AdditionalInfoHoverable.tsx diff --git a/frontend/src/js/tooltip/Tooltip.tsx b/frontend/src/js/info-pane/InfoPane.tsx similarity index 90% rename from frontend/src/js/tooltip/Tooltip.tsx rename to frontend/src/js/info-pane/InfoPane.tsx index 6f39bfe091..0c3574493f 100644 --- a/frontend/src/js/tooltip/Tooltip.tsx +++ b/frontend/src/js/info-pane/InfoPane.tsx @@ -13,11 +13,11 @@ import type { StateT } from "../app/reducers"; import IconButton from "../button/IconButton"; import { Highlighter } from "../common/components/Highlighter"; import FaIcon from "../icon/FaIcon"; -import ActivateTooltip from "./ActivateTooltip"; import { toggleAdditionalInfos as toggleInfos } from "./actions"; +import InfoPaneCollapsed from "./InfoPaneCollapsed"; +import { InfoPaneHeader } from "./InfoPaneHeader"; +import MatchingStats from "./MatchingStats"; import type { AdditionalInfosType } from "./reducer"; -import TooltipEntries from "./TooltipEntries"; -import { TooltipHeader } from "./TooltipHeader"; const root = tv({ base: [ @@ -82,7 +82,7 @@ const infoHeadline = tv({ base: ["m-0", "text-xs", "font-bold", "leading-[1.3]"], }); -const tooltipEntries = tv({ +const matchingStats = tv({ base: ["grid grid-cols-[auto_1fr]", "gap-3", "items-center"], }); @@ -118,7 +118,7 @@ const ConceptLabel = ({ {label ? ( ) : ( - t("tooltip.placeholder") + t("infoPane.placeholder") )} {tackIcon} @@ -131,7 +131,7 @@ const mark = (text: string, regex: RegExp | null): string => { return text.replace(regex, "==$&=="); }; -const Tooltip = () => { +const InfoPane = () => { const wordsRaw = useSelector( (state) => state.conceptTrees.search.words, ); @@ -148,13 +148,11 @@ const Tooltip = () => { rootLabel, rootIcon, } = useSelector( - (state) => state.tooltip.additionalInfos, - ); - const displayTooltip = useSelector( - (state) => state.tooltip.displayTooltip, + (state) => state.infoPane.additionalInfos, ); + const isOpen = useSelector((state) => state.infoPane.isOpen); const toggleAdditionalInfos = useSelector( - (state) => state.tooltip.toggleAdditionalInfos, + (state) => state.infoPane.toggleAdditionalInfos, ); const highlightRegex = useMemo(() => { @@ -166,7 +164,7 @@ const Tooltip = () => { const dispatch = useDispatch(); const onToggleAdditionalInfos = () => dispatch(toggleInfos()); - if (!displayTooltip) return ; + if (!isOpen) return ; const mainLabel = rootLabel || label; const mainIcon = rootIcon || icon; @@ -175,10 +173,10 @@ const Tooltip = () => { return (
- +
- { ); }; -export default Tooltip; +export default InfoPane; diff --git a/frontend/src/js/tooltip/ActivateTooltip.tsx b/frontend/src/js/info-pane/InfoPaneCollapsed.tsx similarity index 72% rename from frontend/src/js/tooltip/ActivateTooltip.tsx rename to frontend/src/js/info-pane/InfoPaneCollapsed.tsx index 2aa67a41ca..801921b4c1 100644 --- a/frontend/src/js/tooltip/ActivateTooltip.tsx +++ b/frontend/src/js/info-pane/InfoPaneCollapsed.tsx @@ -4,7 +4,7 @@ import { tv } from "tailwind-variants"; import IconButton from "../button/IconButton"; -import { toggleDisplayTooltip } from "./actions"; +import { toggleInfoPane } from "./actions"; const button = tv({ base: [ @@ -16,9 +16,9 @@ const button = tv({ ], }); -const ActivateTooltip = () => { +const InfoPaneCollapsed = () => { const dispatch = useDispatch(); - const onToggleTooltip = () => dispatch(toggleDisplayTooltip()); + const onToggleInfoPane = () => dispatch(toggleInfoPane()); return (
@@ -26,10 +26,10 @@ const ActivateTooltip = () => { className={button()} bgHover icon={faAngleRight} - onClick={onToggleTooltip} + onClick={onToggleInfoPane} />
); }; -export default ActivateTooltip; +export default InfoPaneCollapsed; diff --git a/frontend/src/js/tooltip/TooltipHeader.tsx b/frontend/src/js/info-pane/InfoPaneHeader.tsx similarity index 75% rename from frontend/src/js/tooltip/TooltipHeader.tsx rename to frontend/src/js/info-pane/InfoPaneHeader.tsx index 119ca57ce7..c52042b1d5 100644 --- a/frontend/src/js/tooltip/TooltipHeader.tsx +++ b/frontend/src/js/info-pane/InfoPaneHeader.tsx @@ -4,7 +4,7 @@ import { useTranslation } from "react-i18next"; import { useDispatch } from "react-redux"; import { tv } from "tailwind-variants"; import IconButton from "../button/IconButton"; -import { toggleDisplayTooltip } from "./actions"; +import { toggleInfoPane } from "./actions"; const header = tv({ base: [ @@ -26,21 +26,21 @@ const toggleButton = tv({ base: ["absolute top-[40px] right-0", "h-[39px]", "rounded-none"], }); -export const TooltipHeader = memo(() => { +export const InfoPaneHeader = memo(() => { const { t } = useTranslation(); const dispatch = useDispatch(); - const onToggleDisplayTooltip = () => dispatch(toggleDisplayTooltip()); + const onToggleInfoPane = () => dispatch(toggleInfoPane()); return ( <> -

{t("tooltip.headline")}

+

{t("infoPane.headline")}

); }); diff --git a/frontend/src/js/tooltip/TooltipEntries.tsx b/frontend/src/js/info-pane/MatchingStats.tsx similarity index 93% rename from frontend/src/js/tooltip/TooltipEntries.tsx rename to frontend/src/js/info-pane/MatchingStats.tsx index d199de38fe..23be514bfb 100644 --- a/frontend/src/js/tooltip/TooltipEntries.tsx +++ b/frontend/src/js/info-pane/MatchingStats.tsx @@ -64,7 +64,7 @@ interface Props extends HTMLAttributes { idLabel?: string; } -const TooltipEntries = (props: Props) => { +const MatchingStats = (props: Props) => { const { t } = useTranslation(); const { matchingEntries, matchingEntities, dateRange, idLabel, ...rest } = props; @@ -117,7 +117,7 @@ const TooltipEntries = (props: Props) => {

{t( - "tooltip.entriesFound", + "common.entriesFound", { count: matchingEntries || 2 }, // For pluralization )}

@@ -137,7 +137,7 @@ const TooltipEntries = (props: Props) => {

{t( - "tooltip.entitiesFound", + "common.entitiesFound", { count: matchingEntities || 2 }, // For pluralization )}

@@ -146,15 +146,15 @@ const TooltipEntries = (props: Props) => {

{fromDate} - {`${t("tooltip.date.from")}`} + {`${t("infoPane.date.from")}`}

{toDate} - {`${t("tooltip.date.to")}`} + {`${t("infoPane.date.to")}`}

); }; -export default TooltipEntries; +export default MatchingStats; diff --git a/frontend/src/js/tooltip/actions.ts b/frontend/src/js/info-pane/actions.ts similarity index 59% rename from frontend/src/js/tooltip/actions.ts rename to frontend/src/js/info-pane/actions.ts index aae487361c..de8ea60c41 100644 --- a/frontend/src/js/tooltip/actions.ts +++ b/frontend/src/js/info-pane/actions.ts @@ -2,19 +2,17 @@ import { type ActionType, createAction } from "typesafe-actions"; import type { AdditionalInfosType } from "./reducer"; -export type TooltipActions = ActionType< +export type InfoPaneActions = ActionType< | typeof displayAdditionalInfos | typeof toggleAdditionalInfos - | typeof toggleDisplayTooltip + | typeof toggleInfoPane >; export const displayAdditionalInfos = createAction( - "tooltip/DISPLAY_ADDITIONAL_INFOS", + "infoPane/DISPLAY_ADDITIONAL_INFOS", )<{ additionalInfos: AdditionalInfosType }>(); export const toggleAdditionalInfos = createAction( - "tooltip/TOGGLE_ADDITIONAL_INFOS", -)(); -export const toggleDisplayTooltip = createAction( - "tooltip/TOGGLE_DISPLAY_TOOLTIP", + "infoPane/TOGGLE_ADDITIONAL_INFOS", )(); +export const toggleInfoPane = createAction("infoPane/TOGGLE")(); diff --git a/frontend/src/js/tooltip/reducer.ts b/frontend/src/js/info-pane/reducer.ts similarity index 81% rename from frontend/src/js/tooltip/reducer.ts rename to frontend/src/js/info-pane/reducer.ts index 985a1141fd..811b668b7c 100644 --- a/frontend/src/js/tooltip/reducer.ts +++ b/frontend/src/js/info-pane/reducer.ts @@ -7,7 +7,7 @@ import type { Action } from "../app/actions"; import { displayAdditionalInfos, toggleAdditionalInfos, - toggleDisplayTooltip, + toggleInfoPane, } from "./actions"; type InfoType = { @@ -28,8 +28,8 @@ export type AdditionalInfosType = { rootLabel?: string; }; -export type TooltipStateT = { - displayTooltip: boolean; +export type InfoPaneStateT = { + isOpen: boolean; toggleAdditionalInfos: boolean; additionalInfos: AdditionalInfosType; }; @@ -39,14 +39,14 @@ const additionalInfosInitialState: AdditionalInfosType = { matchingEntities: null, }; -const initialState: TooltipStateT = { - displayTooltip: true, +const initialState: InfoPaneStateT = { + isOpen: true, toggleAdditionalInfos: false, additionalInfos: additionalInfosInitialState, }; const setAdditionalInfos = ( - state: TooltipStateT, + state: InfoPaneStateT, { additionalInfos }: ActionType["payload"], ) => { if (state.toggleAdditionalInfos) @@ -60,10 +60,10 @@ const setAdditionalInfos = ( }; }; -const tooltip = ( - state: TooltipStateT = initialState, +const infoPane = ( + state: InfoPaneStateT = initialState, action: Action, -): TooltipStateT => { +): InfoPaneStateT => { switch (action.type) { case getType(displayAdditionalInfos): return setAdditionalInfos(state, action.payload); @@ -72,14 +72,14 @@ const tooltip = ( ...state, toggleAdditionalInfos: !state.toggleAdditionalInfos, }; - case getType(toggleDisplayTooltip): + case getType(toggleInfoPane): return { ...state, - displayTooltip: !state.displayTooltip, + isOpen: !state.isOpen, }; default: return state; } }; -export default tooltip; +export default infoPane; diff --git a/frontend/src/js/modal/Modal.tsx b/frontend/src/js/modal/Modal.tsx index d0bbe6b6b9..0cbffcbb1f 100644 --- a/frontend/src/js/modal/Modal.tsx +++ b/frontend/src/js/modal/Modal.tsx @@ -6,7 +6,7 @@ import { tv } from "tailwind-variants"; import { TransparentButton } from "../button/TransparentButton"; import { useClickOutside } from "../common/helpers/useClickOutside"; import { Heading3 } from "../headings/Headings"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; const root = tv({ base: [ diff --git a/frontend/src/js/pane/TabNavigation.tsx b/frontend/src/js/pane/TabNavigation.tsx index 6854345a22..b4c041adda 100644 --- a/frontend/src/js/pane/TabNavigation.tsx +++ b/frontend/src/js/pane/TabNavigation.tsx @@ -2,7 +2,7 @@ import { faSpinner } from "@fortawesome/free-solid-svg-icons"; import { tv } from "tailwind-variants"; import FaIcon from "../icon/FaIcon"; import { HoverNavigatable } from "../small-tab-navigation/HoverNavigatable"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; const root = tv({ base: ["flex items-start", "border-b border-gray-100", "bg-white", "px-5"], diff --git a/frontend/src/js/preview/HeadlineStats.tsx b/frontend/src/js/preview/HeadlineStats.tsx index 326485ab04..2f96cdbdbd 100644 --- a/frontend/src/js/preview/HeadlineStats.tsx +++ b/frontend/src/js/preview/HeadlineStats.tsx @@ -1,11 +1,11 @@ import { tv } from "tailwind-variants"; import type { PreviewStatisticsResponse } from "../api/types"; -import TooltipEntries from "../tooltip/TooltipEntries"; +import MatchingStats from "../info-pane/MatchingStats"; // the old styles also declared `align-self: right` — an invalid value, never applied const root = tv({ base: ["ml-auto", "p-[10px]"] }); -const tooltipEntries = tv({ +const matchingStats = tv({ base: ["flex flex-row", "gap-3", "m-auto"], }); @@ -20,8 +20,8 @@ export default function HeadlineStats({ }: HeadlineStatsProps) { return (
- dispatch(closePreview()); const statistics = preview.statisticsData; const idLabel = useMemo(() => { - const primaryIdLabel = t("tooltip.entitiesFound", { count: 2 }); + const primaryIdLabel = t("common.entitiesFound", { count: 2 }); if (preview.queryData?.secondaryId) { const secondaryIdLabel = loadedSecondaryIds.find( (x) => x.id === preview.queryData?.secondaryId, diff --git a/frontend/src/js/previous-queries/list/DeleteProjectItemButton.tsx b/frontend/src/js/previous-queries/list/DeleteProjectItemButton.tsx index 566290c692..e424e03163 100644 --- a/frontend/src/js/previous-queries/list/DeleteProjectItemButton.tsx +++ b/frontend/src/js/previous-queries/list/DeleteProjectItemButton.tsx @@ -3,8 +3,8 @@ import { useCallback, useMemo } from "react"; import { useTranslation } from "react-i18next"; import IconButton from "../../button/IconButton"; -import { ConfirmableTooltip } from "../../tooltip/ConfirmableTooltip"; -import WithTooltip from "../../tooltip/WithTooltip"; +import { ConfirmableTooltip } from "../../ui-components/ConfirmableTooltip"; +import WithTooltip from "../../ui-components/WithTooltip"; import { useRemoveFormConfig, useRemoveQuery } from "./actions"; import { isFormConfig } from "./helpers"; import type { ProjectItemT } from "./ProjectItem"; diff --git a/frontend/src/js/previous-queries/list/Folders.tsx b/frontend/src/js/previous-queries/list/Folders.tsx index 3f14f4a5a0..c426bf3d0b 100644 --- a/frontend/src/js/previous-queries/list/Folders.tsx +++ b/frontend/src/js/previous-queries/list/Folders.tsx @@ -10,8 +10,8 @@ import { DNDType } from "../../common/constants/dndTypes"; import { useResizeObserver } from "../../common/helpers/useResizeObserver"; import type { DragItemFormConfig } from "../../external-forms/types"; import type { DragItemQuery } from "../../standard-query-editor/types"; -import WithTooltip from "../../tooltip/WithTooltip"; import Dropzone from "../../ui-components/Dropzone"; +import WithTooltip from "../../ui-components/WithTooltip"; import { removeFolderFromFilter, setFolderFilter, diff --git a/frontend/src/js/previous-queries/list/FoldersToggleButton.tsx b/frontend/src/js/previous-queries/list/FoldersToggleButton.tsx index f466885cd0..e62b733cea 100644 --- a/frontend/src/js/previous-queries/list/FoldersToggleButton.tsx +++ b/frontend/src/js/previous-queries/list/FoldersToggleButton.tsx @@ -2,7 +2,7 @@ import { faFolder } from "@fortawesome/free-solid-svg-icons"; import { useTranslation } from "react-i18next"; import IconButton from "../../button/IconButton"; -import WithTooltip from "../../tooltip/WithTooltip"; +import WithTooltip from "../../ui-components/WithTooltip"; const FoldersToggleButton = ({ className, diff --git a/frontend/src/js/previous-queries/list/ProjectItem.tsx b/frontend/src/js/previous-queries/list/ProjectItem.tsx index ed9f941b51..2fe603c753 100644 --- a/frontend/src/js/previous-queries/list/ProjectItem.tsx +++ b/frontend/src/js/previous-queries/list/ProjectItem.tsx @@ -25,7 +25,7 @@ import { useFormLabelByType } from "../../external-forms/stateSelectors"; import FaIcon from "../../icon/FaIcon"; import FormSymbol from "../../symbols/FormSymbol"; import QuerySymbol from "../../symbols/QuerySymbol"; -import WithTooltip from "../../tooltip/WithTooltip"; +import WithTooltip from "../../ui-components/WithTooltip"; import { useUpdateFormConfig, useUpdateQuery } from "./actions"; import { DeleteProjectItemButton } from "./DeleteProjectItemButton"; import { isFormConfig } from "./helpers"; diff --git a/frontend/src/js/previous-queries/list/ShareProjectItemModal.tsx b/frontend/src/js/previous-queries/list/ShareProjectItemModal.tsx index 20ee3d4870..71d7762e4a 100644 --- a/frontend/src/js/previous-queries/list/ShareProjectItemModal.tsx +++ b/frontend/src/js/previous-queries/list/ShareProjectItemModal.tsx @@ -7,8 +7,8 @@ import type { SelectOptionT, UserGroupT } from "../../api/types"; import type { StateT } from "../../app/reducers"; import IconButton from "../../button/IconButton"; import Modal from "../../modal/Modal"; -import WithTooltip from "../../tooltip/WithTooltip"; import InputMultiSelect from "../../ui-components/InputMultiSelect/InputMultiSelect"; +import WithTooltip from "../../ui-components/WithTooltip"; import { useLoadFormConfig, useLoadQuery, diff --git a/frontend/src/js/previous-queries/upload/CSVColumnPicker.tsx b/frontend/src/js/previous-queries/upload/CSVColumnPicker.tsx index a55315d922..a8990fa32d 100644 --- a/frontend/src/js/previous-queries/upload/CSVColumnPicker.tsx +++ b/frontend/src/js/previous-queries/upload/CSVColumnPicker.tsx @@ -20,8 +20,8 @@ import { parseCSV, toCSV } from "../../file/csv"; import FaIcon from "../../icon/FaIcon"; import { useActiveLang } from "../../localization/useActiveLang"; import ScrollableList from "../../scrollable-list/ScrollableList"; -import WithTooltip from "../../tooltip/WithTooltip"; import InputSelect from "../../ui-components/InputSelect/InputSelect"; +import WithTooltip from "../../ui-components/WithTooltip"; const td = tv({ base: "min-w-[150px] overflow-hidden text-ellipsis whitespace-nowrap text-xs", diff --git a/frontend/src/js/previous-queries/upload/UploadQueryResults.tsx b/frontend/src/js/previous-queries/upload/UploadQueryResults.tsx index c76577ac23..36bf3bfa5a 100644 --- a/frontend/src/js/previous-queries/upload/UploadQueryResults.tsx +++ b/frontend/src/js/previous-queries/upload/UploadQueryResults.tsx @@ -12,7 +12,7 @@ import type { import type { StateT } from "../../app/reducers"; import IconButton from "../../button/IconButton"; import { setMessage } from "../../snack-message/actions"; -import WithTooltip from "../../tooltip/WithTooltip"; +import WithTooltip from "../../ui-components/WithTooltip"; import { useLoadQueries } from "../list/actions"; import type { QueryToUploadT } from "./CSVColumnPicker"; diff --git a/frontend/src/js/previous-queries/upload/UploadQueryResultsModal.tsx b/frontend/src/js/previous-queries/upload/UploadQueryResultsModal.tsx index cc9ddbab9f..01c990e314 100644 --- a/frontend/src/js/previous-queries/upload/UploadQueryResultsModal.tsx +++ b/frontend/src/js/previous-queries/upload/UploadQueryResultsModal.tsx @@ -6,8 +6,8 @@ import { tv } from "tailwind-variants"; import type { QueryUploadConfigT, UploadQueryResponseT } from "../../api/types"; import FaIcon from "../../icon/FaIcon"; import Modal from "../../modal/Modal"; -import InfoTooltip from "../../tooltip/InfoTooltip"; import DropzoneWithFileInput from "../../ui-components/DropzoneWithFileInput"; +import InfoTooltip from "../../ui-components/InfoTooltip"; import CSVColumnPicker, { type QueryToUploadT } from "./CSVColumnPicker"; diff --git a/frontend/src/js/query-node-editor/ConceptEntry.tsx b/frontend/src/js/query-node-editor/ConceptEntry.tsx index a8f08195d2..98415555cb 100644 --- a/frontend/src/js/query-node-editor/ConceptEntry.tsx +++ b/frontend/src/js/query-node-editor/ConceptEntry.tsx @@ -5,7 +5,7 @@ import { tv } from "tailwind-variants"; import type { ConceptIdT, ConceptT } from "../api/types"; import IconButton from "../button/IconButton"; import { getConceptById } from "../concept-trees/globalTreeStoreHelper"; -import AdditionalInfoHoverable from "../tooltip/AdditionalInfoHoverable"; +import AdditionalInfoHoverable from "../info-pane/AdditionalInfoHoverable"; const concept = tv({ base: [ diff --git a/frontend/src/js/query-node-editor/MenuColumnItem.tsx b/frontend/src/js/query-node-editor/MenuColumnItem.tsx index 2cf35cc0b8..2aedbe3588 100644 --- a/frontend/src/js/query-node-editor/MenuColumnItem.tsx +++ b/frontend/src/js/query-node-editor/MenuColumnItem.tsx @@ -7,7 +7,7 @@ import IconButton from "../button/IconButton"; import type { NodeResetConfig } from "../model/node"; import { tableHasFilterValues, tableIsDisabled } from "../model/table"; import type { TableWithFilterValueT } from "../standard-query-editor/types"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; const container = tv({ base: [ diff --git a/frontend/src/js/query-node-editor/ResetAllSettingsButton.tsx b/frontend/src/js/query-node-editor/ResetAllSettingsButton.tsx index 9b32a7424f..4aae4f46bb 100644 --- a/frontend/src/js/query-node-editor/ResetAllSettingsButton.tsx +++ b/frontend/src/js/query-node-editor/ResetAllSettingsButton.tsx @@ -3,8 +3,8 @@ import { useMemo } from "react"; import { useTranslation } from "react-i18next"; import IconButton from "../button/IconButton"; -import { ConfirmableTooltip } from "../tooltip/ConfirmableTooltip"; -import WithTooltip from "../tooltip/WithTooltip"; +import { ConfirmableTooltip } from "../ui-components/ConfirmableTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; const ResetAllSettingsButton = ({ compact, diff --git a/frontend/src/js/query-node-editor/ResetAndClose.tsx b/frontend/src/js/query-node-editor/ResetAndClose.tsx index e6207b7f90..0f88b276a7 100644 --- a/frontend/src/js/query-node-editor/ResetAndClose.tsx +++ b/frontend/src/js/query-node-editor/ResetAndClose.tsx @@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next"; import { TransparentButton } from "../button/TransparentButton"; import type { NodeResetConfig } from "../model/node"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import ResetAllSettingsButton from "./ResetAllSettingsButton"; diff --git a/frontend/src/js/query-runner/DownloadResultsDropdownButton.tsx b/frontend/src/js/query-runner/DownloadResultsDropdownButton.tsx index 8632bf7e03..b1ccd56264 100644 --- a/frontend/src/js/query-runner/DownloadResultsDropdownButton.tsx +++ b/frontend/src/js/query-runner/DownloadResultsDropdownButton.tsx @@ -5,7 +5,7 @@ import { tv } from "tailwind-variants"; import type { ResultUrlWithLabel } from "../api/types"; import DownloadButton from "../button/DownloadButton"; import IconButton from "../button/IconButton"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import { getUserSettings, storeUserSettings } from "../user/userSettings"; const frame = tv({ diff --git a/frontend/src/js/query-runner/QueryRunner.tsx b/frontend/src/js/query-runner/QueryRunner.tsx index 2fbbdeeace..cee91464ff 100644 --- a/frontend/src/js/query-runner/QueryRunner.tsx +++ b/frontend/src/js/query-runner/QueryRunner.tsx @@ -2,7 +2,7 @@ import { useHotkeys } from "react-hotkeys-hook"; import { tv } from "tailwind-variants"; import { exists } from "../common/helpers/exists"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import QueryResults from "./QueryResults"; import QueryRunnerButton from "./QueryRunnerButton"; diff --git a/frontend/src/js/small-tab-navigation/SmallTabNavigation.tsx b/frontend/src/js/small-tab-navigation/SmallTabNavigation.tsx index 3169942e0e..b61f3bda95 100644 --- a/frontend/src/js/small-tab-navigation/SmallTabNavigation.tsx +++ b/frontend/src/js/small-tab-navigation/SmallTabNavigation.tsx @@ -1,6 +1,6 @@ import type { ReactNode } from "react"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import SmallTabNavigationButton from "./SmallTabNavigationButton"; diff --git a/frontend/src/js/standard-query-editor/QueryAndDropzone.tsx b/frontend/src/js/standard-query-editor/QueryAndDropzone.tsx index dbcdf1e2e9..06d6fd6aa5 100644 --- a/frontend/src/js/standard-query-editor/QueryAndDropzone.tsx +++ b/frontend/src/js/standard-query-editor/QueryAndDropzone.tsx @@ -2,7 +2,7 @@ import { memo } from "react"; import { useTranslation } from "react-i18next"; import type { PreviousQueryT } from "../previous-queries/list/reducer"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import QueryEditorDropzone from "./QueryEditorDropzone"; import type { DragItemConceptTreeNode, DragItemQuery } from "./types"; diff --git a/frontend/src/js/standard-query-editor/QueryClearButton.tsx b/frontend/src/js/standard-query-editor/QueryClearButton.tsx index 18cbdca531..34860aab73 100644 --- a/frontend/src/js/standard-query-editor/QueryClearButton.tsx +++ b/frontend/src/js/standard-query-editor/QueryClearButton.tsx @@ -3,8 +3,8 @@ import { useTranslation } from "react-i18next"; import { useDispatch } from "react-redux"; import IconButton from "../button/IconButton"; -import { ConfirmableTooltip } from "../tooltip/ConfirmableTooltip"; -import WithTooltip from "../tooltip/WithTooltip"; +import { ConfirmableTooltip } from "../ui-components/ConfirmableTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import { clearQuery } from "./actions"; diff --git a/frontend/src/js/standard-query-editor/QueryGroup.tsx b/frontend/src/js/standard-query-editor/QueryGroup.tsx index ac7ce05386..85fee880fb 100644 --- a/frontend/src/js/standard-query-editor/QueryGroup.tsx +++ b/frontend/src/js/standard-query-editor/QueryGroup.tsx @@ -4,7 +4,7 @@ import { tv } from "tailwind-variants"; import type { DateRangeT, QueryT } from "../api/types"; import type { PreviousQueryT } from "../previous-queries/list/reducer"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; import QueryEditorDropzone from "./QueryEditorDropzone"; import QueryGroupActions from "./QueryGroupActions"; diff --git a/frontend/src/js/standard-query-editor/QueryGroupActions.tsx b/frontend/src/js/standard-query-editor/QueryGroupActions.tsx index 96b1828bdd..1d5ac8c3e4 100644 --- a/frontend/src/js/standard-query-editor/QueryGroupActions.tsx +++ b/frontend/src/js/standard-query-editor/QueryGroupActions.tsx @@ -5,7 +5,7 @@ import { useTranslation } from "react-i18next"; import { tv } from "tailwind-variants"; import IconButton from "../button/IconButton"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; // h-[18px]: to provide enough space when only the right side is rendered const actions = tv({ diff --git a/frontend/src/js/standard-query-editor/QueryNode.tsx b/frontend/src/js/standard-query-editor/QueryNode.tsx index 902f781c72..054bd61b87 100644 --- a/frontend/src/js/standard-query-editor/QueryNode.tsx +++ b/frontend/src/js/standard-query-editor/QueryNode.tsx @@ -7,6 +7,7 @@ import type { QueryT } from "../api/types"; import { getWidthAndHeight } from "../app/DndProvider"; import type { StateT } from "../app/reducers"; import { getConceptById } from "../concept-trees/globalTreeStoreHelper"; +import AdditionalInfoHoverable from "../info-pane/AdditionalInfoHoverable"; import { canNodeBeDropped, nodeIsConceptQueryNode, @@ -14,7 +15,6 @@ import { } from "../model/node"; import { isQueryExpandable } from "../model/query"; import { HoverNavigatable } from "../small-tab-navigation/HoverNavigatable"; -import AdditionalInfoHoverable from "../tooltip/AdditionalInfoHoverable"; import { getRootNodeLabel } from "./helper"; import QueryNodeActions from "./QueryNodeActions"; import QueryNodeContent from "./QueryNodeContent"; diff --git a/frontend/src/js/standard-query-editor/QueryNodeActions.tsx b/frontend/src/js/standard-query-editor/QueryNodeActions.tsx index 14e700e50a..889bbfb976 100644 --- a/frontend/src/js/standard-query-editor/QueryNodeActions.tsx +++ b/frontend/src/js/standard-query-editor/QueryNodeActions.tsx @@ -11,7 +11,7 @@ import { tv } from "tailwind-variants"; import IconButton from "../button/IconButton"; import FaIcon from "../icon/FaIcon"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; const actionButton = tv({ base: "px-[6px] py-1", diff --git a/frontend/src/js/standard-query-editor/QueryNodeContent.tsx b/frontend/src/js/standard-query-editor/QueryNodeContent.tsx index 0128cc1617..f45aa694a9 100644 --- a/frontend/src/js/standard-query-editor/QueryNodeContent.tsx +++ b/frontend/src/js/standard-query-editor/QueryNodeContent.tsx @@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next"; import { tv } from "tailwind-variants"; import ErrorMessage from "../error-message/ErrorMessage"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "../ui-components/WithTooltip"; // tv consts named *Text to not shadow the label/description props const labelText = tv({ diff --git a/frontend/src/js/standard-query-editor/SecondaryIdSelector.tsx b/frontend/src/js/standard-query-editor/SecondaryIdSelector.tsx index 1235428034..169fdaa593 100644 --- a/frontend/src/js/standard-query-editor/SecondaryIdSelector.tsx +++ b/frontend/src/js/standard-query-editor/SecondaryIdSelector.tsx @@ -9,7 +9,7 @@ import type { StateT } from "../app/reducers"; import { exists } from "../common/helpers/exists"; import FaIcon from "../icon/FaIcon"; import { nodeIsConceptQueryNode } from "../model/node"; -import InfoTooltip from "../tooltip/InfoTooltip"; +import InfoTooltip from "../ui-components/InfoTooltip"; import ToggleButton from "../ui-components/ToggleButton"; import { setSelectedSecondaryId } from "./actions"; diff --git a/frontend/src/js/ui-components/BaseInput.tsx b/frontend/src/js/ui-components/BaseInput.tsx index 26790c007e..909a64ae85 100644 --- a/frontend/src/js/ui-components/BaseInput.tsx +++ b/frontend/src/js/ui-components/BaseInput.tsx @@ -17,9 +17,8 @@ import IconButton from "../button/IconButton"; import { isEmpty } from "../common/helpers/commonHelper"; import { exists } from "../common/helpers/exists"; import FaIcon from "../icon/FaIcon"; -import WithTooltip from "../tooltip/WithTooltip"; - import CurrencyInput from "./CurrencyInput"; +import WithTooltip from "./WithTooltip"; const root = tv({ base: "relative" }); diff --git a/frontend/src/js/tooltip/ConfirmableTooltip.tsx b/frontend/src/js/ui-components/ConfirmableTooltip.tsx similarity index 100% rename from frontend/src/js/tooltip/ConfirmableTooltip.tsx rename to frontend/src/js/ui-components/ConfirmableTooltip.tsx diff --git a/frontend/src/js/ui-components/EditableTagsForm.tsx b/frontend/src/js/ui-components/EditableTagsForm.tsx index 2fcdb447d7..ad59be2cb1 100644 --- a/frontend/src/js/ui-components/EditableTagsForm.tsx +++ b/frontend/src/js/ui-components/EditableTagsForm.tsx @@ -6,9 +6,8 @@ import { tv } from "tailwind-variants"; import type { SelectOptionT } from "../api/types"; import IconButton from "../button/IconButton"; import { useClickOutside } from "../common/helpers/useClickOutside"; -import WithTooltip from "../tooltip/WithTooltip"; - import InputMultiSelect from "./InputMultiSelect/InputMultiSelect"; +import WithTooltip from "./WithTooltip"; const form = tv({ base: "flex items-start", diff --git a/frontend/src/js/ui-components/EditableText.tsx b/frontend/src/js/ui-components/EditableText.tsx index 88e02c84dc..ca4ef99232 100644 --- a/frontend/src/js/ui-components/EditableText.tsx +++ b/frontend/src/js/ui-components/EditableText.tsx @@ -4,9 +4,8 @@ import { tv } from "tailwind-variants"; import IconButton from "../button/IconButton"; import { Highlighter } from "../common/components/Highlighter"; import HighlightableLabel from "../highlightable-label/HighlightableLabel"; -import WithTooltip from "../tooltip/WithTooltip"; - import EditableTextForm from "./EditableTextForm"; +import WithTooltip from "./WithTooltip"; const editButton = tv({ base: ["px-0 py-[2px]"], diff --git a/frontend/src/js/ui-components/EditableTextForm.tsx b/frontend/src/js/ui-components/EditableTextForm.tsx index f03afe76a6..5b4098f8eb 100644 --- a/frontend/src/js/ui-components/EditableTextForm.tsx +++ b/frontend/src/js/ui-components/EditableTextForm.tsx @@ -5,7 +5,7 @@ import { tv } from "tailwind-variants"; import IconButton from "../button/IconButton"; import { useClickOutside } from "../common/helpers/useClickOutside"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "./WithTooltip"; const input = tv({ base: ["h-[28px]", "px-2", "rounded", "border border-gray-500", "text-sm"], diff --git a/frontend/src/js/tooltip/InfoTooltip.tsx b/frontend/src/js/ui-components/InfoTooltip.tsx similarity index 100% rename from frontend/src/js/tooltip/InfoTooltip.tsx rename to frontend/src/js/ui-components/InfoTooltip.tsx diff --git a/frontend/src/js/ui-components/InputCheckbox.tsx b/frontend/src/js/ui-components/InputCheckbox.tsx index 5b38da142e..021e6a7782 100644 --- a/frontend/src/js/ui-components/InputCheckbox.tsx +++ b/frontend/src/js/ui-components/InputCheckbox.tsx @@ -2,8 +2,8 @@ import { faCheck } from "@fortawesome/free-solid-svg-icons"; import { tv } from "tailwind-variants"; import { exists } from "../common/helpers/exists"; import FaIcon from "../icon/FaIcon"; -import InfoTooltip from "../tooltip/InfoTooltip"; -import WithTooltip from "../tooltip/WithTooltip"; +import InfoTooltip from "./InfoTooltip"; +import WithTooltip from "./WithTooltip"; const row = tv({ base: ["flex flex-row items-center", "cursor-pointer"], diff --git a/frontend/src/js/ui-components/InputDateRange.tsx b/frontend/src/js/ui-components/InputDateRange.tsx index ee205c6a61..e3240f53df 100644 --- a/frontend/src/js/ui-components/InputDateRange.tsx +++ b/frontend/src/js/ui-components/InputDateRange.tsx @@ -14,7 +14,7 @@ import { } from "../common/helpers/dateHelper"; import { exists } from "../common/helpers/exists"; import FaIcon from "../icon/FaIcon"; -import InfoTooltip from "../tooltip/InfoTooltip"; +import InfoTooltip from "./InfoTooltip"; import InputDate from "./InputDate/InputDate"; import Label from "./Label"; diff --git a/frontend/src/js/ui-components/InputMultiSelect/InputMultiSelect.tsx b/frontend/src/js/ui-components/InputMultiSelect/InputMultiSelect.tsx index b2a6e28abc..fc565154b9 100644 --- a/frontend/src/js/ui-components/InputMultiSelect/InputMultiSelect.tsx +++ b/frontend/src/js/ui-components/InputMultiSelect/InputMultiSelect.tsx @@ -13,8 +13,8 @@ import { exists } from "../../common/helpers/exists"; import { getFileRows } from "../../common/helpers/fileHelper"; import { useDebounce } from "../../common/helpers/useDebounce"; import FaIcon from "../../icon/FaIcon"; -import InfoTooltip from "../../tooltip/InfoTooltip"; import DropzoneWithFileInput from "../DropzoneWithFileInput"; +import InfoTooltip from "../InfoTooltip"; import { Control, DropdownToggleButton, diff --git a/frontend/src/js/ui-components/InputRangeHeader.tsx b/frontend/src/js/ui-components/InputRangeHeader.tsx index c04de9bbc9..cb64107539 100644 --- a/frontend/src/js/ui-components/InputRangeHeader.tsx +++ b/frontend/src/js/ui-components/InputRangeHeader.tsx @@ -1,6 +1,6 @@ import { IndexPrefix } from "../common/components/IndexPrefix"; import { exists } from "../common/helpers/exists"; -import InfoTooltip from "../tooltip/InfoTooltip"; +import InfoTooltip from "./InfoTooltip"; import Label from "./Label"; diff --git a/frontend/src/js/ui-components/InputSelect/InputSelect.tsx b/frontend/src/js/ui-components/InputSelect/InputSelect.tsx index b8f022beff..261abd5ec1 100644 --- a/frontend/src/js/ui-components/InputSelect/InputSelect.tsx +++ b/frontend/src/js/ui-components/InputSelect/InputSelect.tsx @@ -8,7 +8,7 @@ import type { SelectOptionT } from "../../api/types"; import { exists } from "../../common/helpers/exists"; import { useClickOutside } from "../../common/helpers/useClickOutside"; import { usePrevious } from "../../common/helpers/usePrevious"; -import InfoTooltip from "../../tooltip/InfoTooltip"; +import InfoTooltip from "../InfoTooltip"; import Labeled from "../Labeled"; import SelectEmptyPlaceholder from "../SelectEmptyPlaceholder"; diff --git a/frontend/src/js/ui-components/Labeled.tsx b/frontend/src/js/ui-components/Labeled.tsx index 9dad12f243..a0e8436f70 100644 --- a/frontend/src/js/ui-components/Labeled.tsx +++ b/frontend/src/js/ui-components/Labeled.tsx @@ -3,7 +3,7 @@ import { tv } from "tailwind-variants"; import { IndexPrefix } from "../common/components/IndexPrefix"; import { exists } from "../common/helpers/exists"; -import InfoTooltip from "../tooltip/InfoTooltip"; +import InfoTooltip from "./InfoTooltip"; import Label from "./Label"; diff --git a/frontend/src/js/ui-components/ToggleButton.tsx b/frontend/src/js/ui-components/ToggleButton.tsx index 2fe9a51f4a..259bd377ef 100644 --- a/frontend/src/js/ui-components/ToggleButton.tsx +++ b/frontend/src/js/ui-components/ToggleButton.tsx @@ -1,6 +1,6 @@ import { tv } from "tailwind-variants"; -import WithTooltip from "../tooltip/WithTooltip"; +import WithTooltip from "./WithTooltip"; const root = tv({ base: ["m-0", "flex flex-wrap items-center"] }); diff --git a/frontend/src/js/tooltip/WithTooltip.tsx b/frontend/src/js/ui-components/WithTooltip.tsx similarity index 100% rename from frontend/src/js/tooltip/WithTooltip.tsx rename to frontend/src/js/ui-components/WithTooltip.tsx diff --git a/frontend/src/localization/de.json b/frontend/src/localization/de.json index 1401122dc0..d085c27036 100644 --- a/frontend/src/localization/de.json +++ b/frontend/src/localization/de.json @@ -172,15 +172,15 @@ "openFileDialog": "Datei auswählen", "shortcut": "Kurzbefehl", "true": "Wahr", - "false": "Falsch" - }, - "tooltip": { - "headline": "Info", - "placeholder": "Weitere Informationen zu Konzepten ...", + "false": "Falsch", "entitiesFound_one": "Entität", "entitiesFound_other": "Entitäten", "entriesFound_one": "Eintrag", - "entriesFound_other": "Einträge", + "entriesFound_other": "Einträge" + }, + "infoPane": { + "headline": "Info", + "placeholder": "Weitere Informationen zu Konzepten ...", "date": { "daterange": "Zeitraum", "from": "Von", diff --git a/frontend/src/localization/en.json b/frontend/src/localization/en.json index 20a3c0bfb3..25bb13802e 100644 --- a/frontend/src/localization/en.json +++ b/frontend/src/localization/en.json @@ -172,15 +172,15 @@ "openFileDialog": "Select file", "shortcut": "Key", "true": "True", - "false": "False" - }, - "tooltip": { - "headline": "Info", - "placeholder": "More information on a concept ...", + "false": "False", "entitiesFound_one": "entity", "entitiesFound_other": "entities", "entriesFound_one": "entry", - "entriesFound_other": "entries", + "entriesFound_other": "entries" + }, + "infoPane": { + "headline": "Info", + "placeholder": "More information on a concept ...", "date": { "daterange": "Date range", "from": "From",