diff --git a/packages/ui/src/components/dialog.css b/packages/ui/src/components/dialog.css index 1e74763ae2..9ae1d175a6 100644 --- a/packages/ui/src/components/dialog.css +++ b/packages/ui/src/components/dialog.css @@ -16,6 +16,11 @@ justify-content: center; pointer-events: none; + &[data-position="top"] { + align-items: flex-start; + padding-top: var(--dialog-top, 16px); + } + [data-slot="dialog-container"] { position: relative; z-index: 50; diff --git a/packages/ui/src/components/dialog.tsx b/packages/ui/src/components/dialog.tsx index ce7704f37e..c92e452edd 100644 --- a/packages/ui/src/components/dialog.tsx +++ b/packages/ui/src/components/dialog.tsx @@ -8,6 +8,8 @@ export interface DialogProps extends ParentProps { description?: JSXElement action?: JSXElement size?: "normal" | "large" | "x-large" + position?: "center" | "top" + style?: ComponentProps<"div">["style"] class?: ComponentProps<"div">["class"] classList?: ComponentProps<"div">["classList"] fit?: boolean @@ -21,7 +23,9 @@ export function Dialog(props: DialogProps) { data-component="dialog" data-fit={props.fit ? true : undefined} data-size={props.size || "normal"} + data-position={props.position && props.position !== "center" ? props.position : undefined} data-transition={props.transition ? true : undefined} + style={props.style} >