Design a flexible modal system.
Component tree:
ModalProvider (context)
├── ModalContainer (portal target)
│ └── ModalWrapper (per modal)
│ ├── Backdrop
│ └── ModalContent
│ ├── ModalHeader
│ ├── ModalBody
│ └── ModalFooter
API design:
const { openModal, closeModal } = useModal();
openModal(<ConfirmDialog onConfirm={handleConfirm} />);
Portal rendering: Render modals outside component tree to avoid z-index issues.