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

<Meta title='@dxtmisha/ru/scripts/Classes/StylesClasses - Генератор базовых классов'/>

# Класс StylesClasses

Класс `StylesClasses` отвечает за создание базовых CSS-классов на основе свойств дизайна. Он фильтрует список свойств по таким категориям, как `class` и `theme`, и создает структуры отдельных классов.

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

- **Фильтрация по категориям** — Специально нацелен на свойства, классифицированные как `class` или `theme`.
- **Динамическая генерация классов** — Создает словарь блоков SCSS, где каждый ключ является именем класса.
- **Оркестрация зависимостей** — Использует `StylesProperties` для генерации внутренних правил стиля (свойств, миксинов и т. д.) для каждого класса.
- **Управление импортом** — Автоматически включает необходимые директивы SCSS `@use` для связывания созданных файлов классов.

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

Для инициализации объекта вызовите конструктор `StylesClasses(items)`.

**Параметры:**
- `items: PropertiesItems` — объект для работы со списком свойств дизайна.

```typescript
import { StylesClasses, PropertiesItems } from '@dxtmisha/scripts'

// 1. Инициализация PropertiesItems
const items = new PropertiesItems(designData)

// 2. Инициализация StylesClasses
const generator = new StylesClasses(items)
```

## Методы

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

- `init(): StylesClassesItem` — Основная точка входа. Обрабатывает список свойств и возвращает объект, содержащий список необходимых импортов и сгенерированное содержимое классов.

## Типы

### StylesClassesItem

- `data: string[]` — Массив операторов SCSS `@use` для созданных файлов классов.
- `classes: Record<string, string[]>` — Словарь, где каждый ключ — это имя класса, а значение — массив строк, представляющих содержимое SCSS этого класса.
