Files
svg-sprites/src/types.ts
S.Gromov 05a0a9f7ed feat: выпустить версию 1.0.0
- добавлены отдельные режимы генерации для React, Next.js и legacy
- добавлены SpriteViewer, типизированные компоненты и безопасный codegen
- перенесена сборка AI-скила и обновлена документация
- добавлены migration guide, лицензии и проверки публикации
2026-07-11 07:00:59 +03:00

83 lines
2.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** Формат спрайта: stack или symbol. */
export type SpriteFormat = 'stack' | 'symbol'
/** Описание одного спрайта в конфиге. */
export type SpriteEntry = {
/** Уникальное имя спрайта (используется как имя файла и в типах). */
name: string
/**
* Источник SVG-файлов.
* Строка — путь к папке с SVG-файлами.
* Массив — пути к конкретным SVG-файлам.
*/
input: string | string[]
/**
* Формат спрайта.
* По умолчанию: 'stack'.
*/
format?: SpriteFormat
}
/** Параметры трансформации SVG. Все включены по умолчанию. */
export type TransformOptions = {
/**
* Удалять 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
}
/** Конфигурация генерации SVG-спрайтов. */
export type SvgSpritesConfig = {
/** Путь к папке для сгенерированных SVG-спрайтов. */
output: string
/**
* Генерировать HTML-превью со всеми иконками.
* По умолчанию: true.
*/
preview?: boolean
/**
* Настройки трансформации SVG.
* По умолчанию: все трансформации включены.
*/
transform?: TransformOptions
/** Список спрайтов для генерации. */
sprites: SpriteEntry[]
}
/** Результат парсинга спрайта — данные для компиляции. */
export type SpriteFolder = {
/** Имя спрайта. */
name: string
/** Формат спрайта. */
format: SpriteFormat
/** Абсолютный путь к папке (для input-папки) или null (для input-массива). */
path: string | null
/** Абсолютные пути к SVG-файлам. */
files: string[]
}
/** Результат компиляции одного спрайта. */
export type SpriteResult = {
/** Имя спрайта. */
name: string
/** Формат спрайта. */
format: SpriteFormat
/** Путь к сгенерированному SVG-спрайту. */
spritePath: string
/** Количество иконок в спрайте. */
iconCount: number
}