chore: перевести проект на SLM-структуру и добавить SVG-спрайты

- Добавлены devDependencies: svg-sprite, postcss-preset-mantine, postcss-simple-vars, colorette
- Добавлен npm-скрипт `sprite` для генерации SVG-спрайтов
- Обновлены настройки и расширения VS Code
- Переименованы слои: entities → business, features → infrastructure, shared/ui → ui
- Обновлены шаблоны генерации (.templates) под новые слои
- Обновлены path-алиасы в tsconfig.json: убран префикс @/, добавлены алиасы по слоям
- Импорт в src/app/page.tsx переведён на алиас слоя
- Удалён postcss.config.mjs
- Добавлен скрипт scripts/create-svg-sprite.js
- Добавлены исходные SVG-иконки и сгенерированные спрайты
- Добавлен модуль src/shared/sprites/icons.generated.ts
- Добавлены глобальные стилевые токены: variables.css, media.css
- Применён медиа-токен в src/screens/home/styles/home.module.css
- Добавлен AGENTS.md с инструкциями для AI-ассистента
This commit is contained in:
2026-04-28 09:19:27 +03:00
parent 7382499886
commit a544d41a03
41 changed files with 2061 additions and 140 deletions

View File

@@ -0,0 +1 @@
export { {{name.pascalCase}}Business } from './{{name.kebabCase}}.business'

View File

@@ -0,0 +1,2 @@
.root {
}

View File

@@ -0,0 +1,11 @@
import type { HTMLAttributes } from 'react'
/**
* Параметры бизнес-модуля {{name.pascalCase}}.
*/
export type {{name.pascalCase}}BusinessParams = {}
/** HTML-атрибуты корневого элемента. */
type RootAttrs = HTMLAttributes<HTMLDivElement>
export type {{name.pascalCase}}BusinessProps = RootAttrs & {{name.pascalCase}}BusinessParams

View File

@@ -0,0 +1,20 @@
import cl from 'clsx'
import type { {{name.pascalCase}}BusinessProps } from './types/{{name.kebabCase}}.type'
import styles from './styles/{{name.kebabCase}}.module.css'
/**
* <Назначение бизнес-модуля {{name.pascalCase}} в 1 строке>.
*
* Используется для:
* - <сценарий 1>
* - <сценарий 2>
*/
export const {{name.pascalCase}}Business = (props: {{name.pascalCase}}BusinessProps) => {
const { children, className, ...htmlAttr } = props
return (
<div {...htmlAttr} className={cl(styles.root, className)}>
{children}
</div>
)
}