diff --git a/enterprise/frontend/src/embedding-sdk/components/private/InteractiveQuestion/components/Filter.tsx b/enterprise/frontend/src/embedding-sdk/components/private/InteractiveQuestion/components/Filter.tsx
index 13d7ae80edf9da9f139ad67a37532110c60306e7..2e37c604c2775cf73a4b37bb4ef05a1b15d06308 100644
--- a/enterprise/frontend/src/embedding-sdk/components/private/InteractiveQuestion/components/Filter.tsx
+++ b/enterprise/frontend/src/embedding-sdk/components/private/InteractiveQuestion/components/Filter.tsx
@@ -2,8 +2,12 @@ import cx from "classnames";
 
 import { useInteractiveQuestionContext } from "embedding-sdk/components/private/InteractiveQuestion/context";
 import CS from "metabase/css/core/index.css";
-import { FilterContent } from "metabase/querying/components/FilterContent";
-import { useFilterContent } from "metabase/querying/components/FilterModal";
+import {
+  FilterModalBody,
+  FilterModalFooter,
+  FilterModalHeader,
+  useFilterModal,
+} from "metabase/querying/filters";
 import { Box, Group, Stack } from "metabase/ui";
 import type * as Lib from "metabase-lib";
 import type Question from "metabase-lib/v1/Question";
