Диалог
окно, наложенное либо на основное окно, либо на другое диалоговое окно, делая содержимое нижнего окна инертным.
❯buridan add диалогПримеры
Пользовательская кнопка закрытия
Замените элемент управления закрытием по умолчанию своей собственной кнопкой. Примените к нему 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(...),
)
диалог.триггер
Обертывает свой дочерний элемент (обычно button(...)) перехватывающим прослушивателем кликов, который вызывает .showModal() в ближайшем dialog.popup. Своего визуального поля нет, поэтому размещение внутри стилизованной кнопки не добавляет дополнительной глубины макету.
dialog.trigger(button("Share", variant="outline"))
диалог.всплывающее окно
Отображает родной <dialog>. Щелчки Escape и Backdrop закрывают его, когда dismissible=True (по умолчанию).
dialog.popup(
dialog.header(dialog.title("Share link")),
...,
)
Когда 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,
)
)
диалог.заголовок
dialog.title("Share link")
диалог.описание
dialog.description("Anyone who has this link will be able to view this.")
диалог.заголовок
dialog.header(
dialog.title("Share link"),
dialog.description("..."),
)
диалог.нижний колонтитул
dialog.footer(dialog.close(button("Close", type="button")))