+ {departments.map(department => (
+
+ ))}
+
*/
+}
diff --git a/pro/src/ui-kit/MultiSelect/MultiSelectPanel.tsx b/pro/src/ui-kit/MultiSelect/MultiSelectPanel.tsx
new file mode 100644
index 00000000000..b2558bf13f0
--- /dev/null
+++ b/pro/src/ui-kit/MultiSelect/MultiSelectPanel.tsx
@@ -0,0 +1,101 @@
+import { useMemo, useState } from 'react'
+
+import strokeSearch from 'icons/stroke-search.svg'
+import { BaseCheckbox } from 'ui-kit/form/shared/BaseCheckbox/BaseCheckbox'
+import { BaseInput } from 'ui-kit/form/shared/BaseInput/BaseInput'
+
+import { Option } from './MultiSelect'
+import styles from './MultiSelect.module.scss'
+
+type MultiSelectPanelProps = {
+ className?: string
+ label: string
+ options: (Option & { checked: boolean })[]
+ onOptionSelect: (option: Option | 'all' | undefined) => void
+ hasSearch?: boolean
+ searchExample?: string
+ searchLabel?: string
+ hasSelectAllOptions?: boolean
+}
+
+export const MultiSelectPanel = ({
+ options,
+ onOptionSelect,
+ hasSearch = false,
+ searchExample,
+ searchLabel,
+ hasSelectAllOptions,
+}: MultiSelectPanelProps): JSX.Element => {
+ const [searchValue, setSearchValue] = useState('')
+ const [isSelectAllChecked, setIsSelectAllChecked] = useState(false)
+ const searchedValues = useMemo(
+ () =>
+ options.filter((option) =>
+ option.label.toLowerCase().includes(searchValue.toLowerCase())
+ ),
+ [options, searchValue]
+ )
+
+ const onToggleAllOptions = (checked: boolean) => {
+ if (checked) {
+ onOptionSelect(undefined)
+ } else {
+ onOptionSelect('all')
+ }
+ setIsSelectAllChecked(!checked)
+ }
+
+ const onToggleOption = (option: Option, checked: boolean) => {
+ if (checked) {
+ setIsSelectAllChecked(false)
+ }
+ onOptionSelect(option)
+ }
+
+ return (
+