Диалог

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

buridan add диалог
Error: Reference Target 'диалог' not found
Error: Reference Target 'диалог' not found

Примеры

Пользовательская кнопка закрытия

Замените элемент управления закрытием по умолчанию своей собственной кнопкой. Примените к нему dialog.class_names.CLOSE_ICON для правильного позиционирования в верхнем правом углу.

Использованный реквизит: class_name на кнопке, переданной в dialog.close.

Нет кнопки закрытия

Чтобы пропустить значок закрытия в правом верхнем углу, просто не отображайте для него dialog.close(...) — все остальные механизмы закрытия (Escape, щелчок на фоне, кнопка нижнего колонтитула) по-прежнему работают.

Использованный реквизит: не требуется — опустите значок вызова dialog.close(...).

Прикрепленный нижний колонтитул

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

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

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

диалог.корень

Невизуальная оболочка области видимости (display: contents, не добавляет поле макета). Запустите и закройте разрешение своей цели <dialog>, подойдя к ближайшему dialog.root — без ручной обработки идентификаторов, а несколько независимых диалогов на одной странице (например, диалог «Поделиться» для каждой строки) никогда не перенацеливаются друг на друга.

dialog.root(
    dialog.trigger(button("Share", variant="outline")),
    dialog.popup(...),
)
Опора Тип По умолчанию
class_name str ""

диалог.триггер

Обертывает свой дочерний элемент (обычно button(...)) перехватывающим прослушивателем кликов, который вызывает .showModal() в ближайшем dialog.popup. Своего визуального поля нет, поэтому размещение внутри стилизованной кнопки не добавляет дополнительной глубины макету.

dialog.trigger(button("Share", variant="outline"))
Опора Тип По умолчанию
id str автоматически созданный
class_name str ""

диалог.всплывающее окно

Отображает родной <dialog>. Щелчки Escape и Backdrop закрывают его, когда dismissible=True (по умолчанию).

dialog.popup(
    dialog.header(dialog.title("Share link")),
    ...,
)
Опора Тип По умолчанию
dismissible bool True
on_open_change EventHandler[[bool]] \| None None
class_name str ""

Когда dismissible=False, как Escape, так и фоновый щелчок отключены — только явный dialog.close(...) может закрыть его.

диалог.закрыть

Та же поведенческая оболочка, что и dialog.trigger, но вызывает .close(). Не имеет собственного визуального стиля по умолчанию — применяйте dialog.class_names.CLOSE / dialog.class_names.CLOSE_ICON ко всему, что вы передаете.

dialog.close(button("Close", type="button"))

dialog.close(
    button(
        hi("Cancel01Icon", class_name="size-4"),
        variant="ghost",
        size="icon-sm",
        class_name=dialog.class_names.CLOSE_ICON,
    )
)
Опора Тип По умолчанию
id str автоматически созданный
class_name str ""

диалог.заголовок

dialog.title("Share link")
Опора Тип По умолчанию
class_name str ""

диалог.описание

dialog.description("Anyone who has this link will be able to view this.")
Опора Тип По умолчанию
class_name str ""

диалог.заголовок

dialog.header(
    dialog.title("Share link"),
    dialog.description("..."),
)
Опора Тип По умолчанию
class_name str ""

диалог.нижний колонтитул

dialog.footer(dialog.close(button("Close", type="button")))
Опора Тип По умолчанию
class_name str ""