impulse_thaw/dialog/
dialog_surface.rs1use super::dialog::DialogInjection;
2use leptos::prelude::*;
3use thaw_components::CSSTransition;
4use thaw_utils::class_list;
5
6#[component]
7pub fn DialogSurface(
8 #[prop(optional, into)] class: MaybeProp<String>,
9 children: Children,
10) -> impl IntoView {
11 let dialog = DialogInjection::expect_context();
12
13 view! {
14 <CSSTransition
15 appear=dialog.open.get_untracked()
16 show=dialog.open.signal()
17 name="fade-in-scale-up-transition"
18 >
19 <div class=class_list!["thaw-dialog-surface", class] role="dialog" aria-modal="true">
20 {children()}
21 </div>
22 </CSSTransition>
23 }
24}