Have you considered using `spark-overlay` here? It would automatically take care of modality, auto-closing on an outside click and ESC, animations, etc. Could you at least add a TODO (assign to me, if you want) to revisit that later?