diff --git a/src/components/FeaturePanel/EditDialog/EditContent/ComboSearchBox.tsx b/src/components/FeaturePanel/EditDialog/EditContent/ComboSearchBox.tsx
new file mode 100644
index 000000000..7c9272124
--- /dev/null
+++ b/src/components/FeaturePanel/EditDialog/EditContent/ComboSearchBox.tsx
@@ -0,0 +1,107 @@
+import React, { useMemo, useState } from 'react';
+import { InputBase, ListSubheader, MenuItem, Select } from '@mui/material';
+import SearchIcon from '@mui/icons-material/Search';
+import styled from '@emotion/styled';
+import Maki from '../../../utils/Maki';
+import { TranslatedPreset } from './FeatureTypeSelect';
+import { Setter } from '../../../../types';
+import { Preset } from '../../../../services/tagging/types/Presets';
+
+// https://stackoverflow.com/a/70918883/671880
+
+const containsText = (text, searchText) =>
+ text.toLowerCase().indexOf(searchText.toLowerCase()) > -1;
+
+const StyledListSubheader = styled(ListSubheader)`
+ display: flex;
+ align-items: center;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.12);
+ padding: 6px 13px;
+ & :first-child {
+ margin-right: 11px;
+ }
+`;
+
+const emptyOptions = [
+ 'amenity/cafe',
+ 'amenity/restaurant',
+ 'amenity/fast_food',
+ 'amenity/bar',
+ 'shop',
+ 'leisure/park',
+ 'amenity/place_of_worship',
+ 'climbing/route_bottom',
+ 'climbing/route',
+ 'climbing/crag',
+ // 'climbing/area',
+];
+
+const renderOption = (option) =>
+ option && (
+ <>
+
+
+ {option.name}
+ >
+ );
+
+export const ComboSearchBox = ({
+ value,
+ setValue,
+ options,
+}: {
+ value: Preset;
+ setValue: Setter;
+ options: TranslatedPreset[];
+}) => {
+ const [searchText, setSearchText] = useState('');
+ const displayedOptions = useMemo(
+ () =>
+ searchText.length
+ ? options.filter((option) => containsText(option.name, searchText))
+ : emptyOptions.map((presetKey) =>
+ options.find((preset) => preset.presetKey === presetKey),
+ ),
+ [options, searchText],
+ );
+
+ return (
+
+ );
+};
diff --git a/src/components/FeaturePanel/EditDialog/EditContent/EditContent.tsx b/src/components/FeaturePanel/EditDialog/EditContent/EditContent.tsx
index 257b2100a..f9a3dd3b3 100644
--- a/src/components/FeaturePanel/EditDialog/EditContent/EditContent.tsx
+++ b/src/components/FeaturePanel/EditDialog/EditContent/EditContent.tsx
@@ -13,7 +13,7 @@ export const EditContent = () => (
<>