С чем связан запрос?
@atls-ui-generators/appearance должен закреплять воспроизводимость appearance-слоя компонентов, но не становиться runtime-зависимостью UI-пакетов и не владеть семантикой button, input или checkbox.
Сейчас нужно устранить архитектурный drift в #705: компонентные знания должны жить у компонентов, createAppearanceStyles должен принадлежать @atls-ui-parts/theme как parts theme runtime, а генератор должен быть только исполнителем style schema.
Опиши план реализации
- Переименовать PR в
refactor(appearance): enforce component style schemas.
- Убрать runtime-зависимость
button/input от @atls-ui-generators/appearance.
- Удалить runtime export
@atls-ui-generators/appearance/create из генераторного пакета.
- Перенести
createAppearanceStyles в @atls-ui-parts/theme и экспортировать его через theme utils.
- Добавить component-owned style schemas:
ui-parts/button/src/styles/schema.ts
ui-parts/input/src/styles/schema.ts
ui-parts/checkbox/src/styles/schema.ts
- Убрать из
generators/appearance тест, который напрямую знает про button/input/checkbox.
- Сделать
@atls-ui-generators/appearance исполнителем schema: один schema-файл используется для write и check.
- Не оставлять публичный строковый
AppearanceMapGenerator; заменить его внутренним typed map generator на основе style schema.
- Вынести типы из основных файлов генераторов в отдельные
interfaces.ts рядом с владельцем роли.
- Убрать дублирование топологии в
generators/appearance: использовать style/generator.ts, map/generator.ts, schema/interfaces.ts, без appearance-* внутри package path.
- Перевести CLI на schema-based режим:
generate-styles <schema-file> --write
generate-styles <schema-file> --check
- Не трогать
ui-admin в рамках этой задачи.
- Не чинить локальный yarn/Corepack drift в этой задаче; это отдельное обновление
@atls/code-runtime.
Критерии готовности выполнения задачи
button, input и checkbox имеют component-owned style schema.
appearance.css.ts для затронутых компонентов проверяется на drift от schema.
@atls-ui-generators/appearance не является runtime-зависимостью ui-parts/button и ui-parts/input.
createAppearanceStyles живёт в @atls-ui-parts/theme, а не в генераторе.
- Генератор не содержит знаний о конкретных компонентах Hyperion в своих unit-тестах.
- CLI использует schema как источник истины для
write и check.
- Типы генераторов вынесены из основных файлов поведения.
- Внутри
generators/appearance нет файлов и каталогов с повтором топонима appearance.
ui-admin не меняется.
- Результат подтверждён штатными командами:
yarn workspace @atls-ui-generators/appearance test unit
yarn workspace @atls-ui-generators/appearance build
yarn workspace @atls-ui-parts/theme build
yarn workspace @atls-ui-parts/button build
yarn workspace @atls-ui-parts/input build
yarn workspace @atls-ui-parts/checkbox build
yarn check
С чем связан запрос?
@atls-ui-generators/appearanceдолжен закреплять воспроизводимость appearance-слоя компонентов, но не становиться runtime-зависимостью UI-пакетов и не владеть семантикойbutton,inputилиcheckbox.Сейчас нужно устранить архитектурный drift в #705: компонентные знания должны жить у компонентов,
createAppearanceStylesдолжен принадлежать@atls-ui-parts/themeкак parts theme runtime, а генератор должен быть только исполнителем style schema.Опиши план реализации
refactor(appearance): enforce component style schemas.button/inputот@atls-ui-generators/appearance.@atls-ui-generators/appearance/createиз генераторного пакета.createAppearanceStylesв@atls-ui-parts/themeи экспортировать его через theme utils.ui-parts/button/src/styles/schema.tsui-parts/input/src/styles/schema.tsui-parts/checkbox/src/styles/schema.tsgenerators/appearanceтест, который напрямую знает проbutton/input/checkbox.@atls-ui-generators/appearanceисполнителем schema: один schema-файл используется дляwriteиcheck.AppearanceMapGenerator; заменить его внутренним typed map generator на основе style schema.interfaces.tsрядом с владельцем роли.generators/appearance: использоватьstyle/generator.ts,map/generator.ts,schema/interfaces.ts, безappearance-*внутри package path.generate-styles <schema-file> --writegenerate-styles <schema-file> --checkui-adminв рамках этой задачи.@atls/code-runtime.Критерии готовности выполнения задачи
button,inputиcheckboxимеют component-owned style schema.appearance.css.tsдля затронутых компонентов проверяется на drift от schema.@atls-ui-generators/appearanceне является runtime-зависимостьюui-parts/buttonиui-parts/input.createAppearanceStylesживёт в@atls-ui-parts/theme, а не в генераторе.writeиcheck.generators/appearanceнет файлов и каталогов с повтором топонимаappearance.ui-adminне меняется.yarn workspace @atls-ui-generators/appearance test unityarn workspace @atls-ui-generators/appearance buildyarn workspace @atls-ui-parts/theme buildyarn workspace @atls-ui-parts/button buildyarn workspace @atls-ui-parts/input buildyarn workspace @atls-ui-parts/checkbox buildyarn check