@@ -44,7 +48,7 @@ const FilterInner = ({
     handleReset,
     handleSubmit,
     handleSearch,
-  } = useFilterContent(question.query(), onQueryChange);
+  } = useFilterModal(question.query(), onQueryChange);
 
   const onApplyFilters = () => {
     handleSubmit();
@@ -59,10 +63,10 @@ const FilterInner = ({
   return (
     <Stack w="100%" h="100%">
       <Group position="right">
-        <FilterContent.Header value={searchText} onChange={handleSearch} />
+        <FilterModalHeader value={searchText} onChange={handleSearch} />
       </Group>
       <Box h="100%" className={cx(CS.flex1, CS.overflowHidden)}>
-        <FilterContent.Body
+        <FilterModalBody
           groupItems={visibleItems}
           query={query}
           tab={tab}
@@ -74,7 +78,7 @@ const FilterInner = ({
         />
       </Box>
       <Group>
-        <FilterContent.Footer
+        <FilterModalFooter
           canRemoveFilters={canRemoveFilters}
           onClearFilters={onClearFilters}
           isChanged={isChanged}
diff --git a/frontend/src/metabase/parameters/components/widgets/TemporalUnitWidget/TemporalUnitWidget.tsx b/frontend/src/metabase/parameters/components/widgets/TemporalUnitWidget/TemporalUnitWidget.tsx
index e979d4909205c7cc1224f82e30d58799df108d7b..b48561139d806f0defa74b37a9c5fe450018e56a 100644
--- a/frontend/src/metabase/parameters/components/widgets/TemporalUnitWidget/TemporalUnitWidget.tsx
+++ b/frontend/src/metabase/parameters/components/widgets/TemporalUnitWidget/TemporalUnitWidget.tsx
@@ -1,4 +1,4 @@
-import { TemporalUnitPicker } from "metabase/querying";
+import { TemporalUnitPicker } from "metabase/querying/filters";
 import * as Lib from "metabase-lib";
 import type { Parameter, TemporalUnit } from "metabase-types/api";
 
diff --git a/frontend/src/metabase/query_builder/actions/core/utils.ts b/frontend/src/metabase/query_builder/actions/core/utils.ts
index 3337bda805d8c59a7d2e4369fd52aac4755618b8..eca48431ca6066bc59f4ede1c913cb878eba52ad 100644
--- a/frontend/src/metabase/query_builder/actions/core/utils.ts
+++ b/frontend/src/metabase/query_builder/actions/core/utils.ts
@@ -1,7 +1,7 @@
 import _ from "underscore";
 
 import { onCloseQuestionInfo } from "metabase/query_builder/actions";
-import { syncVizSettingsWithQuery } from "metabase/querying";
+import { syncVizSettingsWithQuery } from "metabase/querying/viz-settings";
 import { getPersistableDefaultSettingsForSeries } from "metabase/visualizations/lib/settings/visualization";
 import * as Lib from "metabase-lib";
 import type Question from "metabase-lib/v1/Question";
diff --git a/frontend/src/metabase/query_builder/actions/querying.js b/frontend/src/metabase/query_builder/actions/querying.js
index 8159ba8477526dc50a2ae31abb9f19ccb755b393..6c51fef1fc8cc0ee08fce128727be920f5a2ee83 100644
--- a/frontend/src/metabase/query_builder/actions/querying.js
+++ b/frontend/src/metabase/query_builder/actions/querying.js
@@ -3,7 +3,7 @@ import { t } from "ttag";
 
 import { defer } from "metabase/lib/promise";
 import { createThunkAction } from "metabase/lib/redux";
-import { syncVizSettingsWithSeries } from "metabase/querying";
+import { syncVizSettingsWithSeries } from "metabase/querying/viz-settings";
 import { getWhiteLabeledLoadingMessageFactory } from "metabase/selectors/whitelabel";
 import { runQuestionQuery as apiRunQuestionQuery } from "metabase/services";
 import { getSensibleDisplays } from "metabase/visualizations";
diff --git a/frontend/src/metabase/query_builder/components/QueryModals/QueryModals.tsx b/frontend/src/metabase/query_builder/components/QueryModals/QueryModals.tsx
index 4ffcee45c0eefb0895cd0f7d0f3aa6f06de92f83..97101f5b4ada0d5d360c1c470a8f859b0943478e 100644
--- a/frontend/src/metabase/query_builder/components/QueryModals/QueryModals.tsx
+++ b/frontend/src/metabase/query_builder/components/QueryModals/QueryModals.tsx
@@ -20,7 +20,7 @@ import { PreviewQueryModal } from "metabase/query_builder/components/view/Previe
 import type { QueryModalType } from "metabase/query_builder/constants";
 import { MODAL_TYPES } from "metabase/query_builder/constants";
 import { getQuestionWithParameters } from "metabase/query_builder/selectors";
-import { FilterModal } from "metabase/querying";
+import { FilterModal } from "metabase/querying/filters";
 import QuestionMoveToast from "metabase/questions/components/QuestionMoveToast";
 import ArchiveQuestionModal from "metabase/questions/containers/ArchiveQuestionModal";
 import EditEventModal from "metabase/timelines/questions/containers/EditEventModal";
diff --git a/frontend/src/metabase/query_builder/components/notebook/steps/FilterStep/FilterStep.tsx b/frontend/src/metabase/query_builder/components/notebook/steps/FilterStep/FilterStep.tsx
index c03c3c300edb036d48024449db35a4bc7dde1ae7..a259c9cc53edaaba0f8c4532352c5eaffbd35549 100644
--- a/frontend/src/metabase/query_builder/components/notebook/steps/FilterStep/FilterStep.tsx
+++ b/frontend/src/metabase/query_builder/components/notebook/steps/FilterStep/FilterStep.tsx
@@ -2,7 +2,7 @@ import { useMemo } from "react";
 import { t } from "ttag";
 
 import ErrorBoundary from "metabase/ErrorBoundary";
-import { FilterPicker } from "metabase/querying";
+import { FilterPicker } from "metabase/querying/filters";
 import * as Lib from "metabase-lib";
 
 import type { NotebookStepUiComponentProps } from "../../types";
diff --git a/frontend/src/metabase/query_builder/components/view/View.jsx b/frontend/src/metabase/query_builder/components/view/View.jsx
index fcf446d46473b6b9c623049f4c705faf3da47d22..c2f1fd854ba67ba782efaf8c7f68f8e3ab4f60be 100644
--- a/frontend/src/metabase/query_builder/components/view/View.jsx
+++ b/frontend/src/metabase/query_builder/components/view/View.jsx
@@ -18,7 +18,7 @@ import {
   setArchivedQuestion,
 } from "metabase/query_builder/actions";
 import { SIDEBAR_SIZES } from "metabase/query_builder/constants";
-import { TimeseriesChrome } from "metabase/querying";
+import { TimeseriesChrome } from "metabase/querying/filters";
 import { Transition } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
diff --git a/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionFiltersHeader/QuestionFiltersHeader.tsx b/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionFiltersHeader/QuestionFiltersHeader.tsx
index aa4da2a418fb0b12785207a9fb4cc99b627ef44b..01ff221a6a93e95e8cbf95a650896707917c830f 100644
--- a/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionFiltersHeader/QuestionFiltersHeader.tsx
+++ b/frontend/src/metabase/query_builder/components/view/ViewHeader/components/QuestionFiltersHeader/QuestionFiltersHeader.tsx
@@ -1,4 +1,4 @@
-import { FilterPanel, FilterPanelButton } from "metabase/querying";
+import { FilterPanel, FilterPanelButton } from "metabase/querying/filters";
 import * as Lib from "metabase-lib";
 import type Question from "metabase-lib/v1/Question";
 import type { QueryBuilderMode } from "metabase-types/store";
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterContent.tsx b/frontend/src/metabase/querying/components/FilterContent/FilterContent.tsx
deleted file mode 100644
index 6279a26ee21bf2507ba76afbf504608e0172b6f2..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/components/FilterContent/FilterContent.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import { FilterBody } from "./FilterBody";
-import { FilterFooter } from "./FilterFooter";
-import { FilterHeader } from "./FilterHeader";
-
-export const FilterContent = {
-  Header: FilterHeader,
-  Body: FilterBody,
-  Footer: FilterFooter,
-};
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabContent/index.ts b/frontend/src/metabase/querying/components/FilterContent/TabContent/index.ts
deleted file mode 100644
index 6cf08a2ade1e4dad675ac0c5724cd3af8ad1d0f8..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/components/FilterContent/TabContent/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./TabContent";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabList/index.ts b/frontend/src/metabase/querying/components/FilterContent/TabList/index.ts
deleted file mode 100644
index abb98da193a8164b10e327fc06b2409c432933f2..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/components/FilterContent/TabList/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./TabList";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanel/index.ts b/frontend/src/metabase/querying/components/FilterContent/TabPanel/index.ts
deleted file mode 100644
index bed5cc54b96af46d36ab61099c4a8c8a20049073..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/components/FilterContent/TabPanel/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./TabPanel";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/index.ts b/frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/index.ts
deleted file mode 100644
index 736e416921f6015bc699b31049c429e57cc642b6..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./TabPanelColumnItemList";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanelItem/index.ts b/frontend/src/metabase/querying/components/FilterContent/TabPanelItem/index.ts
deleted file mode 100644
index 117b2359265b19ee6e56afef6562e45144723718..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/components/FilterContent/TabPanelItem/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from "./TabPanelFilterItem";
-export * from "./TabPanelSegmentItem";
diff --git a/frontend/src/metabase/querying/components/FilterContent/index.ts b/frontend/src/metabase/querying/components/FilterContent/index.ts
deleted file mode 100644
index adde954727e911d66d20fa4ba0200720abad4307..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/components/FilterContent/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export * from "./TabContent";
-export * from "./FilterSearchInput";
-export * from "./types";
-export * from "./FilterContent";
diff --git a/frontend/src/metabase/querying/components/FilterModal/FilterModal.tsx b/frontend/src/metabase/querying/components/FilterModal/FilterModal.tsx
deleted file mode 100644
index 76f53b92473684d1ff2ef5095fb16493435a215b..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/components/FilterModal/FilterModal.tsx
+++ /dev/null
@@ -1,157 +0,0 @@
-import { useMemo, useRef, useState } from "react";
-
-import CS from "metabase/css/core/index.css";
-import { FilterContent } from "metabase/querying/components/FilterContent";
-import { Flex, Modal } from "metabase/ui";
-import * as Lib from "metabase-lib";
-
-import { ModalBody, ModalFooter, ModalHeader } from "./FilterModal.styled";
-import { SEARCH_KEY } from "./constants";
-import {
-  appendStageIfAggregated,
-  getGroupItems,
-  getModalTitle,
-  getModalWidth,
-  hasFilters,
-  isSearchActive,
-  removeFilters,
-  searchGroupItems,
-} from "./utils";
-
-export interface FilterModalProps {
-  query: Lib.Query;
-  onSubmit: (newQuery: Lib.Query) => void;
-  onClose: () => void;
-}
-
-export const useFilterContent = (
-  initialQuery: Lib.Query,
-  onSubmit: (newQuery: Lib.Query) => void,
-) => {
-  const [query, setQuery] = useState(() =>
-    appendStageIfAggregated(initialQuery),
-  );
-  const queryRef = useRef(query);
-  const [version, setVersion] = useState(1);
-  const [isChanged, setIsChanged] = useState(false);
-  const groupItems = useMemo(() => getGroupItems(query), [query]);
-  const [tab, setTab] = useState<string | null>(groupItems[0]?.key);
-  const canRemoveFilters = useMemo(() => hasFilters(query), [query]);
-  const [searchText, setSearchText] = useState("");
-  const isSearching = isSearchActive(searchText);
-
-  const visibleItems = useMemo(
-    () => (isSearching ? searchGroupItems(groupItems, searchText) : groupItems),
-    [groupItems, searchText, isSearching],
-  );
-
-  const handleInput = () => {
-    if (!isChanged) {
-      setIsChanged(true);
-    }
-  };
-
-  const handleChange = (newQuery: Lib.Query) => {
-    setQuery(newQuery);
-    setIsChanged(true);
-    // for handleSubmit to see the latest query if it is called in the same tick
-    queryRef.current = newQuery;
-  };
-
-  const handleReset = () => {
-    handleChange(removeFilters(query));
-    // to reset internal state of filter components
-    setVersion(version + 1);
-  };
-
-  const handleSubmit = () => {
-    onSubmit(Lib.dropEmptyStages(queryRef.current));
-  };
-
-  const handleSearch = (searchText: string) => {
-    setTab(isSearchActive(searchText) ? SEARCH_KEY : groupItems[0]?.key);
-    setSearchText(searchText);
-  };
-
-  return {
-    query,
-    version,
-    isChanged,
-    groupItems,
-    tab,
-    setTab,
-    canRemoveFilters,
-    searchText,
-    isSearching,
-    visibleItems,
-    handleInput,
-    handleChange,
-    handleReset,
-    handleSubmit,
-    handleSearch,
-  };
-};
-
-export function FilterModal({
-  query: initialQuery,
-  onSubmit,
-  onClose,
-}: FilterModalProps) {
-  const {
-    query,
-    version,
-    isChanged,
-    groupItems,
-    tab,
-    setTab,
-    canRemoveFilters,
-    searchText,
-    isSearching,
-    visibleItems,
-    handleInput,
-    handleChange,
-    handleReset,
-    handleSubmit,
-    handleSearch,
-  } = useFilterContent(initialQuery, onSubmit);
-
-  const onSubmitFilters = () => {
-    handleSubmit();
-    onClose();
-  };
-
-  return (
-    <Modal.Root opened size={getModalWidth(groupItems)} onClose={onClose}>
-      <Modal.Overlay />
-      <Modal.Content>
-        <ModalHeader p="lg">
-          <Modal.Title>{getModalTitle(groupItems)}</Modal.Title>
-          <Flex mx="md" justify="end" className={CS.flex1}>
-            <FilterContent.Header value={searchText} onChange={handleSearch} />
-          </Flex>
-          <Modal.CloseButton />
-        </ModalHeader>
-        <ModalBody p={0}>
-          <FilterContent.Body
-            groupItems={visibleItems}
-            query={query}
-            tab={tab}
-            version={version}
-            searching={isSearching}
-            onChange={handleChange}
-            onInput={handleInput}
-            onTabChange={setTab}
-          />
-        </ModalBody>
-        <ModalFooter p="md" direction="row" justify="space-between">
-          <FilterContent.Footer
-            canRemoveFilters={canRemoveFilters}
-            onClearFilters={handleReset}
-            isChanged={isChanged}
-            onApplyFilters={onSubmitFilters}
-          />
-        </ModalFooter>
-      </Modal.Content>
-    </Modal.Root>
-  );
-}
diff --git a/frontend/src/metabase/querying/components/FilterModal/index.ts b/frontend/src/metabase/querying/components/FilterModal/index.ts
deleted file mode 100644
index 18ec978aaa7d0091f0b35987d079d694ad759779..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/components/FilterModal/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./FilterModal";
diff --git a/frontend/src/metabase/querying/drills/index.ts b/frontend/src/metabase/querying/drills/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f6f32ba809b1f33080b65af5d66076d277dbb160
--- /dev/null
+++ b/frontend/src/metabase/querying/drills/index.ts
@@ -0,0 +1 @@
+export { queryDrill } from "./utils/query-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/automatic-insights-drill/automatic-insights-drill.tsx b/frontend/src/metabase/querying/drills/utils/automatic-insights-drill.tsx
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/automatic-insights-drill/automatic-insights-drill.tsx
rename to frontend/src/metabase/querying/drills/utils/automatic-insights-drill.tsx
diff --git a/frontend/src/metabase/querying/utils/drills/column-extract-drill/column-extract-drill.tsx b/frontend/src/metabase/querying/drills/utils/column-extract-drill.tsx
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/column-extract-drill/column-extract-drill.tsx
rename to frontend/src/metabase/querying/drills/utils/column-extract-drill.tsx
diff --git a/frontend/src/metabase/querying/utils/drills/column-filter-drill/column-filter-drill.tsx b/frontend/src/metabase/querying/drills/utils/column-filter-drill.tsx
similarity index 91%
rename from frontend/src/metabase/querying/utils/drills/column-filter-drill/column-filter-drill.tsx
rename to frontend/src/metabase/querying/drills/utils/column-filter-drill.tsx
index 484b4df7e32c138bc65bc3ea5f24fb56f4ef0a6a..27c2744a4d7e72e24167cec5f051a1a7d4763222 100644
--- a/frontend/src/metabase/querying/utils/drills/column-filter-drill/column-filter-drill.tsx
+++ b/frontend/src/metabase/querying/drills/utils/column-filter-drill.tsx
@@ -3,7 +3,7 @@ import { t } from "ttag";
 import type { Drill } from "metabase/visualizations/types/click-actions";
 import * as Lib from "metabase-lib";
 
-import { getFilterPopover } from "../filter-drill";
+import { getFilterPopover } from "./filter-drill";
 
 export const columnFilterDrill: Drill<Lib.ColumnFilterDrillThruInfo> = ({
   question,
diff --git a/frontend/src/metabase/querying/utils/drills/combine-columns-drill/combine-columns-drill.tsx b/frontend/src/metabase/querying/drills/utils/combine-columns-drill.tsx
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/combine-columns-drill/combine-columns-drill.tsx
rename to frontend/src/metabase/querying/drills/utils/combine-columns-drill.tsx
diff --git a/frontend/src/metabase/querying/utils/drills/compare-aggregations-drill/compare-aggregations-drill.tsx b/frontend/src/metabase/querying/drills/utils/compare-aggregations-drill.tsx
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/compare-aggregations-drill/compare-aggregations-drill.tsx
rename to frontend/src/metabase/querying/drills/utils/compare-aggregations-drill.tsx
diff --git a/frontend/src/metabase/querying/utils/drills/constants.ts b/frontend/src/metabase/querying/drills/utils/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/constants.ts
rename to frontend/src/metabase/querying/drills/utils/constants.ts
diff --git a/frontend/src/metabase/querying/utils/drills/distribution-drill/distribution-drill.ts b/frontend/src/metabase/querying/drills/utils/distribution-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/distribution-drill/distribution-drill.ts
rename to frontend/src/metabase/querying/drills/utils/distribution-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/filter-drill/filter-drill.tsx b/frontend/src/metabase/querying/drills/utils/filter-drill.tsx
similarity index 91%
rename from frontend/src/metabase/querying/utils/drills/filter-drill/filter-drill.tsx
rename to frontend/src/metabase/querying/drills/utils/filter-drill.tsx
index 052d8f7bc8c2672f409b8d898e7c8fcd489949c4..291a1dc65ecf64be277fcc82f9de9010d398dfcd 100644
--- a/frontend/src/metabase/querying/utils/drills/filter-drill/filter-drill.tsx
+++ b/frontend/src/metabase/querying/drills/utils/filter-drill.tsx
@@ -1,4 +1,4 @@
-import { FilterPickerBody } from "metabase/querying/components/FilterPicker/FilterPickerBody";
+import { FilterPickerBody } from "metabase/querying/filters";
 import type { ClickActionPopoverProps } from "metabase/visualizations/types";
 import * as Lib from "metabase-lib";
 import type Question from "metabase-lib/v1/Question";
diff --git a/frontend/src/metabase/querying/utils/drills/fk-details-drill/fk-details-drill.ts b/frontend/src/metabase/querying/drills/utils/fk-details-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/fk-details-drill/fk-details-drill.ts
rename to frontend/src/metabase/querying/drills/utils/fk-details-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/fk-filter-drill/fk-filter-drill.ts b/frontend/src/metabase/querying/drills/utils/fk-filter-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/fk-filter-drill/fk-filter-drill.ts
rename to frontend/src/metabase/querying/drills/utils/fk-filter-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/pivot-drill/pivot-drill.tsx b/frontend/src/metabase/querying/drills/utils/pivot-drill.tsx
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/pivot-drill/pivot-drill.tsx
rename to frontend/src/metabase/querying/drills/utils/pivot-drill.tsx
diff --git a/frontend/src/metabase/querying/utils/drills/pk-drill/pk-drill.ts b/frontend/src/metabase/querying/drills/utils/pk-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/pk-drill/pk-drill.ts
rename to frontend/src/metabase/querying/drills/utils/pk-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/query-drill.ts b/frontend/src/metabase/querying/drills/utils/query-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/query-drill.ts
rename to frontend/src/metabase/querying/drills/utils/query-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/quick-filter-drill/quick-filter-drill.tsx b/frontend/src/metabase/querying/drills/utils/quick-filter-drill.tsx
similarity index 98%
rename from frontend/src/metabase/querying/utils/drills/quick-filter-drill/quick-filter-drill.tsx
rename to frontend/src/metabase/querying/drills/utils/quick-filter-drill.tsx
index 85fa058d02824c20c216414e6287064f361f6425..86436ba2d140715dcd7a18887a52782e3f7070d6 100644
--- a/frontend/src/metabase/querying/utils/drills/quick-filter-drill/quick-filter-drill.tsx
+++ b/frontend/src/metabase/querying/drills/utils/quick-filter-drill.tsx
@@ -7,7 +7,7 @@ import type {
 import * as Lib from "metabase-lib";
 import type Question from "metabase-lib/v1/Question";
 
-import { getFilterPopover } from "../filter-drill";
+import { getFilterPopover } from "./filter-drill";
 
 export const quickFilterDrill: Drill<Lib.QuickFilterDrillThruInfo> = ({
   question,
diff --git a/frontend/src/metabase/querying/utils/drills/sort-drill/sort-drill.ts b/frontend/src/metabase/querying/drills/utils/sort-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/sort-drill/sort-drill.ts
rename to frontend/src/metabase/querying/drills/utils/sort-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/summarize-column-by-time-drill/summarize-column-by-time-drill.ts b/frontend/src/metabase/querying/drills/utils/summarize-column-by-time-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/summarize-column-by-time-drill/summarize-column-by-time-drill.ts
rename to frontend/src/metabase/querying/drills/utils/summarize-column-by-time-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/summarize-column-drill/summarize-column-drill.ts b/frontend/src/metabase/querying/drills/utils/summarize-column-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/summarize-column-drill/summarize-column-drill.ts
rename to frontend/src/metabase/querying/drills/utils/summarize-column-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/underlying-records-drill/underlying-records-drill.ts b/frontend/src/metabase/querying/drills/utils/underlying-records-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/underlying-records-drill/underlying-records-drill.ts
rename to frontend/src/metabase/querying/drills/utils/underlying-records-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/zoom-drill/zoom-drill.ts b/frontend/src/metabase/querying/drills/utils/zoom-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/zoom-drill/zoom-drill.ts
rename to frontend/src/metabase/querying/drills/utils/zoom-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/zoom-in-binning-drill/zoom-in-binning-drill.ts b/frontend/src/metabase/querying/drills/utils/zoom-in-binning-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/zoom-in-binning-drill/zoom-in-binning-drill.ts
rename to frontend/src/metabase/querying/drills/utils/zoom-in-binning-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/zoom-in-geographic-drill/zoom-in-geographic-drill.ts b/frontend/src/metabase/querying/drills/utils/zoom-in-geographic-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/zoom-in-geographic-drill/zoom-in-geographic-drill.ts
rename to frontend/src/metabase/querying/drills/utils/zoom-in-geographic-drill.ts
diff --git a/frontend/src/metabase/querying/utils/drills/zoom-in-timeseries-drill/zoom-in-timeseries-drill.ts b/frontend/src/metabase/querying/drills/utils/zoom-in-timeseries-drill.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/drills/zoom-in-timeseries-drill/zoom-in-timeseries-drill.ts
rename to frontend/src/metabase/querying/drills/utils/zoom-in-timeseries-drill.ts
diff --git a/frontend/src/metabase/querying/components/FieldPanel/FieldPanel.tsx b/frontend/src/metabase/querying/fields/components/FieldPanel/FieldPanel.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FieldPanel/FieldPanel.tsx
rename to frontend/src/metabase/querying/fields/components/FieldPanel/FieldPanel.tsx
diff --git a/frontend/src/metabase/querying/components/FieldPanel/FieldPanel.unit.spec.tsx b/frontend/src/metabase/querying/fields/components/FieldPanel/FieldPanel.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FieldPanel/FieldPanel.unit.spec.tsx
rename to frontend/src/metabase/querying/fields/components/FieldPanel/FieldPanel.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FieldPanel/index.ts b/frontend/src/metabase/querying/fields/components/FieldPanel/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FieldPanel/index.ts
rename to frontend/src/metabase/querying/fields/components/FieldPanel/index.ts
diff --git a/frontend/src/metabase/querying/components/FieldPanel/types.ts b/frontend/src/metabase/querying/fields/components/FieldPanel/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FieldPanel/types.ts
rename to frontend/src/metabase/querying/fields/components/FieldPanel/types.ts
diff --git a/frontend/src/metabase/querying/components/FieldPanel/utils.ts b/frontend/src/metabase/querying/fields/components/FieldPanel/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FieldPanel/utils.ts
rename to frontend/src/metabase/querying/fields/components/FieldPanel/utils.ts
diff --git a/frontend/src/metabase/querying/fields/index.ts b/frontend/src/metabase/querying/fields/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b38c33d461c14a65e520d9621b020ddf627078f3
--- /dev/null
+++ b/frontend/src/metabase/querying/fields/index.ts
@@ -0,0 +1 @@
+export { FieldPanel } from "./components/FieldPanel";
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/DateOperatorPicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/DateOperatorPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/DateOperatorPicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/DateOperatorPicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/DateOperatorPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/DateOperatorPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/DateOperatorPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/DateOperatorPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/constants.ts b/frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/constants.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/constants.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/types.ts b/frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/types.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/types.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/utils.ts b/frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/utils.unit.spec.ts b/frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/utils.unit.spec.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateOperatorPicker/utils.unit.spec.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateOperatorPicker/utils.unit.spec.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/DatePicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/DatePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DatePicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/DatePicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/DatePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/DatePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DatePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/DatePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/DateShortcutPicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/DateShortcutPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/DateShortcutPicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/DateShortcutPicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/DateShortcutPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/DateShortcutPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/DateShortcutPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/DateShortcutPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/constants.ts b/frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/constants.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/constants.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/types.ts b/frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/types.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/types.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/utils.ts b/frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/DateShortcutPicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/DateShortcutPicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/ExcludeDatePicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/ExcludeDatePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/ExcludeDatePicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/ExcludeDatePicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/ExcludeDatePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/ExcludeDatePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/ExcludeDatePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/ExcludeDatePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/constants.ts b/frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/constants.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/constants.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/types.ts b/frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/types.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/types.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/utils.ts b/frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/ExcludeDatePicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/ExcludeDatePicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/CurrentDatePicker/CurrentDatePicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/CurrentDatePicker/CurrentDatePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/CurrentDatePicker/CurrentDatePicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/CurrentDatePicker/CurrentDatePicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/CurrentDatePicker/CurrentDatePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/CurrentDatePicker/CurrentDatePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/CurrentDatePicker/CurrentDatePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/CurrentDatePicker/CurrentDatePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/CurrentDatePicker/constants.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/CurrentDatePicker/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/CurrentDatePicker/constants.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/CurrentDatePicker/constants.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/CurrentDatePicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/CurrentDatePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/CurrentDatePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/CurrentDatePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/DateIntervalPicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/DateIntervalPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/DateIntervalPicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/DateIntervalPicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/DateIntervalPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/DateIntervalPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/DateIntervalPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/DateIntervalPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/SimpleDateIntervalPicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/SimpleDateIntervalPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/SimpleDateIntervalPicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/SimpleDateIntervalPicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/SimpleDateIntervalPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/SimpleDateIntervalPicker.unit.spec.tsx
similarity index 97%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/SimpleDateIntervalPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/SimpleDateIntervalPicker.unit.spec.tsx
index 6486018db97fb55b214ac7cbaa2152cd204dd008..457ceaf36a36c6e286d62b02f1dc3b2e03509300 100644
--- a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/SimpleDateIntervalPicker.unit.spec.tsx
+++ b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/SimpleDateIntervalPicker.unit.spec.tsx
@@ -1,8 +1,8 @@
 import userEvent from "@testing-library/user-event";
 
 import { renderWithProviders, screen } from "__support__/ui";
+import type { RelativeIntervalDirection } from "metabase/querying/filters/components/DatePicker/types";
 
-import type { RelativeIntervalDirection } from "../../../types";
 import type { DateIntervalValue } from "../../types";
 
 import { SimpleDateIntervalPicker } from "./SimpleDateIntervalPicker";
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/SimpleDateIntervalPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/constants.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/constants.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/constants.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/utils.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateIntervalPicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateIntervalPicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.styled.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.styled.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.styled.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/DateOffsetIntervalPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/utils.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/DateOffsetIntervalPicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/IncludeCurrentSwitch/IncludeCurrentSwitch.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/IncludeCurrentSwitch/IncludeCurrentSwitch.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/IncludeCurrentSwitch/IncludeCurrentSwitch.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/IncludeCurrentSwitch/IncludeCurrentSwitch.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/IncludeCurrentSwitch/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/IncludeCurrentSwitch/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/IncludeCurrentSwitch/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/IncludeCurrentSwitch/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/RelativeDatePicker.styled.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/RelativeDatePicker.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/RelativeDatePicker.styled.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/RelativeDatePicker.styled.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/RelativeDatePicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/RelativeDatePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/RelativeDatePicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/RelativeDatePicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/RelativeDatePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/RelativeDatePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/RelativeDatePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/RelativeDatePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/constants.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/constants.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/constants.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/types.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/types.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/types.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/utils.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/utils.unit.spec.ts b/frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/utils.unit.spec.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/RelativeDatePicker/utils.unit.spec.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/RelativeDatePicker/utils.unit.spec.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SimpleDatePicker/SimpleDatePicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SimpleDatePicker/SimpleDatePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SimpleDatePicker/SimpleDatePicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SimpleDatePicker/SimpleDatePicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SimpleDatePicker/SimpleDatePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SimpleDatePicker/SimpleDatePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SimpleDatePicker/SimpleDatePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SimpleDatePicker/SimpleDatePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SimpleDatePicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SimpleDatePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SimpleDatePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SimpleDatePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/DateRangePickerBody.styled.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/DateRangePickerBody.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/DateRangePickerBody.styled.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/DateRangePickerBody.styled.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/DateRangePickerBody.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/DateRangePickerBody.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/DateRangePickerBody.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/DateRangePickerBody.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/DateRangePickerBody/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/SimpleDateRangePicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/SimpleDateRangePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/SimpleDateRangePicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/SimpleDateRangePicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/SimpleDateRangePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/SimpleDateRangePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/SimpleDateRangePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/SimpleDateRangePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/SimpleDateRangePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/types.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/DateRangePicker/types.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/DateRangePicker/types.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/SimpleSpecificDatePicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/SimpleSpecificDatePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/SimpleSpecificDatePicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/SimpleSpecificDatePicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/SimpleSpecificDatePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/SimpleSpecificDatePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/SimpleSpecificDatePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/SimpleSpecificDatePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SimpleSpecificDatePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/SimpleSingleDatePicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/SimpleSingleDatePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/SimpleSingleDatePicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/SimpleSingleDatePicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/SimpleSingleDatePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/SimpleSingleDatePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/SimpleSingleDatePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/SimpleSingleDatePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SimpleSingleDatePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePickerBody/SingleDatePickerBody.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePickerBody/SingleDatePickerBody.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePickerBody/SingleDatePickerBody.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePickerBody/SingleDatePickerBody.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePickerBody/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePickerBody/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePickerBody/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/SingleDatePickerBody/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/types.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SingleDatePicker/types.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SingleDatePicker/types.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SpecificDatePicker.styled.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SpecificDatePicker.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SpecificDatePicker.styled.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SpecificDatePicker.styled.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SpecificDatePicker.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SpecificDatePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SpecificDatePicker.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SpecificDatePicker.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SpecificDatePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SpecificDatePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/SpecificDatePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/SpecificDatePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/TimeToggle/TimeToggle.tsx b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/TimeToggle/TimeToggle.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/TimeToggle/TimeToggle.tsx
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/TimeToggle/TimeToggle.tsx
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/TimeToggle/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/TimeToggle/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/TimeToggle/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/TimeToggle/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/constants.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/constants.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/constants.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/types.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/types.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/types.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/utils.ts b/frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/SpecificDatePicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/SpecificDatePicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/constants.ts b/frontend/src/metabase/querying/filters/components/DatePicker/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/constants.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/constants.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/index.ts b/frontend/src/metabase/querying/filters/components/DatePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/types.ts b/frontend/src/metabase/querying/filters/components/DatePicker/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/types.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/types.ts
diff --git a/frontend/src/metabase/querying/components/DatePicker/utils.ts b/frontend/src/metabase/querying/filters/components/DatePicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/DatePicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/DatePicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/FilterContent/BooleanFilterEditor/BooleanFilterEditor.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/BooleanFilterEditor/BooleanFilterEditor.tsx
similarity index 96%
rename from frontend/src/metabase/querying/components/FilterContent/BooleanFilterEditor/BooleanFilterEditor.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/BooleanFilterEditor/BooleanFilterEditor.tsx
index 7b7e57ce98c0aff5731a2e66b0d98157b2bdbef1..55603ccb658aa2407a3937ec8b565c4427f9fb35 100644
--- a/frontend/src/metabase/querying/components/FilterContent/BooleanFilterEditor/BooleanFilterEditor.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/BooleanFilterEditor/BooleanFilterEditor.tsx
@@ -2,7 +2,7 @@ import { useMemo } from "react";
 import { t } from "ttag";
 
 import { getColumnIcon } from "metabase/common/utils/columns";
-import { useBooleanOperatorFilter } from "metabase/querying/hooks/use-boolean-operator-filter";
+import { useBooleanOperatorFilter } from "metabase/querying/filters/hooks/use-boolean-operator-filter";
 import { Checkbox, Grid, Group } from "metabase/ui";
 import type * as Lib from "metabase-lib";
 
diff --git a/frontend/src/metabase/querying/components/FilterContent/BooleanFilterEditor/BooleanFilterEditor.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/BooleanFilterEditor/BooleanFilterEditor.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/BooleanFilterEditor/BooleanFilterEditor.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/BooleanFilterEditor/BooleanFilterEditor.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/BooleanFilterEditor/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/BooleanFilterEditor/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/BooleanFilterEditor/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/BooleanFilterEditor/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterContent/ColumnFilterSection/ColumnFilterSection.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/ColumnFilterSection/ColumnFilterSection.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/ColumnFilterSection/ColumnFilterSection.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/ColumnFilterSection/ColumnFilterSection.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/ColumnFilterSection/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/ColumnFilterSection/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/ColumnFilterSection/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/ColumnFilterSection/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterContent/CoordinateFilterEditor/CoordinateFilterEditor.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/CoordinateFilterEditor/CoordinateFilterEditor.tsx
similarity index 97%
rename from frontend/src/metabase/querying/components/FilterContent/CoordinateFilterEditor/CoordinateFilterEditor.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/CoordinateFilterEditor/CoordinateFilterEditor.tsx
index 5c08d98f0a7580c5938b981546bd0987d2734d69..df33007a007b42092b48d3f838f360cd4d0a13d8 100644
--- a/frontend/src/metabase/querying/components/FilterContent/CoordinateFilterEditor/CoordinateFilterEditor.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/CoordinateFilterEditor/CoordinateFilterEditor.tsx
@@ -3,8 +3,10 @@ import { t } from "ttag";
 
 import { getColumnIcon } from "metabase/common/utils/columns";
 import { isNumber } from "metabase/lib/types";
-import type { NumberValue } from "metabase/querying/hooks/use-coordinate-filter";
-import { useCoordinateFilter } from "metabase/querying/hooks/use-coordinate-filter";
+import {
+  type NumberValue,
+  useCoordinateFilter,
+} from "metabase/querying/filters/hooks/use-coordinate-filter";
 import { Flex, Grid, NumberInput, Text } from "metabase/ui";
 import type * as Lib from "metabase-lib";
 
diff --git a/frontend/src/metabase/querying/components/FilterContent/CoordinateFilterEditor/CoordinateFilterEditor.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/CoordinateFilterEditor/CoordinateFilterEditor.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/CoordinateFilterEditor/CoordinateFilterEditor.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/CoordinateFilterEditor/CoordinateFilterEditor.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/CoordinateFilterEditor/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/CoordinateFilterEditor/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/CoordinateFilterEditor/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/CoordinateFilterEditor/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/DateFilterEditor.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/DateFilterEditor.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/DateFilterEditor.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/DateFilterEditor.styled.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/DateFilterEditor.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/DateFilterEditor.tsx
similarity index 93%
rename from frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/DateFilterEditor.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/DateFilterEditor.tsx
index 375d81482ed717b0176e0ee7321f9787642840bd..638dd6bf45897e8f20611c83839f27c95b64fc35 100644
--- a/frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/DateFilterEditor.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/DateFilterEditor.tsx
@@ -4,16 +4,16 @@ import { t } from "ttag";
 
 import { getColumnIcon } from "metabase/common/utils/columns";
 import IconButtonWrapper from "metabase/components/IconButtonWrapper";
-import type {
-  DatePickerExtractionUnit,
-  DatePickerOperator,
-  DatePickerValue,
-  ShortcutOption,
-} from "metabase/querying/components/DatePicker";
-import { DatePicker } from "metabase/querying/components/DatePicker";
-import { useDateFilter } from "metabase/querying/hooks/use-date-filter";
+import { useDateFilter } from "metabase/querying/filters/hooks/use-date-filter";
 import { Button, Flex, Grid, Icon, Popover } from "metabase/ui";
 
+import {
+  DatePicker,
+  type DatePickerExtractionUnit,
+  type DatePickerOperator,
+  type DatePickerValue,
+  type ShortcutOption,
+} from "../../DatePicker";
 import { FilterTitle, HoverParent } from "../FilterTitle";
 import type { FilterEditorProps } from "../types";
 
diff --git a/frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/DateFilterEditor.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/DateFilterEditor.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/DateFilterEditor.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/DateFilterEditor.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/constants.ts b/frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/constants.ts
similarity index 75%
rename from frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/constants.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/constants.ts
index d3e92665a3cde663bb180fd0438ef38e48ad04ff..c06519d1bf848ebeb10a0666eedb2bfdc190a6e2 100644
--- a/frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/constants.ts
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/constants.ts
@@ -1,4 +1,4 @@
-import type { DatePickerShortcut } from "metabase/querying/components/DatePicker";
+import type { DatePickerShortcut } from "../../DatePicker";
 
 export const MAIN_SHORTCUTS: DatePickerShortcut[] = [
   "today",
diff --git a/frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/utils.ts b/frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/utils.ts
similarity index 83%
rename from frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/utils.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/utils.ts
index ff8293189229d0e1606db59d2a50c03f181f7db7..6e0f1e03e1eba9f8695183d5fb23fa0775651e4b 100644
--- a/frontend/src/metabase/querying/components/FilterContent/DateFilterEditor/utils.ts
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/DateFilterEditor/utils.ts
@@ -1,5 +1,7 @@
-import type { DatePickerValue } from "metabase/querying/components/DatePicker";
-import { getShortcutOptions } from "metabase/querying/components/DatePicker";
+import {
+  type DatePickerValue,
+  getShortcutOptions,
+} from "metabase/querying/filters/components/DatePicker";
 import * as Lib from "metabase-lib";
 
 import { MAIN_SHORTCUTS } from "./constants";
diff --git a/frontend/src/metabase/querying/components/FilterContent/DefaultFilterEditor/DefaultFilterEditor.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/DefaultFilterEditor/DefaultFilterEditor.tsx
similarity index 96%
rename from frontend/src/metabase/querying/components/FilterContent/DefaultFilterEditor/DefaultFilterEditor.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/DefaultFilterEditor/DefaultFilterEditor.tsx
index 732317f5dea7cef2bfe7fc762c23bdfe392f3e2f..a5ad2684377172054ea811b216a94bda57cba6ee 100644
--- a/frontend/src/metabase/querying/components/FilterContent/DefaultFilterEditor/DefaultFilterEditor.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/DefaultFilterEditor/DefaultFilterEditor.tsx
@@ -1,12 +1,12 @@
 import { useMemo } from "react";
 
 import { getColumnIcon } from "metabase/common/utils/columns";
-import { Checkbox, Grid, Group } from "metabase/ui";
-
 import {
   type OperatorOption,
   useDefaultFilter,
-} from "../../../hooks/use-default-filter";
+} from "metabase/querying/filters/hooks/use-default-filter";
+import { Checkbox, Grid, Group } from "metabase/ui";
+
 import { FilterTitle, HoverParent } from "../FilterTitle";
 import type { FilterEditorProps } from "../types";
 
diff --git a/frontend/src/metabase/querying/components/FilterContent/DefaultFilterEditor/DefaultFilterEditor.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/DefaultFilterEditor/DefaultFilterEditor.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/DefaultFilterEditor/DefaultFilterEditor.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/DefaultFilterEditor/DefaultFilterEditor.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/DefaultFilterEditor/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/DefaultFilterEditor/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/DefaultFilterEditor/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/DefaultFilterEditor/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterModal/FilterModal.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModal.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterModal/FilterModal.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModal.styled.tsx
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModal.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModal.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..2077b342045cc7c46f105cb14e8ffed57774ccd0
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModal.tsx
@@ -0,0 +1,80 @@
+import { Flex, Modal } from "metabase/ui";
+import type * as Lib from "metabase-lib";
+
+import { useFilterModal } from "../../hooks/use-filter-modal";
+
+import { ModalBody, ModalFooter, ModalHeader } from "./FilterModal.styled";
+import { FilterModalBody } from "./FilterModalBody";
+import { FilterModalFooter } from "./FilterModalFooter";
+import { FilterModalHeader } from "./FilterModalHeader";
+import { getModalTitle, getModalWidth } from "./utils";
+
+export interface FilterModalProps {
+  query: Lib.Query;
+  onSubmit: (newQuery: Lib.Query) => void;
+  onClose: () => void;
+}
+
+export function FilterModal({
+  query: initialQuery,
+  onSubmit,
+  onClose,
+}: FilterModalProps) {
+  const {
+    query,
+    version,
+    isChanged,
+    groupItems,
+    tab,
+    setTab,
+    canRemoveFilters,
+    searchText,
+    isSearching,
+    visibleItems,
+    handleInput,
+    handleChange,
+    handleReset,
+    handleSubmit,
+    handleSearch,
+  } = useFilterModal(initialQuery, onSubmit);
+
+  const onSubmitFilters = () => {
+    handleSubmit();
+    onClose();
+  };
+
+  return (
+    <Modal.Root opened size={getModalWidth(groupItems)} onClose={onClose}>
+      <Modal.Overlay />
+      <Modal.Content>
+        <ModalHeader p="lg">
+          <Modal.Title>{getModalTitle(groupItems)}</Modal.Title>
+          <Flex mx="md" justify="end" style={{ flex: 1 }}>
+            <FilterModalHeader value={searchText} onChange={handleSearch} />
+          </Flex>
+          <Modal.CloseButton />
+        </ModalHeader>
+        <ModalBody p={0}>
+          <FilterModalBody
+            groupItems={visibleItems}
+            query={query}
+            tab={tab}
+            version={version}
+            searching={isSearching}
+            onChange={handleChange}
+            onInput={handleInput}
+            onTabChange={setTab}
+          />
+        </ModalBody>
+        <ModalFooter p="md" direction="row" justify="space-between">
+          <FilterModalFooter
+            canRemoveFilters={canRemoveFilters}
+            onClearFilters={handleReset}
+            isChanged={isChanged}
+            onApplyFilters={onSubmitFilters}
+          />
+        </ModalFooter>
+      </Modal.Content>
+    </Modal.Root>
+  );
+}
diff --git a/frontend/src/metabase/querying/components/FilterModal/FilterModal.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModal.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterModal/FilterModal.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModal.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/TabPanelColumnItem.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterGroup/ColumnFilterGroup.tsx
similarity index 74%
rename from frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/TabPanelColumnItem.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterGroup/ColumnFilterGroup.tsx
index 9702e2a4c6e21acc6be2ec5ea1cda2d342923ef9..4278ccc15d588b0bcdb0dc4daa21ed67ad297bd9 100644
--- a/frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/TabPanelColumnItem.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterGroup/ColumnFilterGroup.tsx
@@ -1,14 +1,14 @@
 import { useMemo, useState } from "react";
 
+import type { ColumnItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import { DelayGroup } from "metabase/ui";
 import type * as Lib from "metabase-lib";
 
-import { TabPanelFilterItem } from "../TabPanelItem";
-import type { ColumnItem } from "../types";
+import { ColumnFilterItem } from "../ColumnFilterItem";
 
-import { findColumnFilters, findVisibleFilters } from "./columns";
+import { findColumnFilters, findVisibleFilters } from "./utils";
 
-export interface TabPanelColumnItemProps {
+export interface ColumnFilterGroupProps {
   query: Lib.Query;
   columnItem: ColumnItem;
   isSearching: boolean;
@@ -16,13 +16,13 @@ export interface TabPanelColumnItemProps {
   onInput: () => void;
 }
 
-export function TabPanelColumnItem({
+export function ColumnFilterGroup({
   query,
   columnItem,
   isSearching,
   onChange,
   onInput,
-}: TabPanelColumnItemProps) {
+}: ColumnFilterGroupProps) {
   const { column, stageIndex } = columnItem;
   const currentFilters = useMemo(
     () => findColumnFilters(query, stageIndex, column),
@@ -34,7 +34,7 @@ export function TabPanelColumnItem({
   return (
     <DelayGroup>
       {visibleFilters.map((filter, filterIndex) => (
-        <TabPanelFilterItem
+        <ColumnFilterItem
           key={filterIndex}
           query={query}
           columnItem={columnItem}
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterGroup/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterGroup/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4618e742ee68893251119b8a044015b06d3d5371
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterGroup/index.ts
@@ -0,0 +1 @@
+export * from "./ColumnFilterGroup";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/columns.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterGroup/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/columns.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterGroup/utils.ts
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanelItem/TabPanelFilterItem.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterItem/ColumnFilterItem.tsx
similarity index 70%
rename from frontend/src/metabase/querying/components/FilterContent/TabPanelItem/TabPanelFilterItem.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterItem/ColumnFilterItem.tsx
index 3eef087a53a781491fb6d68bdda377a248bfe4f9..8b387ddc8644cc33a6376a8301a9a4073d6537e5 100644
--- a/frontend/src/metabase/querying/components/FilterContent/TabPanelItem/TabPanelFilterItem.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterItem/ColumnFilterItem.tsx
@@ -1,11 +1,10 @@
+import type { ColumnItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import * as Lib from "metabase-lib";
 
-import { ColumnFilterSection } from "../ColumnFilterSection";
-import type { ColumnItem } from "../types";
+import { ColumnFilterSection } from "../../ColumnFilterSection";
+import { FilterTabItem } from "../FilterTabItem";
 
-import { TabPanelItem } from "./TabPanelItem.styled";
-
-export interface TabPanelFilterItemProps {
+export interface ColumnFilterItemProps {
   query: Lib.Query;
   columnItem: ColumnItem;
   filter: Lib.FilterClause | undefined;
@@ -14,14 +13,14 @@ export interface TabPanelFilterItemProps {
   onInput: () => void;
 }
 
-export function TabPanelFilterItem({
+export function ColumnFilterItem({
   query,
   columnItem,
   filter,
   isSearching,
   onChange,
   onInput,
-}: TabPanelFilterItemProps) {
+}: ColumnFilterItemProps) {
   const { column, displayName, stageIndex } = columnItem;
 
   const handleChange = (newFilter: Lib.ExpressionClause | undefined) => {
@@ -35,7 +34,7 @@ export function TabPanelFilterItem({
   };
 
   return (
-    <TabPanelItem component="li" data-testid={`filter-column-${displayName}`}>
+    <FilterTabItem component="li" data-testid={`filter-column-${displayName}`}>
       <ColumnFilterSection
         query={query}
         stageIndex={stageIndex}
@@ -45,6 +44,6 @@ export function TabPanelFilterItem({
         onChange={handleChange}
         onInput={onInput}
       />
-    </TabPanelItem>
+    </FilterTabItem>
   );
 }
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterItem/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterItem/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..82d502f26a198f7dcf324d62617ed748bdce6948
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterItem/index.ts
@@ -0,0 +1 @@
+export * from "./ColumnFilterItem";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/TabPanelColumnItemList.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterList/ColumnFilterList.tsx
similarity index 67%
rename from frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/TabPanelColumnItemList.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterList/ColumnFilterList.tsx
index 8f81a6f3f64cdd2fa8d8405cfe7635a5401651a9..14493cc7709d863ceb57a4823eecffcd6120a017 100644
--- a/frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/TabPanelColumnItemList.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterList/ColumnFilterList.tsx
@@ -1,13 +1,13 @@
 import { useMemo } from "react";
 
+import type { ColumnItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import type * as Lib from "metabase-lib";
 
-import type { ColumnItem } from "../types";
+import { ColumnFilterGroup } from "../ColumnFilterGroup";
 
-import { TabPanelColumnItem } from "./TabPanelColumnItem";
-import { sortColumns } from "./sorting";
+import { sortColumns } from "./utils";
 
-export interface TabPanelColumnItemListProps {
+export interface ColumnFilterListProps {
   query: Lib.Query;
   columnItems: ColumnItem[];
   isSearching: boolean;
@@ -15,19 +15,19 @@ export interface TabPanelColumnItemListProps {
   onInput: () => void;
 }
 
-export const TabPanelColumnItemList = ({
+export const ColumnFilterList = ({
   query,
   columnItems,
   isSearching,
   onChange,
   onInput,
-}: TabPanelColumnItemListProps) => {
+}: ColumnFilterListProps) => {
   const sortedItems = useMemo(() => sortColumns(columnItems), [columnItems]);
 
   return (
     <>
       {sortedItems.map((columnItem, columnIndex) => (
-        <TabPanelColumnItem
+        <ColumnFilterGroup
           key={columnIndex}
           query={query}
           columnItem={columnItem}
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterList/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterList/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d66644b264dd54e74e86553ae6c261049ae11681
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterList/index.ts
@@ -0,0 +1 @@
+export * from "./ColumnFilterList";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/sorting.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterList/utils.ts
similarity index 94%
rename from frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/sorting.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterList/utils.ts
index c8b79cff8e6de2c3ed98139186e8c5f66d91df6d..c2363e99261da9f385aae66eb8f93aa16b485f02 100644
--- a/frontend/src/metabase/querying/components/FilterContent/TabPanelColumn/sorting.ts
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/ColumnFilterList/utils.ts
@@ -1,7 +1,6 @@
+import type { ColumnItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import * as Lib from "metabase-lib";
 
-import type { ColumnItem } from "../types";
-
 function isCreationDateOrTimestamp(column: Lib.ColumnMetadata) {
   return Lib.isCreationDate(column) || Lib.isCreationTimestamp(column);
 }
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterBody.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterModalBody.tsx
similarity index 66%
rename from frontend/src/metabase/querying/components/FilterContent/FilterBody.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterModalBody.tsx
index 52262fc3ff351174063e5c8f94c4d659c94764b8..46f0862bfeef24d741ccbe8071d036d8aa85fb0f 100644
--- a/frontend/src/metabase/querying/components/FilterContent/FilterBody.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterModalBody.tsx
@@ -1,10 +1,10 @@
+import type { GroupItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import type * as Lib from "metabase-lib";
 
-import { FilterEmptyState } from "./FilterEmptyState";
-import { TabContent } from "./TabContent";
-import type { GroupItem } from "./types";
+import { FilterTabContent } from "./FilterTabContent";
+import { FilterTabEmptyState } from "./FilterTabEmptyState";
 
-type FilterBodyProps = {
+type FilterModalBodyProps = {
   groupItems: GroupItem[];
   query: Lib.Query;
   tab: string | null;
@@ -17,7 +17,7 @@ type FilterBodyProps = {
   ) => void;
 };
 
-export const FilterBody = ({
+export const FilterModalBody = ({
   groupItems,
   onChange,
   onInput,
@@ -26,9 +26,9 @@ export const FilterBody = ({
   searching,
   tab,
   version,
-}: FilterBodyProps) =>
+}: FilterModalBodyProps) =>
   groupItems.length > 0 ? (
-    <TabContent
+    <FilterTabContent
       query={query}
       groupItems={groupItems}
       tab={tab}
@@ -39,5 +39,5 @@ export const FilterBody = ({
       onTabChange={onTabChange}
     />
   ) : (
-    <FilterEmptyState />
+    <FilterTabEmptyState />
   );
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabContent/TabContent.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabContent/FilterTabContent.tsx
similarity index 68%
rename from frontend/src/metabase/querying/components/FilterContent/TabContent/TabContent.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabContent/FilterTabContent.tsx
index 358e1e163d0570f0dee3d782d5ad1cb177e63227..261a716f2206a94aa80bbf8a00f48ecfca8116e6 100644
--- a/frontend/src/metabase/querying/components/FilterContent/TabContent/TabContent.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabContent/FilterTabContent.tsx
@@ -1,11 +1,11 @@
+import type { GroupItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import { Flex, Tabs } from "metabase/ui";
 import type * as Lib from "metabase-lib";
 
-import { TabList } from "../TabList";
-import { TabPanel } from "../TabPanel";
-import type { GroupItem } from "../types";
+import { FilterTabList } from "../FilterTabList";
+import { FilterTabPanel } from "../FilterTabPanel";
 
-export interface TabContentProps {
+export interface FilterTabContentProps {
   query: Lib.Query;
   groupItems: GroupItem[];
   tab: string | null;
@@ -16,7 +16,7 @@ export interface TabContentProps {
   onTabChange: (tab: string | null) => void;
 }
 
-export function TabContent({
+export function FilterTabContent({
   query,
   groupItems,
   tab,
@@ -25,13 +25,13 @@ export function TabContent({
   onChange,
   onInput,
   onTabChange,
-}: TabContentProps) {
+}: FilterTabContentProps) {
   return (
     <Tabs value={tab} onTabChange={onTabChange} orientation="vertical" h="100%">
       <Flex direction="row" w="100%">
-        {groupItems.length > 1 && <TabList groupItems={groupItems} />}
+        {groupItems.length > 1 && <FilterTabList groupItems={groupItems} />}
         {groupItems.map(groupItem => (
-          <TabPanel
+          <FilterTabPanel
             key={`${groupItem.key}:${version}`}
             query={query}
             groupItem={groupItem}
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabContent/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabContent/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f58b1a23b9e5e59e97265e5d88652693ce65b249
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabContent/index.ts
@@ -0,0 +1 @@
+export * from "./FilterTabContent";
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterEmptyState.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabEmptyState/FilterTabEmptyState.tsx
similarity index 88%
rename from frontend/src/metabase/querying/components/FilterContent/FilterEmptyState.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabEmptyState/FilterTabEmptyState.tsx
index 1ee23e10f840fd7d8f9fe7178d8f55662613b619..4d43bfd52a3fab3b1b4723d0ac3d9a308a792d4b 100644
--- a/frontend/src/metabase/querying/components/FilterContent/FilterEmptyState.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabEmptyState/FilterTabEmptyState.tsx
@@ -2,7 +2,7 @@ import { t } from "ttag";
 
 import { Icon, Stack, Text } from "metabase/ui";
 
-export function FilterEmptyState() {
+export function FilterTabEmptyState() {
   return (
     <Stack c="text-light" h="100%" justify="center" align="center">
       <Icon name="search" size={40} />
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabEmptyState/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabEmptyState/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6632d14a99bfeabb761f2f8c00348a7b7b10805f
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabEmptyState/index.ts
@@ -0,0 +1 @@
+export * from "./FilterTabEmptyState";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanelItem/TabPanelItem.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabItem/FilterTabItem.styled.tsx
similarity index 75%
rename from frontend/src/metabase/querying/components/FilterContent/TabPanelItem/TabPanelItem.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabItem/FilterTabItem.styled.tsx
index e22be8594db1a089e9890c3c8c4946a9ce66d532..4f7161e84478b4392dd13be605a3b9107bbaf985 100644
--- a/frontend/src/metabase/querying/components/FilterContent/TabPanelItem/TabPanelItem.styled.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabItem/FilterTabItem.styled.tsx
@@ -2,11 +2,11 @@ import styled from "@emotion/styled";
 
 import { Box, type BoxProps } from "metabase/ui";
 
-interface ColumnItemRootProps extends BoxProps {
+interface FilterTabItemProps extends BoxProps {
   component?: string;
 }
 
-export const TabPanelItem = styled(Box)<ColumnItemRootProps>`
+export const FilterTabItem = styled(Box)<FilterTabItemProps>`
   border-bottom: 1px solid var(--mb-color-border);
   padding: 1rem 2rem;
   padding-left: 0;
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabItem/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabItem/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e4ab4b80f5dbb3d1d5c02a0f17a9b0d9bc36174c
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabItem/index.ts
@@ -0,0 +1 @@
+export * from "./FilterTabItem.styled";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabList/TabList.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabList/FilterTabList.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/TabList/TabList.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabList/FilterTabList.styled.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabList/TabList.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabList/FilterTabList.tsx
similarity index 64%
rename from frontend/src/metabase/querying/components/FilterContent/TabList/TabList.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabList/FilterTabList.tsx
index 3da3b48ab69fcd0486ff75d4f8f9bd3cd14b002e..bfe361b600a1918cbc10b2437b6c36579ad5ef6d 100644
--- a/frontend/src/metabase/querying/components/FilterContent/TabList/TabList.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabList/FilterTabList.tsx
@@ -1,14 +1,13 @@
+import type { GroupItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import { Icon, Tabs } from "metabase/ui";
 
-import type { GroupItem } from "../types";
+import { TabsListSidebar } from "./FilterTabList.styled";
 
-import { TabsListSidebar } from "./TabList.styled";
-
-export interface TabListProps {
+export interface FilterTabListProps {
   groupItems: GroupItem[];
 }
 
-export function TabList({ groupItems }: TabListProps) {
+export function FilterTabList({ groupItems }: FilterTabListProps) {
   return (
     <TabsListSidebar w="25%" pt="sm" pl="md">
       {groupItems.map(groupItem => (
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabList/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabList/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..26ec63091bcc14e504523bb515b2558b03161ec5
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabList/index.ts
@@ -0,0 +1 @@
+export * from "./FilterTabList";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanel/TabPanel.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabPanel/FilterTabPanel.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/TabPanel/TabPanel.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabPanel/FilterTabPanel.styled.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanel/TabPanel.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabPanel/FilterTabPanel.tsx
similarity index 65%
rename from frontend/src/metabase/querying/components/FilterContent/TabPanel/TabPanel.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabPanel/FilterTabPanel.tsx
index 27ddf5720ef2d35e42d677cd65d252fd8ed59bde..84422ad2845c5c8bd24bfeae196249e035da3de9 100644
--- a/frontend/src/metabase/querying/components/FilterContent/TabPanel/TabPanel.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabPanel/FilterTabPanel.tsx
@@ -1,12 +1,12 @@
+import type { GroupItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import type * as Lib from "metabase-lib";
 
-import { TabPanelColumnItemList } from "../TabPanelColumn";
-import { TabPanelSegmentItem } from "../TabPanelItem";
-import type { GroupItem } from "../types";
+import { ColumnFilterList } from "../ColumnFilterList";
+import { SegmentFilterItem } from "../SegmentFilterItem";
 
-import { TabPanelRoot } from "./TabPanel.styled";
+import { TabPanelRoot } from "./FilterTabPanel.styled";
 
-export interface TabPanelProps {
+export interface FilterTabPanelProps {
   query: Lib.Query;
   groupItem: GroupItem;
   isSearching: boolean;
@@ -14,25 +14,25 @@ export interface TabPanelProps {
   onInput: () => void;
 }
 
-export function TabPanel({
+export function FilterTabPanel({
   query,
   groupItem,
   isSearching,
   onChange,
   onInput,
-}: TabPanelProps) {
+}: FilterTabPanelProps) {
   return (
     <TabPanelRoot value={groupItem.key}>
       <ul>
         {groupItem.segmentItems.length > 0 && (
-          <TabPanelSegmentItem
+          <SegmentFilterItem
             query={query}
             segmentItems={groupItem.segmentItems}
             onChange={onChange}
           />
         )}
         {groupItem.columnItems.length > 0 && (
-          <TabPanelColumnItemList
+          <ColumnFilterList
             query={query}
             columnItems={groupItem.columnItems}
             isSearching={isSearching}
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabPanel/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabPanel/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1eecec15cc951b71f5caea809515b3dd37129420
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/FilterTabPanel/index.ts
@@ -0,0 +1 @@
+export * from "./FilterTabPanel";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanelItem/TabPanelSegmentItem.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/SegmentFilterItem/SegmentFilterItem.tsx
similarity index 58%
rename from frontend/src/metabase/querying/components/FilterContent/TabPanelItem/TabPanelSegmentItem.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/SegmentFilterItem/SegmentFilterItem.tsx
index 12033aa8d051e2638233cc231cc23a3d93769984..05ccc48a295e44e9e2df0edafe24ff5aeea76527 100644
--- a/frontend/src/metabase/querying/components/FilterContent/TabPanelItem/TabPanelSegmentItem.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/SegmentFilterItem/SegmentFilterItem.tsx
@@ -1,29 +1,29 @@
+import type { SegmentItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import type * as Lib from "metabase-lib";
 
-import { SegmentFilterEditor } from "../SegmentFilterEditor";
-import type { SegmentItem } from "../types";
+import { SegmentFilterEditor } from "../../SegmentFilterEditor";
+import { FilterTabItem } from "../FilterTabItem";
 
-import { TabPanelItem } from "./TabPanelItem.styled";
-import { addSegmentFilters, removeSegmentFilters } from "./segments";
+import { addSegmentFilters, removeSegmentFilters } from "./utils";
 
-export interface TabPanelSegmentItemProps {
+export interface SegmentFilterItemProps {
   query: Lib.Query;
   segmentItems: SegmentItem[];
   onChange: (newQuery: Lib.Query) => void;
 }
 
-export function TabPanelSegmentItem({
+export function SegmentFilterItem({
   query,
   segmentItems,
   onChange,
-}: TabPanelSegmentItemProps) {
+}: SegmentFilterItemProps) {
   const handleChange = (newSegmentItems: SegmentItem[]) => {
     const newQuery = removeSegmentFilters(query, segmentItems);
     onChange(addSegmentFilters(newQuery, newSegmentItems));
   };
 
   return (
-    <TabPanelItem
+    <FilterTabItem
       component="li"
       px="2rem"
       py="1rem"
@@ -33,6 +33,6 @@ export function TabPanelSegmentItem({
         segmentItems={segmentItems}
         onChange={handleChange}
       />
-    </TabPanelItem>
+    </FilterTabItem>
   );
 }
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/SegmentFilterItem/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/SegmentFilterItem/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c8c930d31a7a5c0c1045978bc6f96fd31282c559
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/SegmentFilterItem/index.ts
@@ -0,0 +1 @@
+export * from "./SegmentFilterItem";
diff --git a/frontend/src/metabase/querying/components/FilterContent/TabPanelItem/segments.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/SegmentFilterItem/utils.ts
similarity index 90%
rename from frontend/src/metabase/querying/components/FilterContent/TabPanelItem/segments.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/SegmentFilterItem/utils.ts
index a3231f9bd2d5c7d6fe3855d62d7e3f8f5bb4755a..18dca7348a5915703c3b131c874cef71d4ec3db1 100644
--- a/frontend/src/metabase/querying/components/FilterContent/TabPanelItem/segments.ts
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/SegmentFilterItem/utils.ts
@@ -1,7 +1,6 @@
+import type { SegmentItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import * as Lib from "metabase-lib";
 
-import type { SegmentItem } from "../types";
-
 export function addSegmentFilters(
   query: Lib.Query,
   segmentItems: SegmentItem[],
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..323a830fb69b2ffa667284ee942e98d140841413
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalBody/index.ts
@@ -0,0 +1 @@
+export * from "./FilterModalBody";
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterFooter.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalFooter/FilterModalFooter.tsx
similarity index 85%
rename from frontend/src/metabase/querying/components/FilterContent/FilterFooter.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalFooter/FilterModalFooter.tsx
index fe9152cb97011595c43cd42ca67ce1072718d7b4..a9b258062dbbae0370181463c363c4f60f2276ab 100644
--- a/frontend/src/metabase/querying/components/FilterContent/FilterFooter.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalFooter/FilterModalFooter.tsx
@@ -2,19 +2,19 @@ import { t } from "ttag";
 
 import { Button } from "metabase/ui";
 
-type FilterFooterProps = {
+type FilterModalFooterProps = {
   canRemoveFilters: boolean;
   onClearFilters: () => void;
   isChanged: boolean;
   onApplyFilters: () => void;
 };
 
-export const FilterFooter = ({
+export const FilterModalFooter = ({
   canRemoveFilters,
   isChanged,
   onApplyFilters,
   onClearFilters,
-}: FilterFooterProps) => (
+}: FilterModalFooterProps) => (
   <>
     <Button
       variant="subtle"
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalFooter/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalFooter/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d811f548d1a84e05ee417f4f15d350e7fc0f6355
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalFooter/index.ts
@@ -0,0 +1 @@
+export * from "./FilterModalFooter";
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterHeader.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/FilterModalHeader.tsx
similarity index 61%
rename from frontend/src/metabase/querying/components/FilterContent/FilterHeader.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/FilterModalHeader.tsx
index 8f4d6d4881ad90bd211fa52bebb3da32928e10f5..7d71f984c197fc60ccee18ba538d424c0fd3901e 100644
--- a/frontend/src/metabase/querying/components/FilterContent/FilterHeader.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/FilterModalHeader.tsx
@@ -1,10 +1,13 @@
 import { FilterSearchInput } from "./FilterSearchInput";
 
-type FilterHeaderProps = {
+type FilterModalHeaderProps = {
   value: string;
   onChange: (searchText: string) => void;
 };
 
-export const FilterHeader = ({ value, onChange }: FilterHeaderProps) => {
+export const FilterModalHeader = ({
+  value,
+  onChange,
+}: FilterModalHeaderProps) => {
   return <FilterSearchInput searchText={value} onChange={onChange} />;
 };
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterSearchInput/FilterSearchInput.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/FilterSearchInput/FilterSearchInput.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/FilterSearchInput/FilterSearchInput.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/FilterSearchInput/FilterSearchInput.styled.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterSearchInput/FilterSearchInput.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/FilterSearchInput/FilterSearchInput.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/FilterSearchInput/FilterSearchInput.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/FilterSearchInput/FilterSearchInput.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterSearchInput/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/FilterSearchInput/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/FilterSearchInput/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/FilterSearchInput/index.ts
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..49aa191a223eb1bffe04ae2c4662f57d971b37f5
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterModalHeader/index.ts
@@ -0,0 +1 @@
+export * from "./FilterModalHeader";
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterOperatorPicker/FilterOperatorPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterOperatorPicker/FilterOperatorPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/FilterOperatorPicker/FilterOperatorPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterOperatorPicker/FilterOperatorPicker.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterOperatorPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterOperatorPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/FilterOperatorPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterOperatorPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterColumnName/FilterColumnName.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterTitle/FilterColumnName/FilterColumnName.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/FilterColumnName/FilterColumnName.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterTitle/FilterColumnName/FilterColumnName.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterColumnName/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/FilterTitle/FilterColumnName/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/FilterColumnName/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterTitle/FilterColumnName/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterTitle/FilterTitle.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterTitle/FilterTitle.tsx
similarity index 94%
rename from frontend/src/metabase/querying/components/FilterContent/FilterTitle/FilterTitle.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterTitle/FilterTitle.tsx
index 5f73d2371d506e17f0bbfe163c148e341340ca63..c7495d54e86a24ebf713f072e1406b34e2941252 100644
--- a/frontend/src/metabase/querying/components/FilterContent/FilterTitle/FilterTitle.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/FilterTitle/FilterTitle.tsx
@@ -8,7 +8,7 @@ import type { IconName } from "metabase/ui";
 import { Flex } from "metabase/ui";
 import type * as Lib from "metabase-lib";
 
-import { FilterColumnName } from "../FilterColumnName";
+import { FilterColumnName } from "./FilterColumnName";
 
 type FilterTitleProps = {
   children?: ReactNode;
diff --git a/frontend/src/metabase/querying/components/FilterContent/FilterTitle/index.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/FilterTitle/index.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/FilterTitle/index.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/FilterTitle/index.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/NumberFilterEditor/NumberFilterEditor.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/NumberFilterEditor/NumberFilterEditor.tsx
similarity index 96%
rename from frontend/src/metabase/querying/components/FilterContent/NumberFilterEditor/NumberFilterEditor.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/NumberFilterEditor/NumberFilterEditor.tsx
index 4d597b1529c573825e05570d06d783f28c76fe65..e15ec3607252635b0cbf996aa833223f2caa704e 100644
--- a/frontend/src/metabase/querying/components/FilterContent/NumberFilterEditor/NumberFilterEditor.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/NumberFilterEditor/NumberFilterEditor.tsx
@@ -3,8 +3,10 @@ import { t } from "ttag";
 
 import { getColumnIcon } from "metabase/common/utils/columns";
 import { isNumber } from "metabase/lib/types";
-import type { NumberValue } from "metabase/querying/hooks/use-number-filter";
-import { useNumberFilter } from "metabase/querying/hooks/use-number-filter";
+import {
+  type NumberValue,
+  useNumberFilter,
+} from "metabase/querying/filters/hooks/use-number-filter";
 import { Flex, Grid, NumberInput, Text } from "metabase/ui";
 import type * as Lib from "metabase-lib";
 
diff --git a/frontend/src/metabase/querying/components/FilterContent/NumberFilterEditor/NumberFilterEditor.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/NumberFilterEditor/NumberFilterEditor.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/NumberFilterEditor/NumberFilterEditor.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/NumberFilterEditor/NumberFilterEditor.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/NumberFilterEditor/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/NumberFilterEditor/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/NumberFilterEditor/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/NumberFilterEditor/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterContent/SegmentFilterEditor/SegmentFilterEditor.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/SegmentFilterEditor/SegmentFilterEditor.tsx
similarity index 94%
rename from frontend/src/metabase/querying/components/FilterContent/SegmentFilterEditor/SegmentFilterEditor.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/SegmentFilterEditor/SegmentFilterEditor.tsx
index cf441c6251aa259ed1a37d0db681e5580c8cf673..081d66d502c92adc28b93322c1e3132bf5de126f 100644
--- a/frontend/src/metabase/querying/components/FilterContent/SegmentFilterEditor/SegmentFilterEditor.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/SegmentFilterEditor/SegmentFilterEditor.tsx
@@ -1,9 +1,8 @@
 import { t } from "ttag";
 
+import type { SegmentItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import { Flex, Grid, Icon, MultiSelect, Text } from "metabase/ui";
 
-import type { SegmentItem } from "../types";
-
 interface SegmentFilterEditorProps {
   segmentItems: SegmentItem[];
   onChange: (newSegmentItems: SegmentItem[]) => void;
diff --git a/frontend/src/metabase/querying/components/FilterContent/SegmentFilterEditor/SegmentFilterEditor.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/SegmentFilterEditor/SegmentFilterEditor.unit.spec.tsx
similarity index 97%
rename from frontend/src/metabase/querying/components/FilterContent/SegmentFilterEditor/SegmentFilterEditor.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/SegmentFilterEditor/SegmentFilterEditor.unit.spec.tsx
index dd9642a24444dd88100dbadecda0ddeb78291d15..d91797ac55bfab00613ba35495047732d6c587c0 100644
--- a/frontend/src/metabase/querying/components/FilterContent/SegmentFilterEditor/SegmentFilterEditor.unit.spec.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/SegmentFilterEditor/SegmentFilterEditor.unit.spec.tsx
@@ -2,6 +2,7 @@ import userEvent from "@testing-library/user-event";
 
 import { createMockMetadata } from "__support__/metadata";
 import { renderWithProviders, screen } from "__support__/ui";
+import type { SegmentItem } from "metabase/querying/filters/hooks/use-filter-modal";
 import * as Lib from "metabase-lib";
 import { createQuery, findSegment } from "metabase-lib/test-helpers";
 import { createMockSegment } from "metabase-types/api/mocks";
@@ -11,8 +12,6 @@ import {
   createSampleDatabase,
 } from "metabase-types/api/mocks/presets";
 
-import type { SegmentItem } from "../types";
-
 import { SegmentFilterEditor } from "./SegmentFilterEditor";
 
 const SEGMENT1 = createMockSegment({
diff --git a/frontend/src/metabase/querying/components/FilterContent/SegmentFilterEditor/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/SegmentFilterEditor/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/SegmentFilterEditor/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/SegmentFilterEditor/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterContent/StringFilterEditor/StringFilterEditor.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/StringFilterEditor/StringFilterEditor.tsx
similarity index 95%
rename from frontend/src/metabase/querying/components/FilterContent/StringFilterEditor/StringFilterEditor.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/StringFilterEditor/StringFilterEditor.tsx
index a540229f100a59b9e59356d559515d0e22089218..c35957f40ee2d131ed318ae50031ebbda188b760 100644
--- a/frontend/src/metabase/querying/components/FilterContent/StringFilterEditor/StringFilterEditor.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/StringFilterEditor/StringFilterEditor.tsx
@@ -2,8 +2,10 @@ import { useMemo, useState } from "react";
 import { t } from "ttag";
 
 import { getColumnIcon } from "metabase/common/utils/columns";
-import type { OperatorType } from "metabase/querying/hooks/use-string-filter";
-import { useStringFilter } from "metabase/querying/hooks/use-string-filter";
+import {
+  type OperatorType,
+  useStringFilter,
+} from "metabase/querying/filters/hooks/use-string-filter";
 import { Grid, MultiAutocomplete } from "metabase/ui";
 import type * as Lib from "metabase-lib";
 
diff --git a/frontend/src/metabase/querying/components/FilterContent/StringFilterEditor/StringFilterEditor.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/StringFilterEditor/StringFilterEditor.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/StringFilterEditor/StringFilterEditor.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/StringFilterEditor/StringFilterEditor.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/StringFilterEditor/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/StringFilterEditor/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/StringFilterEditor/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/StringFilterEditor/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterContent/TimeFilterEditor/TimeFilterEditor.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/TimeFilterEditor/TimeFilterEditor.tsx
similarity index 96%
rename from frontend/src/metabase/querying/components/FilterContent/TimeFilterEditor/TimeFilterEditor.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/TimeFilterEditor/TimeFilterEditor.tsx
index 469348f5e9400ba072eb3cf625084e98f59833f5..70070b7e3dc2e90cb89c15e222464dd5183de276 100644
--- a/frontend/src/metabase/querying/components/FilterContent/TimeFilterEditor/TimeFilterEditor.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/TimeFilterEditor/TimeFilterEditor.tsx
@@ -2,8 +2,10 @@ import { useMemo, useState } from "react";
 import { t } from "ttag";
 
 import { getColumnIcon } from "metabase/common/utils/columns";
-import type { TimeValue } from "metabase/querying/hooks/use-time-filter";
-import { useTimeFilter } from "metabase/querying/hooks/use-time-filter";
+import {
+  type TimeValue,
+  useTimeFilter,
+} from "metabase/querying/filters/hooks/use-time-filter";
 import { Flex, Grid, Text, TimeInput } from "metabase/ui";
 import type * as Lib from "metabase-lib";
 
diff --git a/frontend/src/metabase/querying/components/FilterContent/TimeFilterEditor/TimeFilterEditor.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterModal/TimeFilterEditor/TimeFilterEditor.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/TimeFilterEditor/TimeFilterEditor.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterModal/TimeFilterEditor/TimeFilterEditor.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterContent/TimeFilterEditor/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/TimeFilterEditor/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterContent/TimeFilterEditor/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/TimeFilterEditor/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterModal/constants.ts b/frontend/src/metabase/querying/filters/components/FilterModal/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterModal/constants.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/constants.ts
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/index.ts b/frontend/src/metabase/querying/filters/components/FilterModal/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..24bf8a346e736fe32c633819896107770cd15ab0
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/index.ts
@@ -0,0 +1,4 @@
+export * from "./FilterModal";
+export * from "./FilterModalHeader";
+export * from "./FilterModalBody";
+export * from "./FilterModalFooter";
diff --git a/frontend/src/metabase/querying/filters/components/FilterModal/types.ts b/frontend/src/metabase/querying/filters/components/FilterModal/types.ts
new file mode 100644
index 0000000000000000000000000000000000000000..69f66bfc3e3b4113c7fb6086f6b9d5fb9297bffb
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/types.ts
@@ -0,0 +1,11 @@
+import type * as Lib from "metabase-lib";
+
+export interface FilterEditorProps {
+  query: Lib.Query;
+  stageIndex: number;
+  column: Lib.ColumnMetadata;
+  filter: Lib.FilterClause | undefined;
+  isSearching: boolean;
+  onChange: (filter: Lib.ExpressionClause | undefined) => void;
+  onInput: () => void;
+}
diff --git a/frontend/src/metabase/querying/components/FilterModal/utils/modal.ts b/frontend/src/metabase/querying/filters/components/FilterModal/utils.ts
similarity index 80%
rename from frontend/src/metabase/querying/components/FilterModal/utils/modal.ts
rename to frontend/src/metabase/querying/filters/components/FilterModal/utils.ts
index 25aa3d2f5e19e03c808968f41a2a93c1c4b681cc..d9aefce37b0ceaa0b72b730549be6e6db13f6568 100644
--- a/frontend/src/metabase/querying/components/FilterModal/utils/modal.ts
+++ b/frontend/src/metabase/querying/filters/components/FilterModal/utils.ts
@@ -1,6 +1,6 @@
 import { t } from "ttag";
 
-import type { GroupItem } from "metabase/querying/components/FilterContent";
+import type { GroupItem } from "metabase/querying/filters/hooks/use-filter-modal";
 
 export function getModalTitle(groupItems: GroupItem[]) {
   return groupItems.length === 1
diff --git a/frontend/src/metabase/querying/components/FilterPanel/FilterPanel.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanel.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/FilterPanel.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanel.styled.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPanel/FilterPanel.tsx b/frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanel.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/FilterPanel.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanel.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPanel/FilterPanelButton/FilterPanelButton.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelButton/FilterPanelButton.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/FilterPanelButton/FilterPanelButton.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelButton/FilterPanelButton.styled.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPanel/FilterPanelButton/FilterPanelButton.tsx b/frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelButton/FilterPanelButton.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/FilterPanelButton/FilterPanelButton.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelButton/FilterPanelButton.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPanel/FilterPanelButton/FilterPanelButton.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelButton/FilterPanelButton.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/FilterPanelButton/FilterPanelButton.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelButton/FilterPanelButton.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPanel/FilterPanelButton/index.ts b/frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelButton/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/FilterPanelButton/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelButton/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPanel/FilterPanelPopover/FilterPanelPopover.tsx b/frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelPopover/FilterPanelPopover.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/FilterPanelPopover/FilterPanelPopover.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelPopover/FilterPanelPopover.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPanel/FilterPanelPopover/index.ts b/frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelPopover/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/FilterPanelPopover/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPanel/FilterPanelPopover/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPanel/FilterPill/FilterPill.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterPanel/FilterPill/FilterPill.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/FilterPill/FilterPill.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPanel/FilterPill/FilterPill.styled.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPanel/FilterPill/FilterPill.tsx b/frontend/src/metabase/querying/filters/components/FilterPanel/FilterPill/FilterPill.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/FilterPill/FilterPill.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPanel/FilterPill/FilterPill.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPanel/FilterPill/index.ts b/frontend/src/metabase/querying/filters/components/FilterPanel/FilterPill/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/FilterPill/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPanel/FilterPill/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPanel/index.ts b/frontend/src/metabase/querying/filters/components/FilterPanel/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPanel/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPanel/types.ts b/frontend/src/metabase/querying/filters/components/FilterPanel/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/types.ts
rename to frontend/src/metabase/querying/filters/components/FilterPanel/types.ts
diff --git a/frontend/src/metabase/querying/components/FilterPanel/utils.ts b/frontend/src/metabase/querying/filters/components/FilterPanel/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPanel/utils.ts
rename to frontend/src/metabase/querying/filters/components/FilterPanel/utils.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/BooleanFilterPicker/BooleanFilterPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/BooleanFilterPicker/BooleanFilterPicker.tsx
similarity index 95%
rename from frontend/src/metabase/querying/components/FilterPicker/BooleanFilterPicker/BooleanFilterPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/BooleanFilterPicker/BooleanFilterPicker.tsx
index 6e8b88100ef29345f19d9af1a06208afe4000eb8..8cd44f8e9c90b7695777069d2640f1f22f572bcb 100644
--- a/frontend/src/metabase/querying/components/FilterPicker/BooleanFilterPicker/BooleanFilterPicker.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterPicker/BooleanFilterPicker/BooleanFilterPicker.tsx
@@ -2,7 +2,7 @@ import type { FormEvent } from "react";
 import { useMemo } from "react";
 import { t } from "ttag";
 
-import { useBooleanOptionFilter } from "metabase/querying/hooks/use-boolean-option-filter";
+import { useBooleanOptionFilter } from "metabase/querying/filters/hooks/use-boolean-option-filter";
 import { Box, Button, Icon, Radio, Stack } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
diff --git a/frontend/src/metabase/querying/components/FilterPicker/BooleanFilterPicker/BooleanFilterPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/BooleanFilterPicker/BooleanFilterPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/BooleanFilterPicker/BooleanFilterPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/BooleanFilterPicker/BooleanFilterPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/BooleanFilterPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/BooleanFilterPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/BooleanFilterPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/BooleanFilterPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/CoordinateColumnPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/CoordinateColumnPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/CoordinateColumnPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/CoordinateColumnPicker.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/types.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/types.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/types.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/utils.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateColumnPicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateFilterPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateFilterPicker.tsx
similarity index 97%
rename from frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateFilterPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateFilterPicker.tsx
index 141d5ef1e6361efc06e9ffba9f9e493f52c5685c..ce44f49fcc17a8d800fa26ce6725cd7619da2138 100644
--- a/frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateFilterPicker.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateFilterPicker.tsx
@@ -3,8 +3,10 @@ import { useMemo } from "react";
 import { t } from "ttag";
 
 import { isNumber } from "metabase/lib/types";
-import type { NumberValue } from "metabase/querying/hooks/use-coordinate-filter";
-import { useCoordinateFilter } from "metabase/querying/hooks/use-coordinate-filter";
+import {
+  type NumberValue,
+  useCoordinateFilter,
+} from "metabase/querying/filters/hooks/use-coordinate-filter";
 import { Box, Flex, NumberInput, Stack, Text } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
diff --git a/frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateFilterPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateFilterPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/CoordinateFilterPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/CoordinateFilterPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/CoordinateFilterPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/CoordinateFilterPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/DateFilterPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/DateFilterPicker.tsx
similarity index 84%
rename from frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/DateFilterPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/DateFilterPicker.tsx
index 69315fb6d625636f0149b9bc5b0fd1ac15eba539..5e16fc89a118820a19370353d721fbfa3990ed82 100644
--- a/frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/DateFilterPicker.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/DateFilterPicker.tsx
@@ -1,11 +1,10 @@
 import { useMemo } from "react";
 
-import type { DatePickerValue } from "metabase/querying/components/DatePicker";
-import { DatePicker } from "metabase/querying/components/DatePicker";
-import { useDateFilter } from "metabase/querying/hooks/use-date-filter";
+import { useDateFilter } from "metabase/querying/filters/hooks/use-date-filter";
 import { PopoverBackButton } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
+import { DatePicker, type DatePickerValue } from "../../DatePicker";
 import type { FilterPickerWidgetProps } from "../types";
 
 export function DateFilterPicker({
diff --git a/frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/DateFilterPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/DateFilterPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/DateFilterPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/DateFilterPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/SimpleDateFilterPicker/SimpleDateFilterPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/SimpleDateFilterPicker/SimpleDateFilterPicker.tsx
similarity index 79%
rename from frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/SimpleDateFilterPicker/SimpleDateFilterPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/SimpleDateFilterPicker/SimpleDateFilterPicker.tsx
index 207806ac3f706ecb97c345252c1f7f1b21df285e..1987ce9e4d8a3f1e3c0ecb29d66c2a2377586bbd 100644
--- a/frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/SimpleDateFilterPicker/SimpleDateFilterPicker.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/SimpleDateFilterPicker/SimpleDateFilterPicker.tsx
@@ -1,6 +1,8 @@
-import type { DatePickerValue } from "metabase/querying/components/DatePicker";
-import { SimpleDatePicker } from "metabase/querying/components/DatePicker";
-import { useDateFilter } from "metabase/querying/hooks/use-date-filter";
+import {
+  type DatePickerValue,
+  SimpleDatePicker,
+} from "metabase/querying/filters/components/DatePicker";
+import { useDateFilter } from "metabase/querying/filters/hooks/use-date-filter";
 import type * as Lib from "metabase-lib";
 
 interface SimpleDateFilterPickerProps {
diff --git a/frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/SimpleDateFilterPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/SimpleDateFilterPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/SimpleDateFilterPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/SimpleDateFilterPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/DateFilterPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/DateFilterPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.tsx
similarity index 95%
rename from frontend/src/metabase/querying/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.tsx
index 534388e5ed1b692c2c1df2b55a125017d2a1d17e..cf156ef668fc96671a13d0a978143be0f62c8c76 100644
--- a/frontend/src/metabase/querying/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.tsx
@@ -1,10 +1,10 @@
 import type { FormEvent } from "react";
 import { useMemo } from "react";
 
+import { useDefaultFilter } from "metabase/querying/filters/hooks/use-default-filter";
 import { Box, Radio, Stack } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
-import { useDefaultFilter } from "../../../hooks/use-default-filter";
 import { FilterPickerFooter } from "../FilterPickerFooter";
 import { FilterPickerHeader } from "../FilterPickerHeader";
 import { MIN_WIDTH } from "../constants";
diff --git a/frontend/src/metabase/querying/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.unit.spec.tsx
similarity index 98%
rename from frontend/src/metabase/querying/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.unit.spec.tsx
index 8a4c27a6a35fe55ff60e820d26bddc5c4f47767d..2db586c6e9545f8818888ce07390c689bee0194d 100644
--- a/frontend/src/metabase/querying/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.unit.spec.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterPicker/DefaultFilterPicker/DefaultFilterPicker.unit.spec.tsx
@@ -1,13 +1,14 @@
 import userEvent from "@testing-library/user-event";
 
 import { renderWithProviders, screen } from "__support__/ui";
+import * as Lib from "metabase-lib";
+
 import {
   createQuery,
   createQueryWithDefaultFilter,
   findUnknownColumn,
   storeInitialState,
-} from "metabase/querying/components/FilterPicker/test-utils";
-import * as Lib from "metabase-lib";
+} from "../test-utils";
 
 import { DefaultFilterPicker } from "./DefaultFilterPicker";
 
diff --git a/frontend/src/metabase/querying/components/FilterPicker/DefaultFilterPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/DefaultFilterPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/DefaultFilterPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/DefaultFilterPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.styled.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterColumnPicker/FilterColumnPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterColumnPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterColumnPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterColumnPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterOperatorPicker/FilterOperatorPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterOperatorPicker/FilterOperatorPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterOperatorPicker/FilterOperatorPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterOperatorPicker/FilterOperatorPicker.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterOperatorPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterOperatorPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterOperatorPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterOperatorPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterPicker.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterPickerBody/FilterPickerBody.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerBody/FilterPickerBody.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterPickerBody/FilterPickerBody.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerBody/FilterPickerBody.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterPickerBody/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerBody/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterPickerBody/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerBody/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterPickerFooter/FilterPickerFooter.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerFooter/FilterPickerFooter.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterPickerFooter/FilterPickerFooter.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerFooter/FilterPickerFooter.styled.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterPickerFooter/FilterPickerFooter.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerFooter/FilterPickerFooter.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterPickerFooter/FilterPickerFooter.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerFooter/FilterPickerFooter.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterPickerFooter/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerFooter/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterPickerFooter/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerFooter/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterPickerHeader/FilterPickerHeader.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerHeader/FilterPickerHeader.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterPickerHeader/FilterPickerHeader.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerHeader/FilterPickerHeader.styled.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterPickerHeader/FilterPickerHeader.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerHeader/FilterPickerHeader.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterPickerHeader/FilterPickerHeader.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerHeader/FilterPickerHeader.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/FilterPickerHeader/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerHeader/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/FilterPickerHeader/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/FilterPickerHeader/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/NumberFilterPicker/NumberFilterPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/NumberFilterPicker/NumberFilterPicker.tsx
similarity index 96%
rename from frontend/src/metabase/querying/components/FilterPicker/NumberFilterPicker/NumberFilterPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/NumberFilterPicker/NumberFilterPicker.tsx
index 80fa846215f0cf8529d80a427940308d57e19435..56d0b2ba3a6d8d962450a58a4d6c40dd2e9a264c 100644
--- a/frontend/src/metabase/querying/components/FilterPicker/NumberFilterPicker/NumberFilterPicker.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterPicker/NumberFilterPicker/NumberFilterPicker.tsx
@@ -3,8 +3,10 @@ import { useMemo } from "react";
 import { t } from "ttag";
 
 import { isNumber } from "metabase/lib/types";
-import type { NumberValue } from "metabase/querying/hooks/use-number-filter";
-import { useNumberFilter } from "metabase/querying/hooks/use-number-filter";
+import {
+  type NumberValue,
+  useNumberFilter,
+} from "metabase/querying/filters/hooks/use-number-filter";
 import { Box, Flex, NumberInput, Text } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
diff --git a/frontend/src/metabase/querying/components/FilterPicker/NumberFilterPicker/NumberFilterPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/NumberFilterPicker/NumberFilterPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/NumberFilterPicker/NumberFilterPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/NumberFilterPicker/NumberFilterPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/NumberFilterPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/NumberFilterPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/NumberFilterPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/NumberFilterPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/StringFilterPicker/StringFilterPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/StringFilterPicker/StringFilterPicker.tsx
similarity index 96%
rename from frontend/src/metabase/querying/components/FilterPicker/StringFilterPicker/StringFilterPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/StringFilterPicker/StringFilterPicker.tsx
index 607a27d3d2bd8ef2abd1a6469b6470d329ac9317..72f1278df522f8c45f85c5421d04989fc0fd3299 100644
--- a/frontend/src/metabase/querying/components/FilterPicker/StringFilterPicker/StringFilterPicker.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterPicker/StringFilterPicker/StringFilterPicker.tsx
@@ -2,8 +2,10 @@ import type { FormEvent } from "react";
 import { useMemo } from "react";
 import { t } from "ttag";
 
-import type { OperatorType } from "metabase/querying/hooks/use-string-filter";
-import { useStringFilter } from "metabase/querying/hooks/use-string-filter";
+import {
+  type OperatorType,
+  useStringFilter,
+} from "metabase/querying/filters/hooks/use-string-filter";
 import { Box, Checkbox, Flex, MultiAutocomplete } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
diff --git a/frontend/src/metabase/querying/components/FilterPicker/StringFilterPicker/StringFilterPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/StringFilterPicker/StringFilterPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/StringFilterPicker/StringFilterPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/StringFilterPicker/StringFilterPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/StringFilterPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/StringFilterPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/StringFilterPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/StringFilterPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/TimeFilterPicker/TimeFilterPicker.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/TimeFilterPicker/TimeFilterPicker.tsx
similarity index 95%
rename from frontend/src/metabase/querying/components/FilterPicker/TimeFilterPicker/TimeFilterPicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/TimeFilterPicker/TimeFilterPicker.tsx
index a6f53f7702fcc0bd1a53ebb588d7a0b1397fb959..4aabd3e30a273959584ce0ebf088a56e44c77d8d 100644
--- a/frontend/src/metabase/querying/components/FilterPicker/TimeFilterPicker/TimeFilterPicker.tsx
+++ b/frontend/src/metabase/querying/filters/components/FilterPicker/TimeFilterPicker/TimeFilterPicker.tsx
@@ -2,8 +2,10 @@ import type { FormEvent } from "react";
 import { useMemo } from "react";
 import { t } from "ttag";
 
-import type { TimeValue } from "metabase/querying/hooks/use-time-filter";
-import { useTimeFilter } from "metabase/querying/hooks/use-time-filter";
+import {
+  type TimeValue,
+  useTimeFilter,
+} from "metabase/querying/filters/hooks/use-time-filter";
 import { Box, Flex, Text, TimeInput } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
diff --git a/frontend/src/metabase/querying/components/FilterPicker/TimeFilterPicker/TimeFilterPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterPicker/TimeFilterPicker/TimeFilterPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/TimeFilterPicker/TimeFilterPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterPicker/TimeFilterPicker/TimeFilterPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterPicker/TimeFilterPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/TimeFilterPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/TimeFilterPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/TimeFilterPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/constants.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/constants.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/constants.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/test-utils.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/test-utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/test-utils.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/test-utils.ts
diff --git a/frontend/src/metabase/querying/components/FilterPicker/types.ts b/frontend/src/metabase/querying/filters/components/FilterPicker/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterPicker/types.ts
rename to frontend/src/metabase/querying/filters/components/FilterPicker/types.ts
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/FilterValuePicker.tsx b/frontend/src/metabase/querying/filters/components/FilterValuePicker/FilterValuePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/FilterValuePicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/FilterValuePicker.tsx
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/FilterValuePicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/FilterValuePicker/FilterValuePicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/FilterValuePicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/FilterValuePicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/ListValuePicker/ListValuePicker.styled.tsx b/frontend/src/metabase/querying/filters/components/FilterValuePicker/ListValuePicker/ListValuePicker.styled.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/ListValuePicker/ListValuePicker.styled.tsx
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/ListValuePicker/ListValuePicker.styled.tsx
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/ListValuePicker/ListValuePicker.tsx b/frontend/src/metabase/querying/filters/components/FilterValuePicker/ListValuePicker/ListValuePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/ListValuePicker/ListValuePicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/ListValuePicker/ListValuePicker.tsx
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/ListValuePicker/constants.ts b/frontend/src/metabase/querying/filters/components/FilterValuePicker/ListValuePicker/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/ListValuePicker/constants.ts
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/ListValuePicker/constants.ts
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/ListValuePicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterValuePicker/ListValuePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/ListValuePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/ListValuePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/ListValuePicker/utils.ts b/frontend/src/metabase/querying/filters/components/FilterValuePicker/ListValuePicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/ListValuePicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/ListValuePicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/SearchValuePicker/SearchValuePicker.tsx b/frontend/src/metabase/querying/filters/components/FilterValuePicker/SearchValuePicker/SearchValuePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/SearchValuePicker/SearchValuePicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/SearchValuePicker/SearchValuePicker.tsx
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/SearchValuePicker/constants.ts b/frontend/src/metabase/querying/filters/components/FilterValuePicker/SearchValuePicker/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/SearchValuePicker/constants.ts
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/SearchValuePicker/constants.ts
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/SearchValuePicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterValuePicker/SearchValuePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/SearchValuePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/SearchValuePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/SearchValuePicker/utils.ts b/frontend/src/metabase/querying/filters/components/FilterValuePicker/SearchValuePicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/SearchValuePicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/SearchValuePicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/StaticValuePicker/StaticValuePicker.tsx b/frontend/src/metabase/querying/filters/components/FilterValuePicker/StaticValuePicker/StaticValuePicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/StaticValuePicker/StaticValuePicker.tsx
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/StaticValuePicker/StaticValuePicker.tsx
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/StaticValuePicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterValuePicker/StaticValuePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/StaticValuePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/StaticValuePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/index.ts b/frontend/src/metabase/querying/filters/components/FilterValuePicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/index.ts
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/index.ts
diff --git a/frontend/src/metabase/querying/components/FilterValuePicker/utils.ts b/frontend/src/metabase/querying/filters/components/FilterValuePicker/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/FilterValuePicker/utils.ts
rename to frontend/src/metabase/querying/filters/components/FilterValuePicker/utils.ts
diff --git a/frontend/src/metabase/querying/components/TemporalUnitPicker/TemporalUnitPicker.tsx b/frontend/src/metabase/querying/filters/components/TemporalUnitPicker/TemporalUnitPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/TemporalUnitPicker/TemporalUnitPicker.tsx
rename to frontend/src/metabase/querying/filters/components/TemporalUnitPicker/TemporalUnitPicker.tsx
diff --git a/frontend/src/metabase/querying/components/TemporalUnitPicker/TemporalUnitPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/TemporalUnitPicker/TemporalUnitPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/TemporalUnitPicker/TemporalUnitPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/TemporalUnitPicker/TemporalUnitPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/TemporalUnitPicker/index.ts b/frontend/src/metabase/querying/filters/components/TemporalUnitPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/TemporalUnitPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/TemporalUnitPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesBucketPicker/TimeseriesBucketPicker.tsx b/frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesBucketPicker/TimeseriesBucketPicker.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesBucketPicker/TimeseriesBucketPicker.tsx
rename to frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesBucketPicker/TimeseriesBucketPicker.tsx
diff --git a/frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesBucketPicker/TimeseriesBucketPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesBucketPicker/TimeseriesBucketPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesBucketPicker/TimeseriesBucketPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesBucketPicker/TimeseriesBucketPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesBucketPicker/index.ts b/frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesBucketPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesBucketPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesBucketPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesChrome.tsx b/frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesChrome.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesChrome.tsx
rename to frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesChrome.tsx
diff --git a/frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesChrome.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesChrome.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesChrome.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesChrome.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesFilterPicker/TimeseriesFilterPicker.tsx b/frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesFilterPicker/TimeseriesFilterPicker.tsx
similarity index 94%
rename from frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesFilterPicker/TimeseriesFilterPicker.tsx
rename to frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesFilterPicker/TimeseriesFilterPicker.tsx
index c8f7328822d0150148f99f79494dabf59accf470..00cf50930c75346e87c62e23674e2bdc24afaa2b 100644
--- a/frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesFilterPicker/TimeseriesFilterPicker.tsx
+++ b/frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesFilterPicker/TimeseriesFilterPicker.tsx
@@ -1,10 +1,11 @@
 import { useMemo, useState } from "react";
 import { t } from "ttag";
 
-import { SimpleDateFilterPicker } from "metabase/querying/components/FilterPicker";
 import { Button, Icon, Popover } from "metabase/ui";
 import * as Lib from "metabase-lib";
 
+import { SimpleDateFilterPicker } from "../../FilterPicker";
+
 export interface TimeseriesFilterPickerProps {
   query: Lib.Query;
   stageIndex: number;
diff --git a/frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesFilterPicker/TimeseriesFilterPicker.unit.spec.tsx b/frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesFilterPicker/TimeseriesFilterPicker.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesFilterPicker/TimeseriesFilterPicker.unit.spec.tsx
rename to frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesFilterPicker/TimeseriesFilterPicker.unit.spec.tsx
diff --git a/frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesFilterPicker/index.ts b/frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesFilterPicker/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/TimeseriesChrome/TimeseriesFilterPicker/index.ts
rename to frontend/src/metabase/querying/filters/components/TimeseriesChrome/TimeseriesFilterPicker/index.ts
diff --git a/frontend/src/metabase/querying/components/TimeseriesChrome/index.ts b/frontend/src/metabase/querying/filters/components/TimeseriesChrome/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/TimeseriesChrome/index.ts
rename to frontend/src/metabase/querying/filters/components/TimeseriesChrome/index.ts
diff --git a/frontend/src/metabase/querying/components/TimeseriesChrome/utils.ts b/frontend/src/metabase/querying/filters/components/TimeseriesChrome/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/components/TimeseriesChrome/utils.ts
rename to frontend/src/metabase/querying/filters/components/TimeseriesChrome/utils.ts
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-operator-filter/constants.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-boolean-operator-filter/constants.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/constants.ts
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-operator-filter/index.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-boolean-operator-filter/index.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/index.ts
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-operator-filter/types.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/types.ts
similarity index 70%
rename from frontend/src/metabase/querying/hooks/use-boolean-operator-filter/types.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/types.ts
index d70ca2fa81894007288b569fa532cc800aca880c..112f82ed0925c1b046439183116f1757bbd04678 100644
--- a/frontend/src/metabase/querying/hooks/use-boolean-operator-filter/types.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/types.ts
@@ -1,4 +1,4 @@
-import type { FilterOperatorOption } from "metabase/querying/utils/filters";
+import type { FilterOperatorOption } from "metabase/querying/filters/utils";
 import type * as Lib from "metabase-lib";
 
 export interface OperatorOption
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-operator-filter/use-boolean-operator-filter.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/use-boolean-operator-filter.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-boolean-operator-filter/use-boolean-operator-filter.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/use-boolean-operator-filter.ts
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-operator-filter/use-boolean-operator-filter.unit.spec.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/use-boolean-operator-filter.unit.spec.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-boolean-operator-filter/use-boolean-operator-filter.unit.spec.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/use-boolean-operator-filter.unit.spec.ts
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-operator-filter/utils.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/utils.ts
similarity index 97%
rename from frontend/src/metabase/querying/hooks/use-boolean-operator-filter/utils.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/utils.ts
index 710dd0607e21f1e51eddc8b921b6590c41661a7e..225face7d0e97919fa9b80cf8c6c5a569cdcda2f 100644
--- a/frontend/src/metabase/querying/hooks/use-boolean-operator-filter/utils.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-boolean-operator-filter/utils.ts
@@ -1,7 +1,7 @@
 import {
   getAvailableOperatorOptions,
   getDefaultAvailableOperator,
-} from "metabase/querying/utils/filters";
+} from "metabase/querying/filters/utils";
 import * as Lib from "metabase-lib";
 
 import { OPERATOR_OPTIONS } from "./constants";
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-option-filter/constants.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-boolean-option-filter/constants.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/constants.ts
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-option-filter/index.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-boolean-option-filter/index.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/index.ts
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-option-filter/types.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/types.ts
similarity index 76%
rename from frontend/src/metabase/querying/hooks/use-boolean-option-filter/types.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/types.ts
index 7bf6e8cbf32f291758677c613626c7fca8d37d9d..5f9fe5c9779738319f3e827a28530bb6a3fb8904 100644
--- a/frontend/src/metabase/querying/hooks/use-boolean-option-filter/types.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/types.ts
@@ -1,4 +1,4 @@
-import type { FilterOperatorOption } from "metabase/querying/utils/filters";
+import type { FilterOperatorOption } from "metabase/querying/filters/utils";
 import type * as Lib from "metabase-lib";
 
 export type OptionType = "true" | "false" | "is-null" | "not-null";
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-option-filter/use-boolean-option-filter.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/use-boolean-option-filter.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-boolean-option-filter/use-boolean-option-filter.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/use-boolean-option-filter.ts
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-option-filter/use-boolean-option-filter.unit.spec.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/use-boolean-option-filter.unit.spec.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-boolean-option-filter/use-boolean-option-filter.unit.spec.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/use-boolean-option-filter.unit.spec.ts
diff --git a/frontend/src/metabase/querying/hooks/use-boolean-option-filter/utils.ts b/frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/utils.ts
similarity index 95%
rename from frontend/src/metabase/querying/hooks/use-boolean-option-filter/utils.ts
rename to frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/utils.ts
index 7056006499faaa8ea45eb979e184da49a0c5bf52..a3b0d162dbbb48ac074eab814afd38aa5b68c93e 100644
--- a/frontend/src/metabase/querying/hooks/use-boolean-option-filter/utils.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-boolean-option-filter/utils.ts
@@ -1,4 +1,4 @@
-import { getAvailableOperatorOptions } from "metabase/querying/utils/filters";
+import { getAvailableOperatorOptions } from "metabase/querying/filters/utils";
 import * as Lib from "metabase-lib";
 
 import { OPERATOR_OPTIONS } from "./constants";
diff --git a/frontend/src/metabase/querying/hooks/use-coordinate-filter/constants.ts b/frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-coordinate-filter/constants.ts
rename to frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/constants.ts
diff --git a/frontend/src/metabase/querying/hooks/use-coordinate-filter/index.ts b/frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-coordinate-filter/index.ts
rename to frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/index.ts
diff --git a/frontend/src/metabase/querying/hooks/use-coordinate-filter/types.ts b/frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/types.ts
similarity index 79%
rename from frontend/src/metabase/querying/hooks/use-coordinate-filter/types.ts
rename to frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/types.ts
index bc88f54322fae6a5c5d52445ab2e4b99bc7a7f6e..aa880668fb5deb667c4704f8f5c663a8a111028a 100644
--- a/frontend/src/metabase/querying/hooks/use-coordinate-filter/types.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/types.ts
@@ -1,4 +1,4 @@
-import type { FilterOperatorOption } from "metabase/querying/utils/filters";
+import type { FilterOperatorOption } from "metabase/querying/filters/utils";
 
 type CoordinatePickerOperator =
   | "="
diff --git a/frontend/src/metabase/querying/hooks/use-coordinate-filter/use-coordinate-filter.ts b/frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/use-coordinate-filter.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-coordinate-filter/use-coordinate-filter.ts
rename to frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/use-coordinate-filter.ts
diff --git a/frontend/src/metabase/querying/hooks/use-coordinate-filter/use-coordinate-filter.unit.spec.ts b/frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/use-coordinate-filter.unit.spec.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-coordinate-filter/use-coordinate-filter.unit.spec.ts
rename to frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/use-coordinate-filter.unit.spec.ts
diff --git a/frontend/src/metabase/querying/hooks/use-coordinate-filter/utils.ts b/frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/utils.ts
similarity index 99%
rename from frontend/src/metabase/querying/hooks/use-coordinate-filter/utils.ts
rename to frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/utils.ts
index e5fff744bcc1a1958a55f6367570b0312afafde3..d9ebf2ce861a696fbfca50b925db9a27988015c8 100644
--- a/frontend/src/metabase/querying/hooks/use-coordinate-filter/utils.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-coordinate-filter/utils.ts
@@ -1,7 +1,7 @@
 import {
   getAvailableOperatorOptions,
   getDefaultAvailableOperator,
-} from "metabase/querying/utils/filters";
+} from "metabase/querying/filters/utils";
 import * as Lib from "metabase-lib";
 
 import { OPERATOR_OPTIONS } from "./constants";
diff --git a/frontend/src/metabase/querying/hooks/use-date-filter/index.ts b/frontend/src/metabase/querying/filters/hooks/use-date-filter/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-date-filter/index.ts
rename to frontend/src/metabase/querying/filters/hooks/use-date-filter/index.ts
diff --git a/frontend/src/metabase/querying/hooks/use-date-filter/use-date-filter.ts b/frontend/src/metabase/querying/filters/hooks/use-date-filter/use-date-filter.ts
similarity index 92%
rename from frontend/src/metabase/querying/hooks/use-date-filter/use-date-filter.ts
rename to frontend/src/metabase/querying/filters/hooks/use-date-filter/use-date-filter.ts
index d9146fff9b39fb20a0e8a10501f994a45648fd38..5c587d78e82a11598d6ed0034d6c8e712a5dc7c3 100644
--- a/frontend/src/metabase/querying/hooks/use-date-filter/use-date-filter.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-date-filter/use-date-filter.ts
@@ -1,8 +1,9 @@
 import { useMemo } from "react";
 
-import type { DatePickerValue } from "metabase/querying/components/DatePicker";
 import type * as Lib from "metabase-lib";
 
+import type { DatePickerValue } from "../../components/DatePicker";
+
 import {
   getFilterClause,
   getPickerOperators,
diff --git a/frontend/src/metabase/querying/hooks/use-date-filter/use-date-filter.unit.spec.ts b/frontend/src/metabase/querying/filters/hooks/use-date-filter/use-date-filter.unit.spec.ts
similarity index 99%
rename from frontend/src/metabase/querying/hooks/use-date-filter/use-date-filter.unit.spec.ts
rename to frontend/src/metabase/querying/filters/hooks/use-date-filter/use-date-filter.unit.spec.ts
index 84194a346821d1bac07fdf8c8fc10164c02facf5..1dcbe280d4e566289ab9436e4c466cb530db9a1b 100644
--- a/frontend/src/metabase/querying/hooks/use-date-filter/use-date-filter.unit.spec.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-date-filter/use-date-filter.unit.spec.ts
@@ -1,6 +1,5 @@
 import { renderHook } from "@testing-library/react-hooks";
 
-import type { DatePickerValue } from "metabase/querying/components/DatePicker";
 import * as Lib from "metabase-lib";
 import {
   columnFinder,
@@ -8,6 +7,8 @@ import {
   createQueryWithClauses,
 } from "metabase-lib/test-helpers";
 
+import type { DatePickerValue } from "../../components/DatePicker";
+
 import { useDateFilter } from "./use-date-filter";
 
 describe("useDateFilter", () => {
diff --git a/frontend/src/metabase/querying/hooks/use-date-filter/utils.ts b/frontend/src/metabase/querying/filters/hooks/use-date-filter/utils.ts
similarity index 93%
rename from frontend/src/metabase/querying/hooks/use-date-filter/utils.ts
rename to frontend/src/metabase/querying/filters/hooks/use-date-filter/utils.ts
index 7dde522413d31f671ee43faf9716a28eb55649d1..88ace7090399c62caf55ba5aa32ddf26e92a8601 100644
--- a/frontend/src/metabase/querying/hooks/use-date-filter/utils.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-date-filter/utils.ts
@@ -1,16 +1,15 @@
-import type {
-  DatePickerExtractionUnit,
-  DatePickerOperator,
-  DatePickerValue,
-  ExcludeDatePickerValue,
-  RelativeDatePickerValue,
-  SpecificDatePickerValue,
-} from "metabase/querying/components/DatePicker";
+import * as Lib from "metabase-lib";
+
 import {
+  type DatePickerExtractionUnit,
+  type DatePickerOperator,
+  type DatePickerValue,
+  type ExcludeDatePickerValue,
+  type RelativeDatePickerValue,
+  type SpecificDatePickerValue,
   isDatePickerExtractionUnit,
   isDatePickerOperator,
-} from "metabase/querying/components/DatePicker";
-import * as Lib from "metabase-lib";
+} from "../../components/DatePicker";
 
 export function getPickerValue(
   query: Lib.Query,
diff --git a/frontend/src/metabase/querying/hooks/use-default-filter/constants.ts b/frontend/src/metabase/querying/filters/hooks/use-default-filter/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-default-filter/constants.ts
rename to frontend/src/metabase/querying/filters/hooks/use-default-filter/constants.ts
diff --git a/frontend/src/metabase/querying/hooks/use-default-filter/index.ts b/frontend/src/metabase/querying/filters/hooks/use-default-filter/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-default-filter/index.ts
rename to frontend/src/metabase/querying/filters/hooks/use-default-filter/index.ts
diff --git a/frontend/src/metabase/querying/hooks/use-default-filter/types.ts b/frontend/src/metabase/querying/filters/hooks/use-default-filter/types.ts
similarity index 62%
rename from frontend/src/metabase/querying/hooks/use-default-filter/types.ts
rename to frontend/src/metabase/querying/filters/hooks/use-default-filter/types.ts
index 3cc15c3629bc30693c2e12e5d93ca508493d3d0f..3f034f5b19802c714f90cfd9cebaf58622fac673 100644
--- a/frontend/src/metabase/querying/hooks/use-default-filter/types.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-default-filter/types.ts
@@ -1,4 +1,4 @@
-import type { FilterOperatorOption } from "metabase/querying/utils/filters";
+import type { FilterOperatorOption } from "metabase/querying/filters/utils";
 import type * as Lib from "metabase-lib";
 
 export type OperatorOption =
diff --git a/frontend/src/metabase/querying/hooks/use-default-filter/use-default-filter.ts b/frontend/src/metabase/querying/filters/hooks/use-default-filter/use-default-filter.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-default-filter/use-default-filter.ts
rename to frontend/src/metabase/querying/filters/hooks/use-default-filter/use-default-filter.ts
diff --git a/frontend/src/metabase/querying/hooks/use-default-filter/use-default-filter.unit.spec.ts b/frontend/src/metabase/querying/filters/hooks/use-default-filter/use-default-filter.unit.spec.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-default-filter/use-default-filter.unit.spec.ts
rename to frontend/src/metabase/querying/filters/hooks/use-default-filter/use-default-filter.unit.spec.ts
diff --git a/frontend/src/metabase/querying/hooks/use-default-filter/utils.ts b/frontend/src/metabase/querying/filters/hooks/use-default-filter/utils.ts
similarity index 95%
rename from frontend/src/metabase/querying/hooks/use-default-filter/utils.ts
rename to frontend/src/metabase/querying/filters/hooks/use-default-filter/utils.ts
index d8ef292fdc33acd6ce434870db6ac29ebab245e6..5c86295ab2f6e4d1fac35c5bed89c8f13b7d8ec2 100644
--- a/frontend/src/metabase/querying/hooks/use-default-filter/utils.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-default-filter/utils.ts
@@ -1,7 +1,7 @@
 import {
   getAvailableOperatorOptions,
   getDefaultAvailableOperator,
-} from "metabase/querying/utils/filters";
+} from "metabase/querying/filters/utils";
 import * as Lib from "metabase-lib";
 
 import { OPERATOR_OPTIONS } from "./constants";
diff --git a/frontend/src/metabase/querying/filters/hooks/use-filter-modal/constants.ts b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/constants.ts
new file mode 100644
index 0000000000000000000000000000000000000000..504ad74395c34e890d55fb98e8740406e0505367
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/constants.ts
@@ -0,0 +1 @@
+export const SEARCH_KEY = "search";
diff --git a/frontend/src/metabase/querying/filters/hooks/use-filter-modal/index.ts b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4d29f0bd2d6c49804db054e6003b15ad2d51da34
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/index.ts
@@ -0,0 +1,2 @@
+export * from "./use-filter-modal";
+export * from "./types";
diff --git a/frontend/src/metabase/querying/components/FilterContent/types.ts b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/types.ts
similarity index 64%
rename from frontend/src/metabase/querying/components/FilterContent/types.ts
rename to frontend/src/metabase/querying/filters/hooks/use-filter-modal/types.ts
index b6ef86ea3718259e24a3f2586fe9a99fbe413a7f..f7e5d783a3373a28292191c0b8340b377dea9d8b 100644
--- a/frontend/src/metabase/querying/components/FilterContent/types.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/types.ts
@@ -21,13 +21,3 @@ export interface GroupItem {
   columnItems: ColumnItem[];
   segmentItems: SegmentItem[];
 }
-
-export interface FilterEditorProps {
-  query: Lib.Query;
-  stageIndex: number;
-  column: Lib.ColumnMetadata;
-  filter: Lib.FilterClause | undefined;
-  isSearching: boolean;
-  onChange: (filter: Lib.ExpressionClause | undefined) => void;
-  onInput: () => void;
-}
diff --git a/frontend/src/metabase/querying/filters/hooks/use-filter-modal/use-filter-modal.ts b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/use-filter-modal.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a23afb0d3304ffa9e14c4f9baf59e27dfb8ad900
--- /dev/null
+++ b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/use-filter-modal.ts
@@ -0,0 +1,81 @@
+import { useMemo, useRef, useState } from "react";
+
+import * as Lib from "metabase-lib";
+
+import { SEARCH_KEY } from "./constants";
+import {
+  appendStageIfAggregated,
+  getGroupItems,
+  hasFilters,
+  isSearchActive,
+  removeFilters,
+  searchGroupItems,
+} from "./utils";
+
+export const useFilterModal = (
+  initialQuery: Lib.Query,
+  onSubmit: (newQuery: Lib.Query) => void,
+) => {
+  const [query, setQuery] = useState(() =>
+    appendStageIfAggregated(initialQuery),
+  );
+  const queryRef = useRef(query);
+  const [version, setVersion] = useState(1);
+  const [isChanged, setIsChanged] = useState(false);
+  const groupItems = useMemo(() => getGroupItems(query), [query]);
+  const [tab, setTab] = useState<string | null>(groupItems[0]?.key);
+  const canRemoveFilters = useMemo(() => hasFilters(query), [query]);
+  const [searchText, setSearchText] = useState("");
+  const isSearching = isSearchActive(searchText);
+
+  const visibleItems = useMemo(
+    () => (isSearching ? searchGroupItems(groupItems, searchText) : groupItems),
+    [groupItems, searchText, isSearching],
+  );
+
+  const handleInput = () => {
+    if (!isChanged) {
+      setIsChanged(true);
+    }
+  };
+
+  const handleChange = (newQuery: Lib.Query) => {
+    setQuery(newQuery);
+    setIsChanged(true);
+    // for handleSubmit to see the latest query if it is called in the same tick
+    queryRef.current = newQuery;
+  };
+
+  const handleReset = () => {
+    handleChange(removeFilters(query));
+    // to reset internal state of filter components
+    setVersion(version + 1);
+  };
+
+  const handleSubmit = () => {
+    onSubmit(Lib.dropEmptyStages(queryRef.current));
+  };
+
+  const handleSearch = (searchText: string) => {
+    setTab(isSearchActive(searchText) ? SEARCH_KEY : groupItems[0]?.key);
+    setSearchText(searchText);
+  };
+
+  return {
+    query,
+    version,
+    isChanged,
+    groupItems,
+    tab,
+    setTab,
+    canRemoveFilters,
+    searchText,
+    isSearching,
+    visibleItems,
+    handleInput,
+    handleChange,
+    handleReset,
+    handleSubmit,
+    handleSearch,
+  };
+};
diff --git a/frontend/src/metabase/querying/components/FilterModal/utils/filters.ts b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/utils/filters.ts
similarity index 96%
rename from frontend/src/metabase/querying/components/FilterModal/utils/filters.ts
rename to frontend/src/metabase/querying/filters/hooks/use-filter-modal/utils/filters.ts
index 20f4d15669cea8b28d3e35ab71966dcfeee6ca8c..ca291598dae3dd27832c699aacdd2c9ab4900bdd 100644
--- a/frontend/src/metabase/querying/components/FilterModal/utils/filters.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/utils/filters.ts
@@ -4,9 +4,10 @@ import {
   getColumnGroupIcon,
   getColumnGroupName,
 } from "metabase/common/utils/column-groups";
-import type { GroupItem } from "metabase/querying/components/FilterContent";
 import * as Lib from "metabase-lib";
 
+import type { GroupItem } from "../types";
+
 export function appendStageIfAggregated(query: Lib.Query) {
   const aggregations = Lib.aggregations(query, -1);
   const breakouts = Lib.breakouts(query, -1);
diff --git a/frontend/src/metabase/querying/components/FilterModal/utils/index.ts b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/utils/index.ts
similarity index 67%
rename from frontend/src/metabase/querying/components/FilterModal/utils/index.ts
rename to frontend/src/metabase/querying/filters/hooks/use-filter-modal/utils/index.ts
index 4f439aa66f5cfb72c06d2e56f98e90fecb32fbb1..a138344d5ce173d961a84c614fe7de9607161c86 100644
--- a/frontend/src/metabase/querying/components/FilterModal/utils/index.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/utils/index.ts
@@ -1,3 +1,2 @@
 export * from "./filters";
-export * from "./modal";
 export * from "./search";
diff --git a/frontend/src/metabase/querying/components/FilterModal/utils/search.ts b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/utils/search.ts
similarity index 92%
rename from frontend/src/metabase/querying/components/FilterModal/utils/search.ts
rename to frontend/src/metabase/querying/filters/hooks/use-filter-modal/utils/search.ts
index 0353fb9548c03929a3f7ff6bf23f0a8a0e1e85f2..62fe8b6b03c8a6cbedb79426780dd2a1c6392105 100644
--- a/frontend/src/metabase/querying/components/FilterModal/utils/search.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-filter-modal/utils/search.ts
@@ -1,8 +1,7 @@
 import { t } from "ttag";
 
-import type { GroupItem } from "metabase/querying/components/FilterContent";
-
 import { SEARCH_KEY } from "../constants";
+import type { GroupItem } from "../types";
 
 export function isSearchActive(searchText: string) {
   return searchText.length > 0;
diff --git a/frontend/src/metabase/querying/hooks/use-number-filter/constants.ts b/frontend/src/metabase/querying/filters/hooks/use-number-filter/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-number-filter/constants.ts
rename to frontend/src/metabase/querying/filters/hooks/use-number-filter/constants.ts
diff --git a/frontend/src/metabase/querying/hooks/use-number-filter/index.ts b/frontend/src/metabase/querying/filters/hooks/use-number-filter/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-number-filter/index.ts
rename to frontend/src/metabase/querying/filters/hooks/use-number-filter/index.ts
diff --git a/frontend/src/metabase/querying/hooks/use-number-filter/types.ts b/frontend/src/metabase/querying/filters/hooks/use-number-filter/types.ts
similarity index 75%
rename from frontend/src/metabase/querying/hooks/use-number-filter/types.ts
rename to frontend/src/metabase/querying/filters/hooks/use-number-filter/types.ts
index 4c94b65f859609a1ebc1593e0710506b86b7f79a..c183170250a7cec0fa9f54f1346b6a1b431350ef 100644
--- a/frontend/src/metabase/querying/hooks/use-number-filter/types.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-number-filter/types.ts
@@ -1,4 +1,4 @@
-import type { FilterOperatorOption } from "metabase/querying/utils/filters";
+import type { FilterOperatorOption } from "metabase/querying/filters/utils";
 import type * as Lib from "metabase-lib";
 
 export interface OperatorOption
diff --git a/frontend/src/metabase/querying/hooks/use-number-filter/use-number-filter.ts b/frontend/src/metabase/querying/filters/hooks/use-number-filter/use-number-filter.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-number-filter/use-number-filter.ts
rename to frontend/src/metabase/querying/filters/hooks/use-number-filter/use-number-filter.ts
diff --git a/frontend/src/metabase/querying/hooks/use-number-filter/use-number-filter.unit.spec.ts b/frontend/src/metabase/querying/filters/hooks/use-number-filter/use-number-filter.unit.spec.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-number-filter/use-number-filter.unit.spec.ts
rename to frontend/src/metabase/querying/filters/hooks/use-number-filter/use-number-filter.unit.spec.ts
diff --git a/frontend/src/metabase/querying/hooks/use-number-filter/utils.ts b/frontend/src/metabase/querying/filters/hooks/use-number-filter/utils.ts
similarity index 98%
rename from frontend/src/metabase/querying/hooks/use-number-filter/utils.ts
rename to frontend/src/metabase/querying/filters/hooks/use-number-filter/utils.ts
index 8e0ad08eec8f21b68ee6a6d4b35b34bb01ead18e..2fda65ff7a0cf017e72114845a535bd9a43a6d3d 100644
--- a/frontend/src/metabase/querying/hooks/use-number-filter/utils.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-number-filter/utils.ts
@@ -1,7 +1,7 @@
 import {
   getAvailableOperatorOptions,
   getDefaultAvailableOperator,
-} from "metabase/querying/utils/filters";
+} from "metabase/querying/filters/utils";
 import * as Lib from "metabase-lib";
 
 import { OPERATOR_OPTIONS } from "./constants";
diff --git a/frontend/src/metabase/querying/hooks/use-string-filter/constants.ts b/frontend/src/metabase/querying/filters/hooks/use-string-filter/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-string-filter/constants.ts
rename to frontend/src/metabase/querying/filters/hooks/use-string-filter/constants.ts
diff --git a/frontend/src/metabase/querying/hooks/use-string-filter/index.ts b/frontend/src/metabase/querying/filters/hooks/use-string-filter/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-string-filter/index.ts
rename to frontend/src/metabase/querying/filters/hooks/use-string-filter/index.ts
diff --git a/frontend/src/metabase/querying/hooks/use-string-filter/types.ts b/frontend/src/metabase/querying/filters/hooks/use-string-filter/types.ts
similarity index 74%
rename from frontend/src/metabase/querying/hooks/use-string-filter/types.ts
rename to frontend/src/metabase/querying/filters/hooks/use-string-filter/types.ts
index c9957bae905007508e0aa20a9822c828266c2e6a..2a6399680e491a072d05f2f698170fce5092487d 100644
--- a/frontend/src/metabase/querying/hooks/use-string-filter/types.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-string-filter/types.ts
@@ -1,4 +1,4 @@
-import type { FilterOperatorOption } from "metabase/querying/utils/filters";
+import type { FilterOperatorOption } from "metabase/querying/filters/utils";
 import type * as Lib from "metabase-lib";
 
 export type OperatorType = "exact" | "partial" | "empty";
diff --git a/frontend/src/metabase/querying/hooks/use-string-filter/use-string-filter.ts b/frontend/src/metabase/querying/filters/hooks/use-string-filter/use-string-filter.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-string-filter/use-string-filter.ts
rename to frontend/src/metabase/querying/filters/hooks/use-string-filter/use-string-filter.ts
diff --git a/frontend/src/metabase/querying/hooks/use-string-filter/use-string-filter.unit.spec.ts b/frontend/src/metabase/querying/filters/hooks/use-string-filter/use-string-filter.unit.spec.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-string-filter/use-string-filter.unit.spec.ts
rename to frontend/src/metabase/querying/filters/hooks/use-string-filter/use-string-filter.unit.spec.ts
diff --git a/frontend/src/metabase/querying/hooks/use-string-filter/utils.ts b/frontend/src/metabase/querying/filters/hooks/use-string-filter/utils.ts
similarity index 98%
rename from frontend/src/metabase/querying/hooks/use-string-filter/utils.ts
rename to frontend/src/metabase/querying/filters/hooks/use-string-filter/utils.ts
index a389592bb321f1d776cf90fc746054089e97aaa5..801a1a321f913bdb0d54db5574b77d7b11c9213c 100644
--- a/frontend/src/metabase/querying/hooks/use-string-filter/utils.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-string-filter/utils.ts
@@ -1,7 +1,7 @@
 import {
   getAvailableOperatorOptions,
   getDefaultAvailableOperator,
-} from "metabase/querying/utils/filters";
+} from "metabase/querying/filters/utils";
 import * as Lib from "metabase-lib";
 
 import { OPERATOR_OPTIONS } from "./constants";
diff --git a/frontend/src/metabase/querying/hooks/use-time-filter/constants.ts b/frontend/src/metabase/querying/filters/hooks/use-time-filter/constants.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-time-filter/constants.ts
rename to frontend/src/metabase/querying/filters/hooks/use-time-filter/constants.ts
diff --git a/frontend/src/metabase/querying/hooks/use-time-filter/index.ts b/frontend/src/metabase/querying/filters/hooks/use-time-filter/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-time-filter/index.ts
rename to frontend/src/metabase/querying/filters/hooks/use-time-filter/index.ts
diff --git a/frontend/src/metabase/querying/hooks/use-time-filter/types.ts b/frontend/src/metabase/querying/filters/hooks/use-time-filter/types.ts
similarity index 72%
rename from frontend/src/metabase/querying/hooks/use-time-filter/types.ts
rename to frontend/src/metabase/querying/filters/hooks/use-time-filter/types.ts
index 7920b882a03d538052a7ef609c77eecd90b0dca2..23b2d15a0cabc7481cc37b607f5edc018fe8258e 100644
--- a/frontend/src/metabase/querying/hooks/use-time-filter/types.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-time-filter/types.ts
@@ -1,4 +1,4 @@
-import type { FilterOperatorOption } from "metabase/querying/utils/filters";
+import type { FilterOperatorOption } from "metabase/querying/filters/utils";
 import type * as Lib from "metabase-lib";
 
 export interface OperatorOption
diff --git a/frontend/src/metabase/querying/hooks/use-time-filter/use-time-filter.ts b/frontend/src/metabase/querying/filters/hooks/use-time-filter/use-time-filter.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-time-filter/use-time-filter.ts
rename to frontend/src/metabase/querying/filters/hooks/use-time-filter/use-time-filter.ts
diff --git a/frontend/src/metabase/querying/hooks/use-time-filter/use-time-filter.unit.spec.ts b/frontend/src/metabase/querying/filters/hooks/use-time-filter/use-time-filter.unit.spec.ts
similarity index 100%
rename from frontend/src/metabase/querying/hooks/use-time-filter/use-time-filter.unit.spec.ts
rename to frontend/src/metabase/querying/filters/hooks/use-time-filter/use-time-filter.unit.spec.ts
diff --git a/frontend/src/metabase/querying/hooks/use-time-filter/utils.ts b/frontend/src/metabase/querying/filters/hooks/use-time-filter/utils.ts
similarity index 98%
rename from frontend/src/metabase/querying/hooks/use-time-filter/utils.ts
rename to frontend/src/metabase/querying/filters/hooks/use-time-filter/utils.ts
index 3e5ea1b27833b061986d3813c019e75aecbdfd2b..ca75cc6553592dde13b9e097db25632f38ad1df2 100644
--- a/frontend/src/metabase/querying/hooks/use-time-filter/utils.ts
+++ b/frontend/src/metabase/querying/filters/hooks/use-time-filter/utils.ts
@@ -4,7 +4,7 @@ import { isNotNull } from "metabase/lib/types";
 import {
   getAvailableOperatorOptions,
   getDefaultAvailableOperator,
-} from "metabase/querying/utils/filters";
+} from "metabase/querying/filters/utils";
 import * as Lib from "metabase-lib";
 
 import { OPERATOR_OPTIONS } from "./constants";
diff --git a/frontend/src/metabase/querying/index.ts b/frontend/src/metabase/querying/filters/index.ts
similarity index 54%
rename from frontend/src/metabase/querying/index.ts
rename to frontend/src/metabase/querying/filters/index.ts
index 4050a73497066c4e29d0494a3e1f2ce68e926ad2..fb7eb831dbe2b2b26bf76886237c8db1ffdae1d0 100644
--- a/frontend/src/metabase/querying/index.ts
+++ b/frontend/src/metabase/querying/filters/index.ts
@@ -1,11 +1,11 @@
-export { FieldPanel } from "./components/FieldPanel";
 export { FilterPanel, FilterPanelButton } from "./components/FilterPanel";
-export { FilterModal } from "./components/FilterModal";
+export {
+  FilterModal,
+  FilterModalHeader,
+  FilterModalBody,
+  FilterModalFooter,
+} from "./components/FilterModal";
+export { useFilterModal } from "./hooks/use-filter-modal";
 export { FilterPicker, FilterPickerBody } from "./components/FilterPicker";
 export { TemporalUnitPicker } from "./components/TemporalUnitPicker";
 export { TimeseriesChrome } from "./components/TimeseriesChrome";
-export { queryDrill } from "./utils/drills";
-export {
-  syncVizSettingsWithQuery,
-  syncVizSettingsWithSeries,
-} from "./utils/viz-settings";
diff --git a/frontend/src/metabase/querying/utils/filters/index.ts b/frontend/src/metabase/querying/filters/utils/index.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/filters/index.ts
rename to frontend/src/metabase/querying/filters/utils/index.ts
diff --git a/frontend/src/metabase/querying/utils/filters/types.ts b/frontend/src/metabase/querying/filters/utils/types.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/filters/types.ts
rename to frontend/src/metabase/querying/filters/utils/types.ts
diff --git a/frontend/src/metabase/querying/utils/filters/utils.ts b/frontend/src/metabase/querying/filters/utils/utils.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/filters/utils.ts
rename to frontend/src/metabase/querying/filters/utils/utils.ts
diff --git a/frontend/src/metabase/querying/utils/drills/automatic-insights-drill/index.ts b/frontend/src/metabase/querying/utils/drills/automatic-insights-drill/index.ts
deleted file mode 100644
index bdcf449daf3324b01b762ff6f3064b5a7b0b3c05..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/automatic-insights-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./automatic-insights-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/column-extract-drill/index.ts b/frontend/src/metabase/querying/utils/drills/column-extract-drill/index.ts
deleted file mode 100644
index 7bd1265de273e4b077e2c1f2970d51e53ac3e48c..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/column-extract-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./column-extract-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/column-filter-drill/index.ts b/frontend/src/metabase/querying/utils/drills/column-filter-drill/index.ts
deleted file mode 100644
index 2cb8dacfc4eb1e81782259d33a4d8263f9d6623f..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/column-filter-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./column-filter-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/combine-columns-drill/index.ts b/frontend/src/metabase/querying/utils/drills/combine-columns-drill/index.ts
deleted file mode 100644
index 0c2c953ec87384666d0a9fc88a61a11e4be9a328..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/combine-columns-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./combine-columns-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/compare-aggregations-drill/index.ts b/frontend/src/metabase/querying/utils/drills/compare-aggregations-drill/index.ts
deleted file mode 100644
index f50395aa615c3ecc855f0ecb1b54a0c3432acd00..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/compare-aggregations-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./compare-aggregations-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/distribution-drill/index.ts b/frontend/src/metabase/querying/utils/drills/distribution-drill/index.ts
deleted file mode 100644
index 8d48023c6a3241f8d5369fb2df292b962d29aaed..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/distribution-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./distribution-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/filter-drill/index.ts b/frontend/src/metabase/querying/utils/drills/filter-drill/index.ts
deleted file mode 100644
index 310fca40b2c7a2c76a02d498c7fdf3fe0a5d69f3..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/filter-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./filter-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/fk-details-drill/index.ts b/frontend/src/metabase/querying/utils/drills/fk-details-drill/index.ts
deleted file mode 100644
index 9ee20b51bb61db23152da30db59781a7abd47e46..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/fk-details-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./fk-details-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/fk-filter-drill/index.ts b/frontend/src/metabase/querying/utils/drills/fk-filter-drill/index.ts
deleted file mode 100644
index 986b3bd3e7dc92533585be743508185912909606..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/fk-filter-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./fk-filter-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/index.ts b/frontend/src/metabase/querying/utils/drills/index.ts
deleted file mode 100644
index d0d06b676846f885ac30e0e12fe4fdea2a22ed14..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { queryDrill } from "./query-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/pivot-drill/index.ts b/frontend/src/metabase/querying/utils/drills/pivot-drill/index.ts
deleted file mode 100644
index e97cc5633ec74eba84e471da2692b733fb20d556..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/pivot-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./pivot-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/pk-drill/index.ts b/frontend/src/metabase/querying/utils/drills/pk-drill/index.ts
deleted file mode 100644
index 872daee6c53800009de679daa9c19900e08d1b0f..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/pk-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./pk-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/quick-filter-drill/index.ts b/frontend/src/metabase/querying/utils/drills/quick-filter-drill/index.ts
deleted file mode 100644
index 5a51092931c9db0d7835fd25c654c5ef194cd4c5..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/quick-filter-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./quick-filter-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/sort-drill/index.ts b/frontend/src/metabase/querying/utils/drills/sort-drill/index.ts
deleted file mode 100644
index add5f3ea599856d73da5720b2075ea58cf30b46b..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/sort-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./sort-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/summarize-column-by-time-drill/index.ts b/frontend/src/metabase/querying/utils/drills/summarize-column-by-time-drill/index.ts
deleted file mode 100644
index 452496ee79fc962915ac047b19b9d208765b4b27..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/summarize-column-by-time-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./summarize-column-by-time-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/summarize-column-drill/index.ts b/frontend/src/metabase/querying/utils/drills/summarize-column-drill/index.ts
deleted file mode 100644
index 71dd2527907415166a8ea65b4dd09cfc22b666a2..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/summarize-column-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./summarize-column-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/underlying-records-drill/index.ts b/frontend/src/metabase/querying/utils/drills/underlying-records-drill/index.ts
deleted file mode 100644
index 691e95078eb028b7fc8156147f634e9e09b1c314..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/underlying-records-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./underlying-records-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/zoom-drill/index.ts b/frontend/src/metabase/querying/utils/drills/zoom-drill/index.ts
deleted file mode 100644
index a177e28a6dfcd8110d07938b0fa854b9a14d8670..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/zoom-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./zoom-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/zoom-in-binning-drill/index.ts b/frontend/src/metabase/querying/utils/drills/zoom-in-binning-drill/index.ts
deleted file mode 100644
index 8b08636f13dfa74bc353ca5b49d4b52ea7ce506f..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/zoom-in-binning-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./zoom-in-binning-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/zoom-in-geographic-drill/index.ts b/frontend/src/metabase/querying/utils/drills/zoom-in-geographic-drill/index.ts
deleted file mode 100644
index 6ecf83a62bcbfcaa43491fd595e07de16d546b62..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/zoom-in-geographic-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./zoom-in-geographic-drill";
diff --git a/frontend/src/metabase/querying/utils/drills/zoom-in-timeseries-drill/index.ts b/frontend/src/metabase/querying/utils/drills/zoom-in-timeseries-drill/index.ts
deleted file mode 100644
index 557c8fe4c0533f61fe24b77684394eda46be2f9b..0000000000000000000000000000000000000000
--- a/frontend/src/metabase/querying/utils/drills/zoom-in-timeseries-drill/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./zoom-in-timeseries-drill";
diff --git a/frontend/src/metabase/querying/utils/viz-settings/index.ts b/frontend/src/metabase/querying/viz-settings/index.ts
similarity index 64%
rename from frontend/src/metabase/querying/utils/viz-settings/index.ts
rename to frontend/src/metabase/querying/viz-settings/index.ts
index 1dbb319b9f70b39243a93b4b48ab1f6174e76a91..eee25495669d89547f8c2c4da2058798710af9e2 100644
--- a/frontend/src/metabase/querying/utils/viz-settings/index.ts
+++ b/frontend/src/metabase/querying/viz-settings/index.ts
@@ -1,4 +1,4 @@
 export {
   syncVizSettingsWithQuery,
   syncVizSettingsWithSeries,
-} from "./sync-viz-settings";
+} from "./utils/sync-viz-settings";
diff --git a/frontend/src/metabase/querying/utils/viz-settings/sync-viz-settings.ts b/frontend/src/metabase/querying/viz-settings/utils/sync-viz-settings.ts
similarity index 100%
rename from frontend/src/metabase/querying/utils/viz-settings/sync-viz-settings.ts
rename to frontend/src/metabase/querying/viz-settings/utils/sync-viz-settings.ts
diff --git a/frontend/src/metabase/querying/utils/viz-settings/sync-viz-settings.unit.spec.tsx b/frontend/src/metabase/querying/viz-settings/utils/sync-viz-settings.unit.spec.tsx
similarity index 100%
rename from frontend/src/metabase/querying/utils/viz-settings/sync-viz-settings.unit.spec.tsx
rename to frontend/src/metabase/querying/viz-settings/utils/sync-viz-settings.unit.spec.tsx
diff --git a/frontend/src/metabase/visualizations/click-actions/Mode/Mode.ts b/frontend/src/metabase/visualizations/click-actions/Mode/Mode.ts
index 2a7ce07ec733a299806183f4e08f48e0bdfa5b76..41715cc49546d9e34da75c4e2f732d50ba3a999b 100644
--- a/frontend/src/metabase/visualizations/click-actions/Mode/Mode.ts
+++ b/frontend/src/metabase/visualizations/click-actions/Mode/Mode.ts
@@ -1,5 +1,5 @@
 import type { SdkPluginsConfig } from "embedding-sdk/lib/plugins";
-import { queryDrill } from "metabase/querying";
+import { queryDrill } from "metabase/querying/drills";
 import type { DrillThruDisplayInfo } from "metabase-lib";
 import type Question from "metabase-lib/v1/Question";
 
diff --git a/frontend/src/metabase/visualizations/components/settings/ChartSettingTableColumns/ChartSettingTableColumns.tsx b/frontend/src/metabase/visualizations/components/settings/ChartSettingTableColumns/ChartSettingTableColumns.tsx
index e95e38e505cf37b7193a648131df3f472e469b7e..ab507b66dd8d1b076783af902eea0e017a092a9f 100644
--- a/frontend/src/metabase/visualizations/components/settings/ChartSettingTableColumns/ChartSettingTableColumns.tsx
+++ b/frontend/src/metabase/visualizations/components/settings/ChartSettingTableColumns/ChartSettingTableColumns.tsx
@@ -1,7 +1,7 @@
 import { useState } from "react";
 import { t } from "ttag";
 
-import { FieldPanel } from "metabase/querying";
+import { FieldPanel } from "metabase/querying/fields";
 import { Button } from "metabase/ui";
 import type * as Lib from "metabase-lib";
 import type Question from "metabase-lib/v1/Question";