2026-07-11 07:00:59 +03:00
|
|
|
|
/** Формат спрайта: stack или symbol. */
|
|
|
|
|
|
export type SpriteFormat = 'stack' | 'symbol'
|
2026-04-21 23:07:34 +03:00
|
|
|
|
|
2026-04-22 16:54:35 +03:00
|
|
|
|
/** Описание одного спрайта в конфиге. */
|
|
|
|
|
|
export type SpriteEntry = {
|
|
|
|
|
|
/** Уникальное имя спрайта (используется как имя файла и в типах). */
|
2026-04-21 23:07:34 +03:00
|
|
|
|
name: string
|
2026-04-22 16:54:35 +03:00
|
|
|
|
/**
|
|
|
|
|
|
* Источник SVG-файлов.
|
|
|
|
|
|
* Строка — путь к папке с SVG-файлами.
|
|
|
|
|
|
* Массив — пути к конкретным SVG-файлам.
|
|
|
|
|
|
*/
|
|
|
|
|
|
input: string | string[]
|
|
|
|
|
|
/**
|
2026-07-11 07:00:59 +03:00
|
|
|
|
* Формат спрайта.
|
2026-04-22 16:54:35 +03:00
|
|
|
|
* По умолчанию: 'stack'.
|
|
|
|
|
|
*/
|
2026-07-11 07:00:59 +03:00
|
|
|
|
format?: SpriteFormat
|
2026-04-21 23:07:34 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-22 16:54:35 +03:00
|
|
|
|
/** Параметры трансформации SVG. Все включены по умолчанию. */
|
|
|
|
|
|
export type TransformOptions = {
|
2026-04-21 23:07:34 +03:00
|
|
|
|
/**
|
|
|
|
|
|
* Удалять width/height с корневого <svg>.
|
|
|
|
|
|
* По умолчанию: true.
|
|
|
|
|
|
*/
|
|
|
|
|
|
removeSize?: boolean
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Заменять цвета на CSS-переменные var(--icon-color-N, ...).
|
|
|
|
|
|
* Моно-иконка: var(--icon-color-1, currentColor).
|
|
|
|
|
|
* Мульти-иконка: var(--icon-color-N, #original).
|
|
|
|
|
|
* По умолчанию: true.
|
|
|
|
|
|
*/
|
|
|
|
|
|
replaceColors?: boolean
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Добавлять transition:fill 0.3s,stroke 0.3s к элементам с цветом.
|
|
|
|
|
|
* По умолчанию: true.
|
|
|
|
|
|
*/
|
|
|
|
|
|
addTransition?: boolean
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-22 16:54:35 +03:00
|
|
|
|
/** Конфигурация генерации SVG-спрайтов. */
|
|
|
|
|
|
export type SvgSpritesConfig = {
|
2026-04-21 23:07:34 +03:00
|
|
|
|
/** Путь к папке для сгенерированных SVG-спрайтов. */
|
|
|
|
|
|
output: string
|
2026-04-22 16:54:35 +03:00
|
|
|
|
/**
|
|
|
|
|
|
* Генерировать HTML-превью со всеми иконками.
|
2026-04-21 23:07:34 +03:00
|
|
|
|
* По умолчанию: true.
|
|
|
|
|
|
*/
|
2026-04-22 16:54:35 +03:00
|
|
|
|
preview?: boolean
|
2026-04-21 23:07:34 +03:00
|
|
|
|
/**
|
|
|
|
|
|
* Настройки трансформации SVG.
|
|
|
|
|
|
* По умолчанию: все трансформации включены.
|
|
|
|
|
|
*/
|
|
|
|
|
|
transform?: TransformOptions
|
2026-04-22 16:54:35 +03:00
|
|
|
|
/** Список спрайтов для генерации. */
|
|
|
|
|
|
sprites: SpriteEntry[]
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/** Результат парсинга спрайта — данные для компиляции. */
|
|
|
|
|
|
export type SpriteFolder = {
|
|
|
|
|
|
/** Имя спрайта. */
|
|
|
|
|
|
name: string
|
2026-07-11 07:00:59 +03:00
|
|
|
|
/** Формат спрайта. */
|
|
|
|
|
|
format: SpriteFormat
|
2026-04-22 16:54:35 +03:00
|
|
|
|
/** Абсолютный путь к папке (для input-папки) или null (для input-массива). */
|
|
|
|
|
|
path: string | null
|
|
|
|
|
|
/** Абсолютные пути к SVG-файлам. */
|
|
|
|
|
|
files: string[]
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/** Результат компиляции одного спрайта. */
|
|
|
|
|
|
export type SpriteResult = {
|
|
|
|
|
|
/** Имя спрайта. */
|
|
|
|
|
|
name: string
|
2026-07-11 07:00:59 +03:00
|
|
|
|
/** Формат спрайта. */
|
|
|
|
|
|
format: SpriteFormat
|
2026-04-22 16:54:35 +03:00
|
|
|
|
/** Путь к сгенерированному SVG-спрайту. */
|
|
|
|
|
|
spritePath: string
|
|
|
|
|
|
/** Количество иконок в спрайте. */
|
|
|
|
|
|
iconCount: number
|
2026-04-21 23:07:34 +03:00
|
|
|
|
}
|