Компонент для создания интерактивных списков с поддержкой иерархических данных, клавиатурной навигации и функциональности поиска.

List управляет отображением структурированных данных с возможностью навигации, выбора элементов и взаимодействия через клавиатуру и мышь. Компонент поддерживает различные типы элементов (обычные элементы, группы, меню, разделители, подзаголовки, HTML-контент), автоматически обрабатывает сложные иерархические структуры и предоставляет интуитивную навигацию. Встроенная система поиска работает в реальном времени с выделением совпадений по всей иерархии данных.

**Основные возможности:**

- Различные типы элементов (item, group, menu, line, subtitle, html)
- Иерархическая структура с вложенными группами и меню
- Полная клавиатурная навигация (↑/↓, Enter, →, ←)
- Встроенный поиск в реальном времени с подсветкой совпадений
- Управление выбором элементов через v-model:selected
- Управление фокусом через v-model:focus
- Облегченный режим для больших списков (lite)
- Настройка осей отображения (x/y) и разделителей
- События клика и закрытия меню

**Типичные сценарии использования:**

- Навигационные меню и списки опций
- Выпадающие списки с иерархической структурой
- Каталоги товаров и категорий
- Списки настроек с группировкой
- Контекстные меню с подменю
- Списки файлов и папок
- Фильтры с множественным выбором

```html
<script setup>
import { ref } from 'vue'

const selected = ref(['item2'])
const focus = ref(null)

const listData = ref([
  { label: 'Первый элемент', value: 'item1' },
  { label: 'Второй элемент', value: 'item2' },
  { type: 'line' },
  { type: 'subtitle', label: 'Группа элементов' },
  {
    label: 'Группа с подменю',
    value: 'group1',
    type: 'group',
    list: [
      { label: 'Вложенный элемент 1', value: 'nested1' },
      { label: 'Вложенный элемент 2', value: 'nested2' }
    ]
  }
])

const handleClick = (event) => {
  console.log('Клик по элементу:', event.detail.value)
}
</script>

<template>
  <List
    v-model:selected="selected"
    v-model:focus="focus"
    :list="listData"
    highlight="text"
    @click="handleClick"
  />
</template>
```
