docs: def register_theme(self, theme: ModuleType) -> None:
          """Set theme for this docuemnt.
  
          This method sets theme's js/css files and headers on this document.
  
          :arg ModuleType theme: a module which has ``js_files``, ``css_files``,
              ``headers``, and ``extended_classes``. see ``wdom.themes``
              directory actual theme module structures.
          """
          if not hasattr(theme, 'css_files'):
              raise ValueError('theme module must include `css_files`.')
          for css in getattr(theme, 'css_files', []):
              self.add_cssfile(css)
          for js in getattr(theme, 'js_files', []):
              self.add_jsfile(js)
          for header in getattr(theme, 'headers', []):
              self.add_header(header)
          for cls in getattr(theme, 'extended_classes', []):
              self.defaultView.customElements.define(cls)