diff --git a/components/ContentModal/ContentModal.mdx b/components/ContentModal/ContentModal.mdx new file mode 100644 index 0000000..01d8554 --- /dev/null +++ b/components/ContentModal/ContentModal.mdx @@ -0,0 +1,107 @@ +--- +title: "ContentModal" +description: "A lightweight modal component for embedding custom content." +author: "@andrewerdman" +version: "1.0.0" +--- + +import { useEffect, useState } from 'react'; + +export const ContentModal = ({ + label, + title, + content, + size = 'md', + buttonColor = '#0B1440' +}) => { + const [open, setOpen] = useState(false); + + const sizeClasses = { + sm: 'max-w-[480px]', + md: 'max-w-[720px]', + lg: 'max-w-[960px]', + xl: 'max-w-[1200px]' + }; + + // ESC to close + useEffect(() => { + if (!open) return undefined; + const onKey = (e) => { + if (e.key === 'Escape') setOpen(false); + }; + window.addEventListener('keydown', onKey); + return () => { + window.removeEventListener('keydown', onKey); + }; + }, [open]); + + return ( + <> +