modal: custom element with shadowDOM & tempalte tested and working