Перейти к содержимому

Компоненты SDK

  • VStack — Вертикальный контейнер — дочерние элементы столбиком.
  • HStack — Горизонтальный контейнер — дочерние элементы в ряд.
  • Grid — Адаптивная сетка с минимальной шириной колонки.
  • Card — Панель с glass-эффектом для группировки блоков.
  • Divider — Горизонтальная линия-разделитель.
  • Spacer — Распорка во flex-контейнере — заполняет свободное место.
  • Tabs — Горизонтальный таб-бар для переключения секций. Управляется значением value; клик по вкладке вызывает onChange(id), после чего плагин обновляет своё состояние и перерисовывается.
  • List — Вертикальный список кликабельных строк с иконкой, заголовком, подзаголовком, бейджем и завершающей иконкой.
  • Tooltip — Оборачивает дочерний элемент и показывает текстовую подсказку при наведении или фокусе.
  • Modal — Портальное окно поверх приложения: диалог, шторка (sheet) или поповер. Закрывается по ESC и клику на фон. Управляется состоянием open; содержимое — любые дочерние компоненты.
  • Collapsible — Секция с кликабельным заголовком и скрываемым телом. Управляется состоянием open; несколько секций подряд образуют аккордеон.
  • SectionHeader — Заголовок раздела страницы с необязательным подзаголовком и кнопкой действия («Показать все»).
  • Segmented — Компактный переключатель из нескольких соединённых сегментов. Управляется значением value; альтернатива Tabs для 2–4 вариантов.
  • Carousel — Горизонтальная карусель произвольных элементов со скролл-снапом. В отличие от рядов контента, принимает любые компоненты.
  • Scroller — Обобщённый контейнер с прокруткой (горизонтальной или вертикальной) для произвольных элементов.
  • Page — Оболочка кастомной страницы плагина с заголовком и областью контента (на базе PageFrame).
  • SidebarGroup — Собственная секция боковой панели с заголовком-категорией и кнопками — как встроенная «МЕДИАТЕКА». Контрибьютится в слот ‘sidebar-groups’ (registerSlotContribution), внутрь кладутся кнопки Button().variant(‘sidebar-item’). Позволяет плагину добавить ЦЕЛУЮ категорию, а не только кнопки в существующую.
  • Heading — Заголовок уровней h1–h4.
  • Text — Текст: описания, подписи, ошибки.
  • Badge — Цветная метка для статусов и тегов.
  • StatusRow — Строка статуса: цветная точка и значение.
  • Markdown — Рендер Markdown: списки, жирный текст, таблицы, ссылки.
  • Icon — Отдельная иконка из коллекции Lucide (например, ‘play’, ‘heart’, ‘settings’).
  • Alert — Цветной баннер уведомления (info/success/warning/error) с иконкой, заголовком и текстом.
  • EmptyState — Заглушка для пустых списков и экранов: иконка, заголовок, описание и необязательная кнопка действия.
  • ProgressBar — Горизонтальный индикатор прогресса (0..1) с необязательной подписью и процентом.
  • Skeleton — Обобщённый мерцающий плейсхолдер произвольного размера. Полезен для собственных состояний загрузки.
  • Rating — Строка звёзд, отображающая оценку от 0 до max с поддержкой половинных звёзд и необязательным числовым значением.
  • TagList — Набор тегов/жанров в виде пилюль. Статичные по умолчанию; при заданном onTagClick становятся кликабельными.
  • Button — Кнопка для действий, воспроизведения и переходов.
  • Input — Текстовое поле для форм и фильтров.
  • Toggle — Переключатель булевых параметров.
  • Select — Выпадающий список с группировкой и множественным выбором.
  • CodeEditor — Редактор Monaco: подсветка, автодополнение, номера строк.
  • Chip — Компактный переключаемый элемент-пилюля. Подходит для фильтров, жанров и быстрых действий.
  • IconButton — Квадратная кнопка только с иконкой (без текста). Требует label (aria-label) для доступности.
  • Range — Ползунок выбора числового значения в диапазоне [min, max] с шагом step и необязательным отображением текущего значения.
  • Dropdown — Кнопка-триггер с выпадающим списком вариантов. Открытие/закрытие управляется самим компонентом; выбор пункта возвращает его id.
  • FileInput — Поле выбора файла с фильтром типов. onChange получает { names, count } — имена и количество выбранных файлов.
  • Field — Обёртка контрола с подписью сверху и подсказкой снизу. Оборачивает любой вложенный контрол (Input, Select, Range и т.д.).
  • ContentCard — Карточка контента, НЕ привязанная к форме TMDB. Рисует постер, бейджи, полосу прогресса и заголовок из вашей собственной модели данных (SDKContentItem: id, title, subtitle, image, wideImage, badges, meta, progress, rank).
  • ContentRow — Горизонтальный ряд карточек ContentCard из вашей собственной модели данных (SDKContentItem[]). Обобщённая версия MediaRow без привязки к TMDB: заголовок секции, кнопка «Показать все» и D-pad-скролл.
  • Hero — Широкий промо-баннер из вашей собственной модели данных (SDKContentItem[]). Обобщённая версия HeroSpotlight без привязки к TMDB: фон wideImage, логотип/заголовок, метаданные, бейджи и кнопки «Смотреть» / «Подробнее».
  • Image — Адаптивное изображение с ленивой загрузкой и запасной картинкой (fallback) при ошибке. Позволяет плагину выводить произвольные картинки, а не только через MediaCard.
  • Avatar — Круглое или квадратное изображение пользователя/актёра с ленивой загрузкой. При отсутствии картинки показывает инициалы из имени.
  • ContinueWatchingRow — Горизонтальный ряд широких карточек с полосой прогресса — раздел «Продолжить просмотр» из вашей модели данных (SDKContentItem[], поле progress 0..1).
  • TopTenRow — Ранжированный ряд с крупным номером позиции у каждого постера. Номер берётся из поля rank или из позиции элемента (до 10).
  • PosterGrid — Адаптивная сетка карточек-постеров с необязательной кнопкой догрузки (бесконечный список) — для страниц каталога/категории из вашей модели данных.
  • DetailHero — Крупный баннер детальной страницы: фон, логотип/заголовок, метаданные, бейджи и настраиваемые кнопки действий. Клик по кнопке возвращает её id.
  • MediaCard — Карточка фильма: постер, рейтинг, название и год при наведении.
  • MediaRow — Горизонтальная карусель MediaCard с заголовком и «Показать все».
  • HeroSpotlight — Промо-баннер: арт, заголовок, кнопки Смотреть/Подробнее.
  • LoadingSpinner — Круговой индикатор загрузки.
  • EpisodesSection — Блок серий: загрузка по mediaId, вкладки сезонов, сетка эпизодов.
  • EpisodeCard — Карточка серии: кадр, номер, название, описание.
  • EpisodeSelector — Выбор сезонов и серий в модальном окне или встроенной панели очереди Potok.
  • MediaCast — Горизонтальный ряд актёров: аватар, имя, роль.
  • MediaOverview — Панель медиа: постер, описание, год, страна, рейтинг, жанры.
  • StreamRow — Строка раздачи: название, размер, трекер, сиды/пиры.
  • StreamList — Список раздач с фильтрами, загрузкой и пустым состоянием.
  • StreamSkeletonList — Скелетон-заглушка при загрузке раздач.
  • PlaybackWorkspace — Host-owned экран с inline-плеером слева и панелью плагина справа. Использует тот же layout и portal target, что торрентный плеер и совместный просмотр.
  • MediaPlayer — HTML5-плеер: HLS, DASH, MP4, субтитры и аудиодорожки.
  • ProfileSelector — Селектор профилей Potok Gateway: пинг, добавление, редактирование, удаление.
  • SearchBar — Поисковая строка с иконкой и кнопкой очистки.
  • StreamFilterBar — Панель фильтрации раздач: качество, трекер, сортировка.