```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` Размер `Dropdown` задается с помощью свойства `size` . Возможные значения свойства: `"l"` , `"m"` , `"s"` или `"xs"` . ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` Размер `Dropdown` задается с помощью свойства `size` . Возможные значения свойства: `"l"` , `"m"` , `"s"` или `"xs"` . ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` Параметр `placement` может принимать следующие значения : `"top"` , `"right"` , `"bottom"` , `"left"` , `"auto"` . Default value для placement - `"bottom"` . ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` Размер `Dropdown` задается с помощью свойства `size` . Возможные значения свойства: `"l"` , `"m"` , `"s"` или `"xs"` . ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` Параметр `placement` может принимать следующие значения : `"top"` , `"right"` , `"bottom"` , `"left"` , `"auto"` . Default value для placement - `"bottom"` . ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` Параметр `trigger` принимает строку: `"click"` или `"hover"` . Default value - `"click"` . Для примера показано значение `"hover"` . ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` Размер `Dropdown` задается с помощью свойства `size` . Возможные значения свойства: `"l"` , `"m"` , `"s"` или `"xs"` . ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` Параметр `placement` может принимать следующие значения : `"top"` , `"right"` , `"bottom"` , `"left"` , `"auto"` . Default value для placement - `"bottom"` . ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` Параметр `trigger` принимает строку: `"click"` или `"hover"` . Default value - `"click"` . Для примера показано значение `"hover"` . ```tsx import React from 'react'; import { Button, Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; return (
); } ``` Иногда возникает необходимость вынесения выпадающего списка на уровни выше в DOM. К примеру, когда у родительского блока имеется scroll, и список будет обрезаться, чего хотелось бы избежать. Для такой реализации имеется пропс `portal` , который принимает либо `ref` либо `id` html-тега. ```tsx import React, { useRef } from 'react'; import { Dropdown } from '@salutejs/plasma-web'; export function App() { const items = [ { value: 'north_america', label: 'Северная Америка', }, { value: 'south_america', label: 'Южная Америка', items: [ { value: 'brazil', label: 'Бразилия', items: [ { value: 'rio_de_janeiro', label: 'Рио-де-Жанейро', }, { value: 'sao_paulo', label: 'Сан-Паулу', }, ], }, { value: 'argentina', label: 'Аргентина', }, ], }, ]; const ref = useRef(null) return (
); } ```