Вложение

отображает вложенный файл или изображение с медиафайлами, метаданными, состоянием загрузки и действиями.

buridan add вложение
Error: Reference Target 'приложение' not found
Error: Reference Target 'вложение' not found

Особенности

  • Иконки и изображения через attachment.media
  • Состояния загрузки: idle, uploading, processing, error и done со встроенным стилем и мерцанием во время выполнения.
  • Три размера и горизонтальная или вертикальная ориентация
  • Полная карточка attachment.trigger, которая открывает ссылку или диалоговое окно, в то время как действия остаются независимо кликабельными.
  • Прокручиваемый, привязывающийся attachment.group с затуханием края
  • Настраиваемый стиль с помощью реквизита class_name на каждой части.

Примеры

Изображение

Установите variant="image" на attachment.media и визуализируйте rx.el.img() внутри него. Используйте orientation="vertical", чтобы расположить медиафайлы над контентом.

Использованный реквизит: variant на attachment.media; orientation на attachment.root.

Workspace
workspace.pngPNG · 820 KB
Desk
desk-reference.jpgJPG · 1.1 MB
Office
office-reference.jpgJPG · 940 KB

Штаты

Установите state, чтобы отразить жизненный цикл загрузки. uploading и processing мерцают в заголовке, а error переключается на деструктивную обработку.

Использованный реквизит: state на attachment.root.

selected-file.pdfReady to upload
design-system.zipUploading · 64%
market-research.pdfProcessing document
financial-model.xlsxUpload failed. Try again.
uploaded-report.pdfUploaded · 1.8 MB

Размеры

Используйте size для переключения между default, sm и xs.

Использованный реквизит: size на attachment.root.

Default attachmentPDF · 2.4 MB
Small attachmentPDF · 2.4 MB
Extra small attachment

Группа

Оберните вложения в attachment.group, чтобы расположить их в горизонтально прокручиваемом, привязывающемся ряду с плавным переходом по краям.

Использованный реквизит: ничего не требуется, кроме композиции по умолчанию attachment.group.

briefing-notes.pdfPDF · 1.4 MB
workspace.png
workspace.pngPNG · 820 KB
customers.csvCSV · 18 KB
renderer.tsxTSX · 12 KB

Триггер

Добавьте attachment.trigger, чтобы вся карточка открывала ссылку или диалог. Он заполняет карточку действий, поэтому действия остаются кликабельными.

Использованный реквизит: link, href, aria_label на attachment.trigger.

research-summary.pdfOpen preview dialog

Доступность

attachment.action отображает Button, а attachment.trigger отображает либо настоящий rx.el.button(), либо rx.el.a(), если для реквизита link установлено значение True. Следуйте приведенным ниже инструкциям, чтобы оба были работоспособными и объявленными.

Действия, предназначенные только для значков меток

attachment.action обычно содержит только значки, поэтому дайте каждому из них aria-label, описывающее действие и его цель.

attachment.action(
    hi("Cancel01Icon"), aria_label="Remove market-research.pdf"
)

Обозначьте триггер

attachment.trigger накладывает на все вложение кликабельную поверхность.

Используйте aria_label, чтобы описать, что происходит при активации вложения. Это необходимо, когда триггер не имеет видимого текста.

Триггер ссылки (открывает URL-адрес)

attachment.trigger(
    link=True,
    href=url,
    target="_blank",
    rel="noreferrer",
    aria_label="Open workspace.png",
)

Триггер кнопки (интерактивное действие)

attachment.trigger(
    on_click=handle_open,
    aria_label="Open attachment preview",
)

Триггер находится за действиями в порядке наложения, поэтому attachment.action и attachment.trigger никогда не перехватывают друг друга — оба остаются отдельно фокусируемыми и кликабельными.

Прокрутка клавиатуры

attachment.group прокручивается горизонтально. Когда его вложения интерактивны: триггер или действия, пользователи клавиатуры получают доступ к элементам за пределами экрана, нажимая на них. Для ряда презентационных вложений сделайте саму группу фокусируемой и прокручиваемой, добавив tabIndex={0}, role="group" и aria-label.

Значение за пределами цвета

Состояние error использует деструктивный цвет. Сохраните причину сбоя в attachment.description, чтобы состояние не передавалось только цветом.

Справочник по API

вложение.корень

Контейнер корневого вложения.

Опора Тип По умолчанию Описание
state Literal["idle", "uploading", "processing", "error", "done"] "done" Состояние загрузки. Придает стиль и мерцание.
size Literal["default", "sm", "xs"] "default" Размер прикрепления.
orientation Literal["horizontal", "vertical"] "horizontal" Размещайте медиафайлы рядом с контентом или над ним.
class_name str - Дополнительные классы, применяемые к корневому элементу.

вложение.медиа

Медиа-слот для предварительного просмотра значка или изображения.

Опора Тип По умолчанию Описание
variant Literal["icon", "image"] "icon" Содержит ли носитель значок или <img>.
class_name str - Дополнительные классы для применения к медиа-слоту.

вложение.содержание

Обертывает заголовок и описание.

Опора Тип По умолчанию Описание
class_name str - Дополнительные классы для применения к слоту контента.

вложение.название

Имя вложения. Мерцает, пока прикреплен элемент uploading или processing.

Опора Тип По умолчанию Описание
class_name str - Дополнительные классы, которые можно применить к названию.

вложение.описание

Вторичные метаданные, такие как тип файла, размер или статус загрузки.

Опора Тип По умолчанию Описание
class_name str - Дополнительные классы, которые следует применить к описанию.

вложение.действия

Контейнер для одного или нескольких действий, выровненный по концу вложения.

Опора Тип По умолчанию Описание
class_name str - Дополнительные классы для применения к действиям.

вложение.действие

Кнопка действия. Отображает §§IC_85§§ и принимает все его реквизиты.

Опора Тип По умолчанию Описание
size Literal["default", "xs", "sm", "lg", "icon", "icon-xs", "icon-sm", "icon-lg"] "icon-xs" Размер кнопки.
class_name str - Дополнительные классы для применения к действиям.

вложение.триггер

Наложение полной карты, которое активирует вложение. Отображает rx.el.button по умолчанию или rx.el.a, если link=True.

Опора Тип По умолчанию Описание
link bool False Если установлено, вместо кнопки отображается якорь (rx.el.a).
aria_label str | None None Метка доступности для программ чтения с экрана. Требуется, если видимый текст не существует.
class_name str "" К триггеру применены дополнительные классы CSS.

вложение.группа

Располагает вложения в горизонтально прокручиваемом, привязывающемся ряду.

Опора Тип По умолчанию Описание
class_name str - Дополнительные занятия для подачи заявки в группу.