import {Meta} from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/scripts/Classes/StylesToSelector - Генератор CSS-селекторов'/>

# Класс StylesToSelector

Класс `StylesToSelector` отвечает за создание CSS-селекторов для под-свойств, таких как псевдоклассы (`:hover`, `:active`) или целевые состояния компонентов. Он интеллектуально определяет, использовать ли прямой псевдокласс или миксин.

## Ключевые возможности

- **Динамическая генерация селекторов** — Автоматически преобразует имена свойств в соответствующие CSS-селекторы.
- **Интеграция с миксинами** — Распознает определенные состояния, такие как `hover`, `active`, `focus`, `disabled` и `readonly`, и использует соответствующие SCSS-миксины.
- **Контекстно-зависимое разрешение классов** — Определяет, принадлежит ли под-свойство основному классу компонента, для оптимизации параметров миксина.
- **Управление отступами** — Обеспечивает правильную структуру блоков и вертикальные отступы.

## Инициализация

Инициализируйте преобразователь `StylesToSelector` с помощью необходимого свойства и функции контента.

**Параметры:**
- `property: PropertyItemsItem` — текущая обрабатываемая ветвь дерева свойств.
- `space: string` — строка отступа.
- `content?: () => string[]` — вызываемая функция, которая возвращает массив строк, представляющих внутренние правила стиля.
- `first?: boolean` — указывает, является ли элемент первым (необязательно).

```typescript
import { StylesToSelector } from '@dxtmisha/scripts'

const converter = new StylesToSelector(property, '  ', contentCallable)
const result = converter.make()
```

## Методы

### Управление

- `make(): string[]` — Основная точка входа. Организует разрешение селектора и обертку блоков. Генерирует вывод только при наличии внутреннего контента.
