{
  "name": "plastic-extras",
  "type": "registry:file",
  "description": "Форма компонентов, которых апстрим не включил в пластику: сейчас шаговая полоса. Радиус берётся из кнопки того же набора. Ставить вместе с набором пластики.",
  "files": [
    {
      "path": "styles/cn-extras.css",
      "type": "registry:file",
      "target": "styles/cn-extras.css",
      "content": "/**\n * Надстройка над пластикой: компоненты, которых апстрим до неё не довёл.\n *\n * ФАЙЛ СОБИРАЕТСЯ СКРИПТОМ — правки руками затрёт следующая синхронизация.\n * Источник значений — `.cn-button` каждого набора, поэтому надстройка следует за\n * апстримом сама. Селекторы цепляются за структуру, потому что у шаговой полосы нет\n * ни классов `cn-*`, ни `data-slot`; сменится разметка reka-ui — правило перестанет\n * попадать, и это поймает тест радиуса в `tests/visual.spec.ts`.\n *\n * ⚠️ ПРАВИЛА СТОЯТ ВНЕ СЛОЁВ НАМЕРЕННО. Форма у этих компонентов запечена утилитой в\n * атрибуте класса, а слой `utilities` сильнее `base` — из слоя надстройка не\n * действовала вовсе: замер давал кружок 6px против кнопки 16px в наборе rhea. Цена: свой\n * радиус, переданный экраном через `class`, тоже будет перебит.\n */\n\n/* Кружок шага берёт радиус кнопки набора luma. */\n.style-luma [role=\"group\"][data-orientation] > [data-state] > button > span {\n  @apply rounded-4xl;\n}\n\n/* Кружок шага берёт радиус кнопки набора lyra. */\n.style-lyra [role=\"group\"][data-orientation] > [data-state] > button > span {\n  @apply rounded-none;\n}\n\n/* Кружок шага берёт радиус кнопки набора maia. */\n.style-maia [role=\"group\"][data-orientation] > [data-state] > button > span {\n  @apply rounded-4xl;\n}\n\n/* Кружок шага берёт радиус кнопки набора mira. */\n.style-mira [role=\"group\"][data-orientation] > [data-state] > button > span {\n  @apply rounded-md;\n}\n\n/* Кружок шага берёт радиус кнопки набора nova. */\n.style-nova [role=\"group\"][data-orientation] > [data-state] > button > span {\n  @apply rounded-lg;\n}\n\n/* Кружок шага берёт радиус кнопки набора rhea. */\n.style-rhea [role=\"group\"][data-orientation] > [data-state] > button > span {\n  @apply rounded-2xl;\n}\n\n/* Кружок шага берёт радиус кнопки набора sera. */\n.style-sera [role=\"group\"][data-orientation] > [data-state] > button > span {\n  @apply rounded-none;\n}\n\n/* Кружок шага берёт радиус кнопки набора vega. */\n.style-vega [role=\"group\"][data-orientation] > [data-state] > button > span {\n  @apply rounded-md;\n}\n\n/* Заголовочный шрифт. Компоненты зовут утилиту `font-heading`, а генерируется она только из\n   объявления в теме — в чужом проекте, где этого объявления нет, класс молча не сработает.\n   Значение фундаменты задают своим `--font-heading`; здесь стоит запасное на случай, когда\n   фундамент не установлен. Без `inline`: иначе утилита несёт подставленное значение и\n   переопределение фундаментом не действует. */\n@theme {\n  --font-heading: var(--font-sans);\n}\n\n/* Выбранный переключатель. Все восемь наборов красят выбор в `bg-muted` — ту же краску,\n   что и наведение: выбранный элемент неотличим от наведённого, а на светлом фундаменте\n   выбор почти не читается вовсе. Выбор берёт основной цвет фундамента (решение владельца\n   11.09.2026).\n\n   ⚠️ НАВЕДЕНИЕ ПЕРЕОБЪЯВЛЕНО НАМЕРЕННО. Правило набора `.style-* .cn-toggle:hover` весит на один\n   класс больше, и без этой строки выбранный элемент перекрашивался бы обратно в серый под\n   курсором — то есть ровно там, где человек на него смотрит.\n\n   Селектор цепляется за `data-slot`, а не за структуру разметки: слот объявлен в самом\n   компоненте и переживёт смену разметки reka-ui. */\n[data-slot=\"toggle-group-item\"][data-state=\"on\"] {\n  @apply bg-primary text-primary-foreground border-primary hover:bg-primary hover:text-primary-foreground;\n}\n"
    }
  ],
  "css": {
    "@import \"../styles/cn-extras.css\"": {}
  }
}
