mirror of
https://dev.azure.com/globalhealthx/EMR/_git/helix-engage
synced 2026-04-11 18:28:15 +00:00
chore: initial Untitled UI Vite scaffold with FontAwesome Pro
This commit is contained in:
39
src/components/application/modals/modal.tsx
Normal file
39
src/components/application/modals/modal.tsx
Normal file
@@ -0,0 +1,39 @@
|
||||
import type { DialogProps as AriaDialogProps, ModalOverlayProps as AriaModalOverlayProps } from "react-aria-components";
|
||||
import { Dialog as AriaDialog, DialogTrigger as AriaDialogTrigger, Modal as AriaModal, ModalOverlay as AriaModalOverlay } from "react-aria-components";
|
||||
import { cx } from "@/utils/cx";
|
||||
|
||||
export const DialogTrigger = AriaDialogTrigger;
|
||||
|
||||
export const ModalOverlay = (props: AriaModalOverlayProps) => {
|
||||
return (
|
||||
<AriaModalOverlay
|
||||
{...props}
|
||||
className={(state) =>
|
||||
cx(
|
||||
"fixed inset-0 z-50 flex min-h-dvh w-full items-end justify-center overflow-y-auto bg-overlay/70 px-4 pt-4 pb-[clamp(16px,8vh,64px)] outline-hidden backdrop-blur-[6px] sm:items-center sm:justify-center sm:p-8",
|
||||
state.isEntering && "duration-300 ease-out animate-in fade-in",
|
||||
state.isExiting && "duration-200 ease-in animate-out fade-out",
|
||||
typeof props.className === "function" ? props.className(state) : props.className,
|
||||
)
|
||||
}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export const Modal = (props: AriaModalOverlayProps) => (
|
||||
<AriaModal
|
||||
{...props}
|
||||
className={(state) =>
|
||||
cx(
|
||||
"max-h-full w-full align-middle outline-hidden max-sm:overflow-y-auto max-sm:rounded-xl",
|
||||
state.isEntering && "duration-300 ease-out animate-in zoom-in-95",
|
||||
state.isExiting && "duration-200 ease-in animate-out zoom-out-95",
|
||||
typeof props.className === "function" ? props.className(state) : props.className,
|
||||
)
|
||||
}
|
||||
/>
|
||||
);
|
||||
|
||||
export const Dialog = (props: AriaDialogProps) => (
|
||||
<AriaDialog {...props} className={cx("flex w-full items-center justify-center outline-hidden", props.className)} />
|
||||
);
|
||||
Reference in New Issue
Block a user