All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lrng.binding.AttributeFactories.scala Maven / Gradle / Ivy

The newest version!
// Don't edit this file, because it is generated by `sbt generateAttributeFactories`
package org.lrng.binding
import scala.scalajs.js
import org.scalajs.dom._
import org.scalajs.dom.raw._
import org.lrng.binding.html.NodeBinding.Interpolated.MountPointBuilder
import org.lrng.binding.html.ElementFactory
import org.lrng.binding.html.AttributeFactory
import org.lrng.binding.html.NodeBinding.Constant.AttributeSetter
import org.lrng.binding.html.NodeBinding.Constant.AttributeRemover
import org.lrng.binding.html.elementTypes._
import com.thoughtworks.binding.Binding
private[lrng] object AttributeFactories {
  private[lrng] object properties {
    object accessKey extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_Element
          extends MountPointBuilder[Element, accessKey.type, String] {
        def mountProperty(element: Element, binding: Binding[String]) = {
          Binding.BindingInstances.map(binding)(element.accessKey = _)
        }
      }
    }
    object classList extends AttributeFactory.Typed {
      implicit object mountPointBuilder_DOMTokenList_Element
          extends MountPointBuilder[Element, classList.type, DOMTokenList] {
        def mountProperty(element: Element, binding: Binding[DOMTokenList]) = {
          Binding.BindingInstances.map(binding)(element.classList = _)
        }
      }
    }
    object className extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_HTMLElement
          extends MountPointBuilder[HTMLElement, className.type, String] {
        def mountProperty(element: HTMLElement, binding: Binding[String]) = {
          Binding.BindingInstances.map(binding)(element.className = _)
        }
      }
    }
    object contentEditable extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_HTMLElement
          extends MountPointBuilder[HTMLElement, contentEditable.type, String] {
        def mountProperty(element: HTMLElement, binding: Binding[String]) = {
          Binding.BindingInstances.map(binding)(element.contentEditable = _)
        }
      }
    }
    object defaultChecked extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Boolean_HTMLInputElement
          extends MountPointBuilder[
            HTMLInputElement,
            defaultChecked.type,
            Boolean
          ] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[Boolean]
        ) = {
          Binding.BindingInstances.map(binding)(element.defaultChecked = _)
        }
      }
    }
    object defaultSelected extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Boolean_HTMLOptionElement
          extends MountPointBuilder[
            HTMLOptionElement,
            defaultSelected.type,
            Boolean
          ] {
        def mountProperty(
            element: HTMLOptionElement,
            binding: Binding[Boolean]
        ) = {
          Binding.BindingInstances.map(binding)(element.defaultSelected = _)
        }
      }
    }
    object defaultValue extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_HTMLInputElement
          extends MountPointBuilder[
            HTMLInputElement,
            defaultValue.type,
            String
          ] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.defaultValue = _)
        }
      }
      implicit object mountPointBuilder_String_HTMLTextAreaElement
          extends MountPointBuilder[
            HTMLTextAreaElement,
            defaultValue.type,
            String
          ] {
        def mountProperty(
            element: HTMLTextAreaElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.defaultValue = _)
        }
      }
    }
    object files extends AttributeFactory.Typed {
      implicit object mountPointBuilder_FileList_HTMLInputElement
          extends MountPointBuilder[HTMLInputElement, files.type, FileList] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[FileList]
        ) = {
          Binding.BindingInstances.map(binding)(element.files = _)
        }
      }
    }
    object filters extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Object_HTMLElement
          extends MountPointBuilder[HTMLElement, filters.type, Object] {
        def mountProperty(element: HTMLElement, binding: Binding[Object]) = {
          Binding.BindingInstances.map(binding)(element.filters = _)
        }
      }
    }
    object formAction extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_HTMLButtonElement
          extends MountPointBuilder[
            HTMLButtonElement,
            formAction.type,
            String
          ] {
        def mountProperty(
            element: HTMLButtonElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.formAction = _)
        }
      }
      implicit object mountPointBuilder_String_HTMLInputElement
          extends MountPointBuilder[HTMLInputElement, formAction.type, String] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.formAction = _)
        }
      }
    }
    object formEnctype extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_HTMLButtonElement
          extends MountPointBuilder[
            HTMLButtonElement,
            formEnctype.type,
            String
          ] {
        def mountProperty(
            element: HTMLButtonElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.formEnctype = _)
        }
      }
      implicit object mountPointBuilder_String_HTMLInputElement
          extends MountPointBuilder[
            HTMLInputElement,
            formEnctype.type,
            String
          ] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.formEnctype = _)
        }
      }
    }
    object formMethod extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_HTMLButtonElement
          extends MountPointBuilder[
            HTMLButtonElement,
            formMethod.type,
            String
          ] {
        def mountProperty(
            element: HTMLButtonElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.formMethod = _)
        }
      }
      implicit object mountPointBuilder_String_HTMLInputElement
          extends MountPointBuilder[HTMLInputElement, formMethod.type, String] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.formMethod = _)
        }
      }
    }
    object formNoValidate extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_HTMLButtonElement
          extends MountPointBuilder[
            HTMLButtonElement,
            formNoValidate.type,
            String
          ] {
        def mountProperty(
            element: HTMLButtonElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.formNoValidate = _)
        }
      }
      implicit object mountPointBuilder_String_HTMLInputElement
          extends MountPointBuilder[
            HTMLInputElement,
            formNoValidate.type,
            String
          ] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.formNoValidate = _)
        }
      }
    }
    object formTarget extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_HTMLButtonElement
          extends MountPointBuilder[
            HTMLButtonElement,
            formTarget.type,
            String
          ] {
        def mountProperty(
            element: HTMLButtonElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.formTarget = _)
        }
      }
      implicit object mountPointBuilder_String_HTMLInputElement
          extends MountPointBuilder[HTMLInputElement, formTarget.type, String] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.formTarget = _)
        }
      }
    }
    object gotpointercapture extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[PointerEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            gotpointercapture.type,
            js.Function1[PointerEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[PointerEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.gotpointercapture = _)
        }
      }
    }
    object indeterminate extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Boolean_HTMLInputElement
          extends MountPointBuilder[
            HTMLInputElement,
            indeterminate.type,
            Boolean
          ] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[Boolean]
        ) = {
          Binding.BindingInstances.map(binding)(element.indeterminate = _)
        }
      }
    }
    object innerHTML extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_Element
          extends MountPointBuilder[Element, innerHTML.type, String] {
        def mountProperty(element: Element, binding: Binding[String]) = {
          Binding.BindingInstances.map(binding)(element.innerHTML = _)
        }
      }
    }
    object length extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Int_HTMLSelectElement
          extends MountPointBuilder[HTMLSelectElement, length.type, Int] {
        def mountProperty(element: HTMLSelectElement, binding: Binding[Int]) = {
          Binding.BindingInstances.map(binding)(element.length = _)
        }
      }
    }
    object lostpointercapture extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[PointerEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            lostpointercapture.type,
            js.Function1[PointerEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[PointerEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.lostpointercapture = _)
        }
      }
    }
    object maxLength extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Int_HTMLInputElement
          extends MountPointBuilder[HTMLInputElement, maxLength.type, Int] {
        def mountProperty(element: HTMLInputElement, binding: Binding[Int]) = {
          Binding.BindingInstances.map(binding)(element.maxLength = _)
        }
      }
      implicit object mountPointBuilder_Int_HTMLTextAreaElement
          extends MountPointBuilder[HTMLTextAreaElement, maxLength.type, Int] {
        def mountProperty(
            element: HTMLTextAreaElement,
            binding: Binding[Int]
        ) = {
          Binding.BindingInstances.map(binding)(element.maxLength = _)
        }
      }
    }
    object onabort extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[UIEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onabort.type,
            js.Function1[UIEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[UIEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onabort = _)
        }
      }
    }
    object onactivate extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[UIEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onactivate.type,
            js.Function1[UIEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[UIEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onactivate = _)
        }
      }
    }
    object onbeforeactivate extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[UIEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onbeforeactivate.type,
            js.Function1[UIEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[UIEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onbeforeactivate = _)
        }
      }
    }
    object onbeforecopy extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[DragEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onbeforecopy.type,
            js.Function1[DragEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[DragEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onbeforecopy = _)
        }
      }
    }
    object onbeforecut extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[DragEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onbeforecut.type,
            js.Function1[DragEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[DragEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onbeforecut = _)
        }
      }
    }
    object onbeforedeactivate extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[UIEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onbeforedeactivate.type,
            js.Function1[UIEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[UIEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onbeforedeactivate = _)
        }
      }
    }
    object onbeforepaste extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[DragEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onbeforepaste.type,
            js.Function1[DragEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[DragEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onbeforepaste = _)
        }
      }
    }
    object ondeactivate extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[UIEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            ondeactivate.type,
            js.Function1[UIEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[UIEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.ondeactivate = _)
        }
      }
    }
    object onfocusin extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[FocusEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onfocusin.type,
            js.Function1[FocusEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[FocusEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onfocusin = _)
        }
      }
    }
    object onfocusout extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[FocusEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onfocusout.type,
            js.Function1[FocusEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[FocusEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onfocusout = _)
        }
      }
    }
    object onfullscreenchange extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[Event, _]_Element`
          extends MountPointBuilder[
            Element,
            onfullscreenchange.type,
            js.Function1[Event, _]
          ] {
        def mountProperty(
            element: Element,
            binding: Binding[js.Function1[Event, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onfullscreenchange = _)
        }
      }
    }
    object onfullscreenerror extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[Event, _]_Element`
          extends MountPointBuilder[
            Element,
            onfullscreenerror.type,
            js.Function1[Event, _]
          ] {
        def mountProperty(
            element: Element,
            binding: Binding[js.Function1[Event, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onfullscreenerror = _)
        }
      }
    }
    object onhelp extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onhelp.type,
            js.Function1[Event, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[Event, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onhelp = _)
        }
      }
    }
    object onmousewheel extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[WheelEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onmousewheel.type,
            js.Function1[WheelEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[WheelEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onmousewheel = _)
        }
      }
    }
    object onpointercancel extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[PointerEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onpointercancel.type,
            js.Function1[PointerEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[PointerEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onpointercancel = _)
        }
      }
    }
    object onpointerdown extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[PointerEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onpointerdown.type,
            js.Function1[PointerEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[PointerEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onpointerdown = _)
        }
      }
    }
    object onpointerenter extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[PointerEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onpointerenter.type,
            js.Function1[PointerEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[PointerEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onpointerenter = _)
        }
      }
    }
    object onpointerleave extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[PointerEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onpointerleave.type,
            js.Function1[PointerEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[PointerEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onpointerleave = _)
        }
      }
    }
    object onpointermove extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[PointerEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onpointermove.type,
            js.Function1[PointerEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[PointerEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onpointermove = _)
        }
      }
    }
    object onpointerout extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[PointerEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onpointerout.type,
            js.Function1[PointerEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[PointerEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onpointerout = _)
        }
      }
    }
    object onpointerover extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[PointerEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onpointerover.type,
            js.Function1[PointerEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[PointerEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onpointerover = _)
        }
      }
    }
    object onpointerup extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[PointerEvent, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onpointerup.type,
            js.Function1[PointerEvent, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[PointerEvent, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onpointerup = _)
        }
      }
    }
    object onreadystatechange extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onreadystatechange.type,
            js.Function1[Event, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[Event, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onreadystatechange = _)
        }
      }
    }
    object onselectstart extends AttributeFactory.Typed {
      implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
          extends MountPointBuilder[
            HTMLElement,
            onselectstart.type,
            js.Function1[Event, _]
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[js.Function1[Event, _]]
        ) = {
          Binding.BindingInstances.map(binding)(element.onselectstart = _)
        }
      }
    }
    object outerHTML extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_Element
          extends MountPointBuilder[Element, outerHTML.type, String] {
        def mountProperty(element: Element, binding: Binding[String]) = {
          Binding.BindingInstances.map(binding)(element.outerHTML = _)
        }
      }
    }
    object parentElement extends AttributeFactory.Typed {
      implicit object mountPointBuilder_HTMLElement_HTMLElement
          extends MountPointBuilder[
            HTMLElement,
            parentElement.type,
            HTMLElement
          ] {
        def mountProperty(
            element: HTMLElement,
            binding: Binding[HTMLElement]
        ) = {
          Binding.BindingInstances.map(binding)(element.parentElement = _)
        }
      }
    }
    object readOnly extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Boolean_HTMLInputElement
          extends MountPointBuilder[HTMLInputElement, readOnly.type, Boolean] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[Boolean]
        ) = {
          Binding.BindingInstances.map(binding)(element.readOnly = _)
        }
      }
      implicit object mountPointBuilder_Boolean_HTMLTextAreaElement
          extends MountPointBuilder[
            HTMLTextAreaElement,
            readOnly.type,
            Boolean
          ] {
        def mountProperty(
            element: HTMLTextAreaElement,
            binding: Binding[Boolean]
        ) = {
          Binding.BindingInstances.map(binding)(element.readOnly = _)
        }
      }
    }
    object readyState extends AttributeFactory.Typed {
      implicit object mountPointBuilder_js_Any_HTMLElement
          extends MountPointBuilder[HTMLElement, readyState.type, js.Any] {
        def mountProperty(element: HTMLElement, binding: Binding[js.Any]) = {
          Binding.BindingInstances.map(binding)(element.readyState = _)
        }
      }
    }
    object recordNumber extends AttributeFactory.Typed {
      implicit object mountPointBuilder_js_Any_HTMLElement
          extends MountPointBuilder[HTMLElement, recordNumber.type, js.Any] {
        def mountProperty(element: HTMLElement, binding: Binding[js.Any]) = {
          Binding.BindingInstances.map(binding)(element.recordNumber = _)
        }
      }
    }
    object rev extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_HTMLLinkElement
          extends MountPointBuilder[HTMLLinkElement, rev.type, String] {
        def mountProperty(
            element: HTMLLinkElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.rev = _)
        }
      }
    }
    object scrollLeft extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Double_Element
          extends MountPointBuilder[Element, scrollLeft.type, Double] {
        def mountProperty(element: Element, binding: Binding[Double]) = {
          Binding.BindingInstances.map(binding)(element.scrollLeft = _)
        }
      }
    }
    object scrollTop extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Double_Element
          extends MountPointBuilder[Element, scrollTop.type, Double] {
        def mountProperty(element: Element, binding: Binding[Double]) = {
          Binding.BindingInstances.map(binding)(element.scrollTop = _)
        }
      }
    }
    object selectedIndex extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Int_HTMLSelectElement
          extends MountPointBuilder[
            HTMLSelectElement,
            selectedIndex.type,
            Int
          ] {
        def mountProperty(element: HTMLSelectElement, binding: Binding[Int]) = {
          Binding.BindingInstances.map(binding)(element.selectedIndex = _)
        }
      }
    }
    object selectionEnd extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Int_HTMLInputElement
          extends MountPointBuilder[HTMLInputElement, selectionEnd.type, Int] {
        def mountProperty(element: HTMLInputElement, binding: Binding[Int]) = {
          Binding.BindingInstances.map(binding)(element.selectionEnd = _)
        }
      }
      implicit object mountPointBuilder_Int_HTMLTextAreaElement
          extends MountPointBuilder[
            HTMLTextAreaElement,
            selectionEnd.type,
            Int
          ] {
        def mountProperty(
            element: HTMLTextAreaElement,
            binding: Binding[Int]
        ) = {
          Binding.BindingInstances.map(binding)(element.selectionEnd = _)
        }
      }
    }
    object selectionStart extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Int_HTMLInputElement
          extends MountPointBuilder[
            HTMLInputElement,
            selectionStart.type,
            Int
          ] {
        def mountProperty(element: HTMLInputElement, binding: Binding[Int]) = {
          Binding.BindingInstances.map(binding)(element.selectionStart = _)
        }
      }
      implicit object mountPointBuilder_Int_HTMLTextAreaElement
          extends MountPointBuilder[
            HTMLTextAreaElement,
            selectionStart.type,
            Int
          ] {
        def mountProperty(
            element: HTMLTextAreaElement,
            binding: Binding[Int]
        ) = {
          Binding.BindingInstances.map(binding)(element.selectionStart = _)
        }
      }
    }
    object status extends AttributeFactory.Typed {
      implicit object mountPointBuilder_js_Any_HTMLButtonElement
          extends MountPointBuilder[HTMLButtonElement, status.type, js.Any] {
        def mountProperty(
            element: HTMLButtonElement,
            binding: Binding[js.Any]
        ) = {
          Binding.BindingInstances.map(binding)(element.status = _)
        }
      }
      implicit object mountPointBuilder_Boolean_HTMLInputElement
          extends MountPointBuilder[HTMLInputElement, status.type, Boolean] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[Boolean]
        ) = {
          Binding.BindingInstances.map(binding)(element.status = _)
        }
      }
      implicit object mountPointBuilder_js_Any_HTMLTextAreaElement
          extends MountPointBuilder[HTMLTextAreaElement, status.type, js.Any] {
        def mountProperty(
            element: HTMLTextAreaElement,
            binding: Binding[js.Any]
        ) = {
          Binding.BindingInstances.map(binding)(element.status = _)
        }
      }
    }
    object tabIndex extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Int_HTMLElement
          extends MountPointBuilder[HTMLElement, tabIndex.type, Int] {
        def mountProperty(element: HTMLElement, binding: Binding[Int]) = {
          Binding.BindingInstances.map(binding)(element.tabIndex = _)
        }
      }
    }
    object text extends AttributeFactory.Typed {
      implicit object mountPointBuilder_String_HTMLOptionElement
          extends MountPointBuilder[HTMLOptionElement, text.type, String] {
        def mountProperty(
            element: HTMLOptionElement,
            binding: Binding[String]
        ) = {
          Binding.BindingInstances.map(binding)(element.text = _)
        }
      }
    }
    object valueAsNumber extends AttributeFactory.Typed {
      implicit object mountPointBuilder_Double_HTMLInputElement
          extends MountPointBuilder[
            HTMLInputElement,
            valueAsNumber.type,
            Double
          ] {
        def mountProperty(
            element: HTMLInputElement,
            binding: Binding[Double]
        ) = {
          Binding.BindingInstances.map(binding)(element.valueAsNumber = _)
        }
      }
    }
  }
  import properties._
  object abbr extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLTableCellElement
        : AttributeSetter[HTMLTableCellElement, abbr.type] =
      new AttributeSetter(_.setAttribute("abbr", _))
    @inline implicit def attributeRemover_HTMLTableCellElement
        : AttributeRemover[HTMLTableCellElement, abbr.type] =
      new AttributeRemover(_.removeAttribute("abbr"))
  }
  object accept extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, accept.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.accept = _)
      }
    }
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, accept.type] = new AttributeSetter(
      _.setAttribute("accept", _)
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, accept.type] =
      new AttributeRemover(_.removeAttribute("accept"))
  }
  object accept$minuscharset extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLFormElement
        : AttributeSetter[HTMLFormElement, accept$minuscharset.type] =
      new AttributeSetter(_.setAttribute("accept-charset", _))
    @inline implicit def attributeRemover_HTMLFormElement
        : AttributeRemover[HTMLFormElement, accept$minuscharset.type] =
      new AttributeRemover(_.removeAttribute("accept-charset"))
  }
  @inline def accessKey: properties.accessKey.type = properties.accessKey
  object accesskey extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, accesskey.type] = new AttributeSetter(
      _.setAttribute("accesskey", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, accesskey.type] = new AttributeRemover(
      _.removeAttribute("accesskey")
    )
  }
  object action extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLFormElement
        : AttributeSetter[HTMLFormElement, action.type] = new AttributeSetter(
      _.setAttribute("action", _)
    )
    @inline implicit def attributeRemover_HTMLFormElement
        : AttributeRemover[HTMLFormElement, action.type] = new AttributeRemover(
      _.removeAttribute("action")
    )
  }
  object allow extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLIFrameElement
        : AttributeSetter[HTMLIFrameElement, allow.type] = new AttributeSetter(
      _.setAttribute("allow", _)
    )
    @inline implicit def attributeRemover_HTMLIFrameElement
        : AttributeRemover[HTMLIFrameElement, allow.type] =
      new AttributeRemover(_.removeAttribute("allow"))
  }
  object allowfullscreen extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLIFrameElement
        : AttributeSetter[HTMLIFrameElement, allowfullscreen.type] =
      new AttributeSetter(_.setAttribute("allowfullscreen", _))
    @inline implicit def attributeRemover_HTMLIFrameElement
        : AttributeRemover[HTMLIFrameElement, allowfullscreen.type] =
      new AttributeRemover(_.removeAttribute("allowfullscreen"))
  }
  object alt extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, alt.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.alt = _)
      }
    }
    @inline implicit def attributeSetter_HTMLAreaElement
        : AttributeSetter[HTMLAreaElement, alt.type] = new AttributeSetter(
      _.setAttribute("alt", _)
    )
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, alt.type] = new AttributeSetter(
      _.setAttribute("alt", _)
    )
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, alt.type] = new AttributeSetter(
      _.setAttribute("alt", _)
    )
    @inline implicit def attributeRemover_HTMLAreaElement
        : AttributeRemover[HTMLAreaElement, alt.type] = new AttributeRemover(
      _.removeAttribute("alt")
    )
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, alt.type] = new AttributeRemover(
      _.removeAttribute("alt")
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, alt.type] = new AttributeRemover(
      _.removeAttribute("alt")
    )
  }
  object as extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, as.type] = new AttributeSetter(
      _.setAttribute("as", _)
    )
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, as.type] = new AttributeRemover(
      _.removeAttribute("as")
    )
  }
  object async extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLScriptElement
        : AttributeSetter[HTMLScriptElement, async.type] = new AttributeSetter(
      _.setAttribute("async", _)
    )
    @inline implicit def attributeRemover_HTMLScriptElement
        : AttributeRemover[HTMLScriptElement, async.type] =
      new AttributeRemover(_.removeAttribute("async"))
  }
  object autocapitalize extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, autocapitalize.type] =
      new AttributeSetter(_.setAttribute("autocapitalize", _))
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, autocapitalize.type] =
      new AttributeRemover(_.removeAttribute("autocapitalize"))
  }
  object autocomplete extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, autocomplete.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.autocomplete = _)
      }
    }
    @inline implicit def attributeSetter_HTMLFormElement
        : AttributeSetter[HTMLFormElement, autocomplete.type] =
      new AttributeSetter(_.setAttribute("autocomplete", _))
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, autocomplete.type] =
      new AttributeSetter(_.setAttribute("autocomplete", _))
    @inline implicit def attributeSetter_HTMLSelectElement
        : AttributeSetter[HTMLSelectElement, autocomplete.type] =
      new AttributeSetter(_.setAttribute("autocomplete", _))
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, autocomplete.type] =
      new AttributeSetter(_.setAttribute("autocomplete", _))
    @inline implicit def attributeRemover_HTMLFormElement
        : AttributeRemover[HTMLFormElement, autocomplete.type] =
      new AttributeRemover(_.removeAttribute("autocomplete"))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, autocomplete.type] =
      new AttributeRemover(_.removeAttribute("autocomplete"))
    @inline implicit def attributeRemover_HTMLSelectElement
        : AttributeRemover[HTMLSelectElement, autocomplete.type] =
      new AttributeRemover(_.removeAttribute("autocomplete"))
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, autocomplete.type] =
      new AttributeRemover(_.removeAttribute("autocomplete"))
  }
  object autofocus extends AttributeFactory.Typed {
    implicit object mountPointBuilder_Boolean_HTMLButtonElement
        extends MountPointBuilder[HTMLButtonElement, autofocus.type, Boolean] {
      def mountProperty(
          element: HTMLButtonElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.autofocus = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, autofocus.type, Boolean] {
      def mountProperty(
          element: HTMLInputElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.autofocus = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLSelectElement
        extends MountPointBuilder[HTMLSelectElement, autofocus.type, Boolean] {
      def mountProperty(
          element: HTMLSelectElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.autofocus = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLTextAreaElement
        extends MountPointBuilder[
          HTMLTextAreaElement,
          autofocus.type,
          Boolean
        ] {
      def mountProperty(
          element: HTMLTextAreaElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.autofocus = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, autofocus.type] = new AttributeSetter(
      _.setAttribute("autofocus", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, autofocus.type] = new AttributeRemover(
      _.removeAttribute("autofocus")
    )
  }
  object autoplay extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLAudioElement
        : AttributeSetter[HTMLAudioElement, autoplay.type] =
      new AttributeSetter(_.setAttribute("autoplay", _))
    @inline implicit def attributeSetter_HTMLVideoElement
        : AttributeSetter[HTMLVideoElement, autoplay.type] =
      new AttributeSetter(_.setAttribute("autoplay", _))
    @inline implicit def attributeRemover_HTMLAudioElement
        : AttributeRemover[HTMLAudioElement, autoplay.type] =
      new AttributeRemover(_.removeAttribute("autoplay"))
    @inline implicit def attributeRemover_HTMLVideoElement
        : AttributeRemover[HTMLVideoElement, autoplay.type] =
      new AttributeRemover(_.removeAttribute("autoplay"))
  }
  object blocking extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, blocking.type] = new AttributeSetter(
      _.setAttribute("blocking", _)
    )
    @inline implicit def attributeSetter_HTMLScriptElement
        : AttributeSetter[HTMLScriptElement, blocking.type] =
      new AttributeSetter(_.setAttribute("blocking", _))
    @inline implicit def attributeSetter_HTMLStyleElement
        : AttributeSetter[HTMLStyleElement, blocking.type] =
      new AttributeSetter(_.setAttribute("blocking", _))
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, blocking.type] =
      new AttributeRemover(_.removeAttribute("blocking"))
    @inline implicit def attributeRemover_HTMLScriptElement
        : AttributeRemover[HTMLScriptElement, blocking.type] =
      new AttributeRemover(_.removeAttribute("blocking"))
    @inline implicit def attributeRemover_HTMLStyleElement
        : AttributeRemover[HTMLStyleElement, blocking.type] =
      new AttributeRemover(_.removeAttribute("blocking"))
  }
  object charset extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLMetaElement
        : AttributeSetter[HTMLMetaElement, charset.type] = new AttributeSetter(
      _.setAttribute("charset", _)
    )
    @inline implicit def attributeRemover_HTMLMetaElement
        : AttributeRemover[HTMLMetaElement, charset.type] =
      new AttributeRemover(_.removeAttribute("charset"))
  }
  object checked extends AttributeFactory.Typed {
    implicit object mountPointBuilder_Boolean_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, checked.type, Boolean] {
      def mountProperty(
          element: HTMLInputElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.checked = _)
      }
    }
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, checked.type] = new AttributeSetter(
      _.setAttribute("checked", _)
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, checked.type] =
      new AttributeRemover(_.removeAttribute("checked"))
  }
  object cite extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLQuoteElement
        : AttributeSetter[HTMLQuoteElement, cite.type] = new AttributeSetter(
      _.setAttribute("cite", _)
    )
    @inline implicit def attributeSetter_HTMLModElement
        : AttributeSetter[HTMLModElement, cite.type] = new AttributeSetter(
      _.setAttribute("cite", _)
    )
    @inline implicit def attributeRemover_HTMLQuoteElement
        : AttributeRemover[HTMLQuoteElement, cite.type] = new AttributeRemover(
      _.removeAttribute("cite")
    )
    @inline implicit def attributeRemover_HTMLModElement
        : AttributeRemover[HTMLModElement, cite.type] = new AttributeRemover(
      _.removeAttribute("cite")
    )
  }
  object `class` extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, `class`.type] = new AttributeSetter(
      _.setAttribute("class", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, `class`.type] = new AttributeRemover(
      _.removeAttribute("class")
    )
  }
  @inline def classList: properties.classList.type = properties.classList
  @inline def className: properties.className.type = properties.className
  object color extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, color.type] = new AttributeSetter(
      _.setAttribute("color", _)
    )
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, color.type] = new AttributeRemover(
      _.removeAttribute("color")
    )
  }
  object cols extends AttributeFactory.Typed {
    implicit object mountPointBuilder_Int_HTMLTextAreaElement
        extends MountPointBuilder[HTMLTextAreaElement, cols.type, Int] {
      def mountProperty(element: HTMLTextAreaElement, binding: Binding[Int]) = {
        Binding.BindingInstances.map(binding)(element.cols = _)
      }
    }
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, cols.type] = new AttributeSetter(
      _.setAttribute("cols", _)
    )
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, cols.type] =
      new AttributeRemover(_.removeAttribute("cols"))
  }
  object colspan extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLTableCellElement
        : AttributeSetter[HTMLTableCellElement, colspan.type] =
      new AttributeSetter(_.setAttribute("colspan", _))
    @inline implicit def attributeRemover_HTMLTableCellElement
        : AttributeRemover[HTMLTableCellElement, colspan.type] =
      new AttributeRemover(_.removeAttribute("colspan"))
  }
  object content extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLMetaElement
        : AttributeSetter[HTMLMetaElement, content.type] = new AttributeSetter(
      _.setAttribute("content", _)
    )
    @inline implicit def attributeRemover_HTMLMetaElement
        : AttributeRemover[HTMLMetaElement, content.type] =
      new AttributeRemover(_.removeAttribute("content"))
  }
  @inline def contentEditable: properties.contentEditable.type =
    properties.contentEditable
  object contenteditable extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, contenteditable.type] =
      new AttributeSetter(_.setAttribute("contenteditable", _))
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, contenteditable.type] =
      new AttributeRemover(_.removeAttribute("contenteditable"))
  }
  object controls extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLAudioElement
        : AttributeSetter[HTMLAudioElement, controls.type] =
      new AttributeSetter(_.setAttribute("controls", _))
    @inline implicit def attributeSetter_HTMLVideoElement
        : AttributeSetter[HTMLVideoElement, controls.type] =
      new AttributeSetter(_.setAttribute("controls", _))
    @inline implicit def attributeRemover_HTMLAudioElement
        : AttributeRemover[HTMLAudioElement, controls.type] =
      new AttributeRemover(_.removeAttribute("controls"))
    @inline implicit def attributeRemover_HTMLVideoElement
        : AttributeRemover[HTMLVideoElement, controls.type] =
      new AttributeRemover(_.removeAttribute("controls"))
  }
  object coords extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLAreaElement
        : AttributeSetter[HTMLAreaElement, coords.type] = new AttributeSetter(
      _.setAttribute("coords", _)
    )
    @inline implicit def attributeRemover_HTMLAreaElement
        : AttributeRemover[HTMLAreaElement, coords.type] = new AttributeRemover(
      _.removeAttribute("coords")
    )
  }
  object crossorigin extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLAudioElement
        : AttributeSetter[HTMLAudioElement, crossorigin.type] =
      new AttributeSetter(_.setAttribute("crossorigin", _))
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, crossorigin.type] =
      new AttributeSetter(_.setAttribute("crossorigin", _))
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, crossorigin.type] =
      new AttributeSetter(_.setAttribute("crossorigin", _))
    @inline implicit def attributeSetter_HTMLScriptElement
        : AttributeSetter[HTMLScriptElement, crossorigin.type] =
      new AttributeSetter(_.setAttribute("crossorigin", _))
    @inline implicit def attributeSetter_HTMLVideoElement
        : AttributeSetter[HTMLVideoElement, crossorigin.type] =
      new AttributeSetter(_.setAttribute("crossorigin", _))
    @inline implicit def attributeRemover_HTMLAudioElement
        : AttributeRemover[HTMLAudioElement, crossorigin.type] =
      new AttributeRemover(_.removeAttribute("crossorigin"))
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, crossorigin.type] =
      new AttributeRemover(_.removeAttribute("crossorigin"))
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, crossorigin.type] =
      new AttributeRemover(_.removeAttribute("crossorigin"))
    @inline implicit def attributeRemover_HTMLScriptElement
        : AttributeRemover[HTMLScriptElement, crossorigin.type] =
      new AttributeRemover(_.removeAttribute("crossorigin"))
    @inline implicit def attributeRemover_HTMLVideoElement
        : AttributeRemover[HTMLVideoElement, crossorigin.type] =
      new AttributeRemover(_.removeAttribute("crossorigin"))
  }
  object data extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLObjectElement
        : AttributeSetter[HTMLObjectElement, data.type] = new AttributeSetter(
      _.setAttribute("data", _)
    )
    @inline implicit def attributeRemover_HTMLObjectElement
        : AttributeRemover[HTMLObjectElement, data.type] = new AttributeRemover(
      _.removeAttribute("data")
    )
  }
  object datetime extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLModElement
        : AttributeSetter[HTMLModElement, datetime.type] = new AttributeSetter(
      _.setAttribute("datetime", _)
    )
    @inline implicit def attributeSetter_HTMLTimeElement
        : AttributeSetter[HTMLTimeElement, datetime.type] = new AttributeSetter(
      _.setAttribute("datetime", _)
    )
    @inline implicit def attributeRemover_HTMLModElement
        : AttributeRemover[HTMLModElement, datetime.type] =
      new AttributeRemover(_.removeAttribute("datetime"))
    @inline implicit def attributeRemover_HTMLTimeElement
        : AttributeRemover[HTMLTimeElement, datetime.type] =
      new AttributeRemover(_.removeAttribute("datetime"))
  }
  object decoding extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, decoding.type] =
      new AttributeSetter(_.setAttribute("decoding", _))
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, decoding.type] =
      new AttributeRemover(_.removeAttribute("decoding"))
  }
  object default extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLTrackElement
        : AttributeSetter[HTMLTrackElement, default.type] = new AttributeSetter(
      _.setAttribute("default", _)
    )
    @inline implicit def attributeRemover_HTMLTrackElement
        : AttributeRemover[HTMLTrackElement, default.type] =
      new AttributeRemover(_.removeAttribute("default"))
  }
  @inline def defaultChecked: properties.defaultChecked.type =
    properties.defaultChecked
  @inline def defaultSelected: properties.defaultSelected.type =
    properties.defaultSelected
  @inline def defaultValue: properties.defaultValue.type =
    properties.defaultValue
  object defer extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLScriptElement
        : AttributeSetter[HTMLScriptElement, defer.type] = new AttributeSetter(
      _.setAttribute("defer", _)
    )
    @inline implicit def attributeRemover_HTMLScriptElement
        : AttributeRemover[HTMLScriptElement, defer.type] =
      new AttributeRemover(_.removeAttribute("defer"))
  }
  object dir extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLElement
        extends MountPointBuilder[HTMLElement, dir.type, String] {
      def mountProperty(element: HTMLElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.dir = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, dir.type] = new AttributeSetter(
      _.setAttribute("dir", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, dir.type] = new AttributeRemover(
      _.removeAttribute("dir")
    )
  }
  object dirname extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, dirname.type] = new AttributeSetter(
      _.setAttribute("dirname", _)
    )
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, dirname.type] =
      new AttributeSetter(_.setAttribute("dirname", _))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, dirname.type] =
      new AttributeRemover(_.removeAttribute("dirname"))
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, dirname.type] =
      new AttributeRemover(_.removeAttribute("dirname"))
  }
  object disabled extends AttributeFactory.Typed {
    implicit object mountPointBuilder_Boolean_HTMLButtonElement
        extends MountPointBuilder[HTMLButtonElement, disabled.type, Boolean] {
      def mountProperty(
          element: HTMLButtonElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.disabled = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, disabled.type, Boolean] {
      def mountProperty(
          element: HTMLInputElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.disabled = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLOptGroupElement
        extends MountPointBuilder[HTMLOptGroupElement, disabled.type, Boolean] {
      def mountProperty(
          element: HTMLOptGroupElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.disabled = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLOptionElement
        extends MountPointBuilder[HTMLOptionElement, disabled.type, Boolean] {
      def mountProperty(
          element: HTMLOptionElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.disabled = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLSelectElement
        extends MountPointBuilder[HTMLSelectElement, disabled.type, Boolean] {
      def mountProperty(
          element: HTMLSelectElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.disabled = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLTextAreaElement
        extends MountPointBuilder[HTMLTextAreaElement, disabled.type, Boolean] {
      def mountProperty(
          element: HTMLTextAreaElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.disabled = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLFieldSetElement
        extends MountPointBuilder[HTMLFieldSetElement, disabled.type, Boolean] {
      def mountProperty(
          element: HTMLFieldSetElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.disabled = _)
      }
    }
    @inline implicit def attributeSetter_HTMLButtonElement
        : AttributeSetter[HTMLButtonElement, disabled.type] =
      new AttributeSetter(_.setAttribute("disabled", _))
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, disabled.type] =
      new AttributeSetter(_.setAttribute("disabled", _))
    @inline implicit def attributeSetter_HTMLOptGroupElement
        : AttributeSetter[HTMLOptGroupElement, disabled.type] =
      new AttributeSetter(_.setAttribute("disabled", _))
    @inline implicit def attributeSetter_HTMLOptionElement
        : AttributeSetter[HTMLOptionElement, disabled.type] =
      new AttributeSetter(_.setAttribute("disabled", _))
    @inline implicit def attributeSetter_HTMLSelectElement
        : AttributeSetter[HTMLSelectElement, disabled.type] =
      new AttributeSetter(_.setAttribute("disabled", _))
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, disabled.type] =
      new AttributeSetter(_.setAttribute("disabled", _))
    @inline implicit def attributeSetter_HTMLFieldSetElement
        : AttributeSetter[HTMLFieldSetElement, disabled.type] =
      new AttributeSetter(_.setAttribute("disabled", _))
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, disabled.type] = new AttributeSetter(
      _.setAttribute("disabled", _)
    )
    @inline implicit def attributeRemover_HTMLButtonElement
        : AttributeRemover[HTMLButtonElement, disabled.type] =
      new AttributeRemover(_.removeAttribute("disabled"))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, disabled.type] =
      new AttributeRemover(_.removeAttribute("disabled"))
    @inline implicit def attributeRemover_HTMLOptGroupElement
        : AttributeRemover[HTMLOptGroupElement, disabled.type] =
      new AttributeRemover(_.removeAttribute("disabled"))
    @inline implicit def attributeRemover_HTMLOptionElement
        : AttributeRemover[HTMLOptionElement, disabled.type] =
      new AttributeRemover(_.removeAttribute("disabled"))
    @inline implicit def attributeRemover_HTMLSelectElement
        : AttributeRemover[HTMLSelectElement, disabled.type] =
      new AttributeRemover(_.removeAttribute("disabled"))
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, disabled.type] =
      new AttributeRemover(_.removeAttribute("disabled"))
    @inline implicit def attributeRemover_HTMLFieldSetElement
        : AttributeRemover[HTMLFieldSetElement, disabled.type] =
      new AttributeRemover(_.removeAttribute("disabled"))
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, disabled.type] =
      new AttributeRemover(_.removeAttribute("disabled"))
  }
  object download extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLAnchorElement
        : AttributeSetter[HTMLAnchorElement, download.type] =
      new AttributeSetter(_.setAttribute("download", _))
    @inline implicit def attributeSetter_HTMLAreaElement
        : AttributeSetter[HTMLAreaElement, download.type] = new AttributeSetter(
      _.setAttribute("download", _)
    )
    @inline implicit def attributeRemover_HTMLAnchorElement
        : AttributeRemover[HTMLAnchorElement, download.type] =
      new AttributeRemover(_.removeAttribute("download"))
    @inline implicit def attributeRemover_HTMLAreaElement
        : AttributeRemover[HTMLAreaElement, download.type] =
      new AttributeRemover(_.removeAttribute("download"))
  }
  object draggable extends AttributeFactory.Typed {
    implicit object mountPointBuilder_Boolean_HTMLElement
        extends MountPointBuilder[HTMLElement, draggable.type, Boolean] {
      def mountProperty(element: HTMLElement, binding: Binding[Boolean]) = {
        Binding.BindingInstances.map(binding)(element.draggable = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, draggable.type] = new AttributeSetter(
      _.setAttribute("draggable", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, draggable.type] = new AttributeRemover(
      _.removeAttribute("draggable")
    )
  }
  object enctype extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLFormElement
        : AttributeSetter[HTMLFormElement, enctype.type] = new AttributeSetter(
      _.setAttribute("enctype", _)
    )
    @inline implicit def attributeRemover_HTMLFormElement
        : AttributeRemover[HTMLFormElement, enctype.type] =
      new AttributeRemover(_.removeAttribute("enctype"))
  }
  object enterkeyhint extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, enterkeyhint.type] = new AttributeSetter(
      _.setAttribute("enterkeyhint", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, enterkeyhint.type] =
      new AttributeRemover(_.removeAttribute("enterkeyhint"))
  }
  @inline def files: properties.files.type = properties.files
  @inline def filters: properties.filters.type = properties.filters
  object `for` extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLLabelElement
        : AttributeSetter[HTMLLabelElement, `for`.type] = new AttributeSetter(
      _.setAttribute("for", _)
    )
    @inline implicit def attributeSetter_HTMLOutputElement
        : AttributeSetter[HTMLOutputElement, `for`.type] = new AttributeSetter(
      _.setAttribute("for", _)
    )
    @inline implicit def attributeRemover_HTMLLabelElement
        : AttributeRemover[HTMLLabelElement, `for`.type] = new AttributeRemover(
      _.removeAttribute("for")
    )
    @inline implicit def attributeRemover_HTMLOutputElement
        : AttributeRemover[HTMLOutputElement, `for`.type] =
      new AttributeRemover(_.removeAttribute("for"))
  }
  object form extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLButtonElement
        : AttributeSetter[HTMLButtonElement, form.type] = new AttributeSetter(
      _.setAttribute("form", _)
    )
    @inline implicit def attributeSetter_HTMLFieldSetElement
        : AttributeSetter[HTMLFieldSetElement, form.type] = new AttributeSetter(
      _.setAttribute("form", _)
    )
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, form.type] = new AttributeSetter(
      _.setAttribute("form", _)
    )
    @inline implicit def attributeSetter_HTMLObjectElement
        : AttributeSetter[HTMLObjectElement, form.type] = new AttributeSetter(
      _.setAttribute("form", _)
    )
    @inline implicit def attributeSetter_HTMLOutputElement
        : AttributeSetter[HTMLOutputElement, form.type] = new AttributeSetter(
      _.setAttribute("form", _)
    )
    @inline implicit def attributeSetter_HTMLSelectElement
        : AttributeSetter[HTMLSelectElement, form.type] = new AttributeSetter(
      _.setAttribute("form", _)
    )
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, form.type] = new AttributeSetter(
      _.setAttribute("form", _)
    )
    @inline implicit def attributeRemover_HTMLButtonElement
        : AttributeRemover[HTMLButtonElement, form.type] = new AttributeRemover(
      _.removeAttribute("form")
    )
    @inline implicit def attributeRemover_HTMLFieldSetElement
        : AttributeRemover[HTMLFieldSetElement, form.type] =
      new AttributeRemover(_.removeAttribute("form"))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, form.type] = new AttributeRemover(
      _.removeAttribute("form")
    )
    @inline implicit def attributeRemover_HTMLObjectElement
        : AttributeRemover[HTMLObjectElement, form.type] = new AttributeRemover(
      _.removeAttribute("form")
    )
    @inline implicit def attributeRemover_HTMLOutputElement
        : AttributeRemover[HTMLOutputElement, form.type] = new AttributeRemover(
      _.removeAttribute("form")
    )
    @inline implicit def attributeRemover_HTMLSelectElement
        : AttributeRemover[HTMLSelectElement, form.type] = new AttributeRemover(
      _.removeAttribute("form")
    )
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, form.type] =
      new AttributeRemover(_.removeAttribute("form"))
  }
  @inline def formAction: properties.formAction.type = properties.formAction
  @inline def formEnctype: properties.formEnctype.type = properties.formEnctype
  @inline def formMethod: properties.formMethod.type = properties.formMethod
  @inline def formNoValidate: properties.formNoValidate.type =
    properties.formNoValidate
  @inline def formTarget: properties.formTarget.type = properties.formTarget
  object formaction extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLButtonElement
        : AttributeSetter[HTMLButtonElement, formaction.type] =
      new AttributeSetter(_.setAttribute("formaction", _))
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, formaction.type] =
      new AttributeSetter(_.setAttribute("formaction", _))
    @inline implicit def attributeRemover_HTMLButtonElement
        : AttributeRemover[HTMLButtonElement, formaction.type] =
      new AttributeRemover(_.removeAttribute("formaction"))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, formaction.type] =
      new AttributeRemover(_.removeAttribute("formaction"))
  }
  object formenctype extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLButtonElement
        : AttributeSetter[HTMLButtonElement, formenctype.type] =
      new AttributeSetter(_.setAttribute("formenctype", _))
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, formenctype.type] =
      new AttributeSetter(_.setAttribute("formenctype", _))
    @inline implicit def attributeRemover_HTMLButtonElement
        : AttributeRemover[HTMLButtonElement, formenctype.type] =
      new AttributeRemover(_.removeAttribute("formenctype"))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, formenctype.type] =
      new AttributeRemover(_.removeAttribute("formenctype"))
  }
  object formmethod extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLButtonElement
        : AttributeSetter[HTMLButtonElement, formmethod.type] =
      new AttributeSetter(_.setAttribute("formmethod", _))
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, formmethod.type] =
      new AttributeSetter(_.setAttribute("formmethod", _))
    @inline implicit def attributeRemover_HTMLButtonElement
        : AttributeRemover[HTMLButtonElement, formmethod.type] =
      new AttributeRemover(_.removeAttribute("formmethod"))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, formmethod.type] =
      new AttributeRemover(_.removeAttribute("formmethod"))
  }
  object formnovalidate extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLButtonElement
        : AttributeSetter[HTMLButtonElement, formnovalidate.type] =
      new AttributeSetter(_.setAttribute("formnovalidate", _))
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, formnovalidate.type] =
      new AttributeSetter(_.setAttribute("formnovalidate", _))
    @inline implicit def attributeRemover_HTMLButtonElement
        : AttributeRemover[HTMLButtonElement, formnovalidate.type] =
      new AttributeRemover(_.removeAttribute("formnovalidate"))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, formnovalidate.type] =
      new AttributeRemover(_.removeAttribute("formnovalidate"))
  }
  object formtarget extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLButtonElement
        : AttributeSetter[HTMLButtonElement, formtarget.type] =
      new AttributeSetter(_.setAttribute("formtarget", _))
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, formtarget.type] =
      new AttributeSetter(_.setAttribute("formtarget", _))
    @inline implicit def attributeRemover_HTMLButtonElement
        : AttributeRemover[HTMLButtonElement, formtarget.type] =
      new AttributeRemover(_.removeAttribute("formtarget"))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, formtarget.type] =
      new AttributeRemover(_.removeAttribute("formtarget"))
  }
  @inline def gotpointercapture: properties.gotpointercapture.type =
    properties.gotpointercapture
  object headers extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLTableCellElement
        : AttributeSetter[HTMLTableCellElement, headers.type] =
      new AttributeSetter(_.setAttribute("headers", _))
    @inline implicit def attributeRemover_HTMLTableCellElement
        : AttributeRemover[HTMLTableCellElement, headers.type] =
      new AttributeRemover(_.removeAttribute("headers"))
  }
  object height extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, height.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.height = _)
      }
    }
    @inline implicit def attributeSetter_HTMLCanvasElement
        : AttributeSetter[HTMLCanvasElement, height.type] = new AttributeSetter(
      _.setAttribute("height", _)
    )
    @inline implicit def attributeSetter_HTMLEmbedElement
        : AttributeSetter[HTMLEmbedElement, height.type] = new AttributeSetter(
      _.setAttribute("height", _)
    )
    @inline implicit def attributeSetter_HTMLIFrameElement
        : AttributeSetter[HTMLIFrameElement, height.type] = new AttributeSetter(
      _.setAttribute("height", _)
    )
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, height.type] = new AttributeSetter(
      _.setAttribute("height", _)
    )
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, height.type] = new AttributeSetter(
      _.setAttribute("height", _)
    )
    @inline implicit def attributeSetter_HTMLObjectElement
        : AttributeSetter[HTMLObjectElement, height.type] = new AttributeSetter(
      _.setAttribute("height", _)
    )
    @inline implicit def attributeSetter_HTMLSourceElement
        : AttributeSetter[HTMLSourceElement, height.type] = new AttributeSetter(
      _.setAttribute("height", _)
    )
    @inline implicit def attributeSetter_HTMLPictureElement
        : AttributeSetter[HTMLPictureElement, height.type] =
      new AttributeSetter(_.setAttribute("height", _))
    @inline implicit def attributeSetter_HTMLVideoElement
        : AttributeSetter[HTMLVideoElement, height.type] = new AttributeSetter(
      _.setAttribute("height", _)
    )
    @inline implicit def attributeRemover_HTMLCanvasElement
        : AttributeRemover[HTMLCanvasElement, height.type] =
      new AttributeRemover(_.removeAttribute("height"))
    @inline implicit def attributeRemover_HTMLEmbedElement
        : AttributeRemover[HTMLEmbedElement, height.type] =
      new AttributeRemover(_.removeAttribute("height"))
    @inline implicit def attributeRemover_HTMLIFrameElement
        : AttributeRemover[HTMLIFrameElement, height.type] =
      new AttributeRemover(_.removeAttribute("height"))
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, height.type] =
      new AttributeRemover(_.removeAttribute("height"))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, height.type] =
      new AttributeRemover(_.removeAttribute("height"))
    @inline implicit def attributeRemover_HTMLObjectElement
        : AttributeRemover[HTMLObjectElement, height.type] =
      new AttributeRemover(_.removeAttribute("height"))
    @inline implicit def attributeRemover_HTMLSourceElement
        : AttributeRemover[HTMLSourceElement, height.type] =
      new AttributeRemover(_.removeAttribute("height"))
    @inline implicit def attributeRemover_HTMLPictureElement
        : AttributeRemover[HTMLPictureElement, height.type] =
      new AttributeRemover(_.removeAttribute("height"))
    @inline implicit def attributeRemover_HTMLVideoElement
        : AttributeRemover[HTMLVideoElement, height.type] =
      new AttributeRemover(_.removeAttribute("height"))
  }
  object hidden extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, hidden.type] = new AttributeSetter(
      _.setAttribute("hidden", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, hidden.type] = new AttributeRemover(
      _.removeAttribute("hidden")
    )
  }
  object high extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLMeterElement
        : AttributeSetter[HTMLMeterElement, high.type] = new AttributeSetter(
      _.setAttribute("high", _)
    )
    @inline implicit def attributeRemover_HTMLMeterElement
        : AttributeRemover[HTMLMeterElement, high.type] = new AttributeRemover(
      _.removeAttribute("high")
    )
  }
  object href extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLLinkElement
        extends MountPointBuilder[HTMLLinkElement, href.type, String] {
      def mountProperty(element: HTMLLinkElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.href = _)
      }
    }
    @inline implicit def attributeSetter_HTMLAnchorElement
        : AttributeSetter[HTMLAnchorElement, href.type] = new AttributeSetter(
      _.setAttribute("href", _)
    )
    @inline implicit def attributeSetter_HTMLAreaElement
        : AttributeSetter[HTMLAreaElement, href.type] = new AttributeSetter(
      _.setAttribute("href", _)
    )
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, href.type] = new AttributeSetter(
      _.setAttribute("href", _)
    )
    @inline implicit def attributeSetter_HTMLBaseElement
        : AttributeSetter[HTMLBaseElement, href.type] = new AttributeSetter(
      _.setAttribute("href", _)
    )
    @inline implicit def attributeRemover_HTMLAnchorElement
        : AttributeRemover[HTMLAnchorElement, href.type] = new AttributeRemover(
      _.removeAttribute("href")
    )
    @inline implicit def attributeRemover_HTMLAreaElement
        : AttributeRemover[HTMLAreaElement, href.type] = new AttributeRemover(
      _.removeAttribute("href")
    )
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, href.type] = new AttributeRemover(
      _.removeAttribute("href")
    )
    @inline implicit def attributeRemover_HTMLBaseElement
        : AttributeRemover[HTMLBaseElement, href.type] = new AttributeRemover(
      _.removeAttribute("href")
    )
  }
  object hreflang extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLLinkElement
        extends MountPointBuilder[HTMLLinkElement, hreflang.type, String] {
      def mountProperty(element: HTMLLinkElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.hreflang = _)
      }
    }
    @inline implicit def attributeSetter_HTMLAnchorElement
        : AttributeSetter[HTMLAnchorElement, hreflang.type] =
      new AttributeSetter(_.setAttribute("hreflang", _))
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, hreflang.type] = new AttributeSetter(
      _.setAttribute("hreflang", _)
    )
    @inline implicit def attributeRemover_HTMLAnchorElement
        : AttributeRemover[HTMLAnchorElement, hreflang.type] =
      new AttributeRemover(_.removeAttribute("hreflang"))
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, hreflang.type] =
      new AttributeRemover(_.removeAttribute("hreflang"))
  }
  object http$minusequiv extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLMetaElement
        : AttributeSetter[HTMLMetaElement, http$minusequiv.type] =
      new AttributeSetter(_.setAttribute("http-equiv", _))
    @inline implicit def attributeRemover_HTMLMetaElement
        : AttributeRemover[HTMLMetaElement, http$minusequiv.type] =
      new AttributeRemover(_.removeAttribute("http-equiv"))
  }
  object id extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_Element
        extends MountPointBuilder[Element, id.type, String] {
      def mountProperty(element: Element, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.id = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, id.type] = new AttributeSetter(
      _.setAttribute("id", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, id.type] = new AttributeRemover(
      _.removeAttribute("id")
    )
  }
  object imagesizes extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, imagesizes.type] =
      new AttributeSetter(_.setAttribute("imagesizes", _))
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, imagesizes.type] =
      new AttributeRemover(_.removeAttribute("imagesizes"))
  }
  object imagesrcset extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, imagesrcset.type] =
      new AttributeSetter(_.setAttribute("imagesrcset", _))
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, imagesrcset.type] =
      new AttributeRemover(_.removeAttribute("imagesrcset"))
  }
  @inline def indeterminate: properties.indeterminate.type =
    properties.indeterminate
  object inert extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, inert.type] = new AttributeSetter(
      _.setAttribute("inert", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, inert.type] = new AttributeRemover(
      _.removeAttribute("inert")
    )
  }
  @inline def innerHTML: properties.innerHTML.type = properties.innerHTML
  object inputmode extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, inputmode.type] = new AttributeSetter(
      _.setAttribute("inputmode", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, inputmode.type] = new AttributeRemover(
      _.removeAttribute("inputmode")
    )
  }
  object integrity extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, integrity.type] =
      new AttributeSetter(_.setAttribute("integrity", _))
    @inline implicit def attributeSetter_HTMLScriptElement
        : AttributeSetter[HTMLScriptElement, integrity.type] =
      new AttributeSetter(_.setAttribute("integrity", _))
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, integrity.type] =
      new AttributeRemover(_.removeAttribute("integrity"))
    @inline implicit def attributeRemover_HTMLScriptElement
        : AttributeRemover[HTMLScriptElement, integrity.type] =
      new AttributeRemover(_.removeAttribute("integrity"))
  }
  object is extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, is.type] = new AttributeSetter(
      _.setAttribute("is", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, is.type] = new AttributeRemover(
      _.removeAttribute("is")
    )
  }
  object ismap extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, ismap.type] = new AttributeSetter(
      _.setAttribute("ismap", _)
    )
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, ismap.type] = new AttributeRemover(
      _.removeAttribute("ismap")
    )
  }
  object itemid extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, itemid.type] = new AttributeSetter(
      _.setAttribute("itemid", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, itemid.type] = new AttributeRemover(
      _.removeAttribute("itemid")
    )
  }
  object itemprop extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, itemprop.type] = new AttributeSetter(
      _.setAttribute("itemprop", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, itemprop.type] = new AttributeRemover(
      _.removeAttribute("itemprop")
    )
  }
  object itemref extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, itemref.type] = new AttributeSetter(
      _.setAttribute("itemref", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, itemref.type] = new AttributeRemover(
      _.removeAttribute("itemref")
    )
  }
  object itemscope extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, itemscope.type] = new AttributeSetter(
      _.setAttribute("itemscope", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, itemscope.type] = new AttributeRemover(
      _.removeAttribute("itemscope")
    )
  }
  object itemtype extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, itemtype.type] = new AttributeSetter(
      _.setAttribute("itemtype", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, itemtype.type] = new AttributeRemover(
      _.removeAttribute("itemtype")
    )
  }
  object kind extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLTrackElement
        : AttributeSetter[HTMLTrackElement, kind.type] = new AttributeSetter(
      _.setAttribute("kind", _)
    )
    @inline implicit def attributeRemover_HTMLTrackElement
        : AttributeRemover[HTMLTrackElement, kind.type] = new AttributeRemover(
      _.removeAttribute("kind")
    )
  }
  object label extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLOptGroupElement
        extends MountPointBuilder[HTMLOptGroupElement, label.type, String] {
      def mountProperty(
          element: HTMLOptGroupElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.label = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLOptionElement
        extends MountPointBuilder[HTMLOptionElement, label.type, String] {
      def mountProperty(
          element: HTMLOptionElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.label = _)
      }
    }
    @inline implicit def attributeSetter_HTMLOptGroupElement
        : AttributeSetter[HTMLOptGroupElement, label.type] =
      new AttributeSetter(_.setAttribute("label", _))
    @inline implicit def attributeSetter_HTMLOptionElement
        : AttributeSetter[HTMLOptionElement, label.type] = new AttributeSetter(
      _.setAttribute("label", _)
    )
    @inline implicit def attributeSetter_HTMLTrackElement
        : AttributeSetter[HTMLTrackElement, label.type] = new AttributeSetter(
      _.setAttribute("label", _)
    )
    @inline implicit def attributeRemover_HTMLOptGroupElement
        : AttributeRemover[HTMLOptGroupElement, label.type] =
      new AttributeRemover(_.removeAttribute("label"))
    @inline implicit def attributeRemover_HTMLOptionElement
        : AttributeRemover[HTMLOptionElement, label.type] =
      new AttributeRemover(_.removeAttribute("label"))
    @inline implicit def attributeRemover_HTMLTrackElement
        : AttributeRemover[HTMLTrackElement, label.type] = new AttributeRemover(
      _.removeAttribute("label")
    )
  }
  object lang extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLElement
        extends MountPointBuilder[HTMLElement, lang.type, String] {
      def mountProperty(element: HTMLElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.lang = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, lang.type] = new AttributeSetter(
      _.setAttribute("lang", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, lang.type] = new AttributeRemover(
      _.removeAttribute("lang")
    )
  }
  @inline def length: properties.length.type = properties.length
  object list extends AttributeFactory.Typed {
    implicit object mountPointBuilder_HTMLElement_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, list.type, HTMLElement] {
      def mountProperty(
          element: HTMLInputElement,
          binding: Binding[HTMLElement]
      ) = {
        Binding.BindingInstances.map(binding)(element.list = _)
      }
    }
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, list.type] = new AttributeSetter(
      _.setAttribute("list", _)
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, list.type] = new AttributeRemover(
      _.removeAttribute("list")
    )
  }
  object loading extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLIFrameElement
        : AttributeSetter[HTMLIFrameElement, loading.type] =
      new AttributeSetter(_.setAttribute("loading", _))
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, loading.type] = new AttributeSetter(
      _.setAttribute("loading", _)
    )
    @inline implicit def attributeRemover_HTMLIFrameElement
        : AttributeRemover[HTMLIFrameElement, loading.type] =
      new AttributeRemover(_.removeAttribute("loading"))
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, loading.type] =
      new AttributeRemover(_.removeAttribute("loading"))
  }
  object loop extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLAudioElement
        : AttributeSetter[HTMLAudioElement, loop.type] = new AttributeSetter(
      _.setAttribute("loop", _)
    )
    @inline implicit def attributeSetter_HTMLVideoElement
        : AttributeSetter[HTMLVideoElement, loop.type] = new AttributeSetter(
      _.setAttribute("loop", _)
    )
    @inline implicit def attributeRemover_HTMLAudioElement
        : AttributeRemover[HTMLAudioElement, loop.type] = new AttributeRemover(
      _.removeAttribute("loop")
    )
    @inline implicit def attributeRemover_HTMLVideoElement
        : AttributeRemover[HTMLVideoElement, loop.type] = new AttributeRemover(
      _.removeAttribute("loop")
    )
  }
  @inline def lostpointercapture: properties.lostpointercapture.type =
    properties.lostpointercapture
  object low extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLMeterElement
        : AttributeSetter[HTMLMeterElement, low.type] = new AttributeSetter(
      _.setAttribute("low", _)
    )
    @inline implicit def attributeRemover_HTMLMeterElement
        : AttributeRemover[HTMLMeterElement, low.type] = new AttributeRemover(
      _.removeAttribute("low")
    )
  }
  object max extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, max.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.max = _)
      }
    }
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, max.type] = new AttributeSetter(
      _.setAttribute("max", _)
    )
    @inline implicit def attributeSetter_HTMLMeterElement
        : AttributeSetter[HTMLMeterElement, max.type] = new AttributeSetter(
      _.setAttribute("max", _)
    )
    @inline implicit def attributeSetter_HTMLProgressElement
        : AttributeSetter[HTMLProgressElement, max.type] = new AttributeSetter(
      _.setAttribute("max", _)
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, max.type] = new AttributeRemover(
      _.removeAttribute("max")
    )
    @inline implicit def attributeRemover_HTMLMeterElement
        : AttributeRemover[HTMLMeterElement, max.type] = new AttributeRemover(
      _.removeAttribute("max")
    )
    @inline implicit def attributeRemover_HTMLProgressElement
        : AttributeRemover[HTMLProgressElement, max.type] =
      new AttributeRemover(_.removeAttribute("max"))
  }
  @inline def maxLength: properties.maxLength.type = properties.maxLength
  object maxlength extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, maxlength.type] =
      new AttributeSetter(_.setAttribute("maxlength", _))
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, maxlength.type] =
      new AttributeSetter(_.setAttribute("maxlength", _))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, maxlength.type] =
      new AttributeRemover(_.removeAttribute("maxlength"))
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, maxlength.type] =
      new AttributeRemover(_.removeAttribute("maxlength"))
  }
  object media extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLLinkElement
        extends MountPointBuilder[HTMLLinkElement, media.type, String] {
      def mountProperty(element: HTMLLinkElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.media = _)
      }
    }
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, media.type] = new AttributeSetter(
      _.setAttribute("media", _)
    )
    @inline implicit def attributeSetter_HTMLMetaElement
        : AttributeSetter[HTMLMetaElement, media.type] = new AttributeSetter(
      _.setAttribute("media", _)
    )
    @inline implicit def attributeSetter_HTMLSourceElement
        : AttributeSetter[HTMLSourceElement, media.type] = new AttributeSetter(
      _.setAttribute("media", _)
    )
    @inline implicit def attributeSetter_HTMLPictureElement
        : AttributeSetter[HTMLPictureElement, media.type] = new AttributeSetter(
      _.setAttribute("media", _)
    )
    @inline implicit def attributeSetter_HTMLStyleElement
        : AttributeSetter[HTMLStyleElement, media.type] = new AttributeSetter(
      _.setAttribute("media", _)
    )
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, media.type] = new AttributeRemover(
      _.removeAttribute("media")
    )
    @inline implicit def attributeRemover_HTMLMetaElement
        : AttributeRemover[HTMLMetaElement, media.type] = new AttributeRemover(
      _.removeAttribute("media")
    )
    @inline implicit def attributeRemover_HTMLSourceElement
        : AttributeRemover[HTMLSourceElement, media.type] =
      new AttributeRemover(_.removeAttribute("media"))
    @inline implicit def attributeRemover_HTMLPictureElement
        : AttributeRemover[HTMLPictureElement, media.type] =
      new AttributeRemover(_.removeAttribute("media"))
    @inline implicit def attributeRemover_HTMLStyleElement
        : AttributeRemover[HTMLStyleElement, media.type] = new AttributeRemover(
      _.removeAttribute("media")
    )
  }
  object method extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLFormElement
        : AttributeSetter[HTMLFormElement, method.type] = new AttributeSetter(
      _.setAttribute("method", _)
    )
    @inline implicit def attributeRemover_HTMLFormElement
        : AttributeRemover[HTMLFormElement, method.type] = new AttributeRemover(
      _.removeAttribute("method")
    )
  }
  object min extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, min.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.min = _)
      }
    }
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, min.type] = new AttributeSetter(
      _.setAttribute("min", _)
    )
    @inline implicit def attributeSetter_HTMLMeterElement
        : AttributeSetter[HTMLMeterElement, min.type] = new AttributeSetter(
      _.setAttribute("min", _)
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, min.type] = new AttributeRemover(
      _.removeAttribute("min")
    )
    @inline implicit def attributeRemover_HTMLMeterElement
        : AttributeRemover[HTMLMeterElement, min.type] = new AttributeRemover(
      _.removeAttribute("min")
    )
  }
  object minlength extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, minlength.type] =
      new AttributeSetter(_.setAttribute("minlength", _))
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, minlength.type] =
      new AttributeSetter(_.setAttribute("minlength", _))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, minlength.type] =
      new AttributeRemover(_.removeAttribute("minlength"))
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, minlength.type] =
      new AttributeRemover(_.removeAttribute("minlength"))
  }
  object multiple extends AttributeFactory.Typed {
    implicit object mountPointBuilder_Boolean_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, multiple.type, Boolean] {
      def mountProperty(
          element: HTMLInputElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.multiple = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLSelectElement
        extends MountPointBuilder[HTMLSelectElement, multiple.type, Boolean] {
      def mountProperty(
          element: HTMLSelectElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.multiple = _)
      }
    }
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, multiple.type] =
      new AttributeSetter(_.setAttribute("multiple", _))
    @inline implicit def attributeSetter_HTMLSelectElement
        : AttributeSetter[HTMLSelectElement, multiple.type] =
      new AttributeSetter(_.setAttribute("multiple", _))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, multiple.type] =
      new AttributeRemover(_.removeAttribute("multiple"))
    @inline implicit def attributeRemover_HTMLSelectElement
        : AttributeRemover[HTMLSelectElement, multiple.type] =
      new AttributeRemover(_.removeAttribute("multiple"))
  }
  object muted extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLAudioElement
        : AttributeSetter[HTMLAudioElement, muted.type] = new AttributeSetter(
      _.setAttribute("muted", _)
    )
    @inline implicit def attributeSetter_HTMLVideoElement
        : AttributeSetter[HTMLVideoElement, muted.type] = new AttributeSetter(
      _.setAttribute("muted", _)
    )
    @inline implicit def attributeRemover_HTMLAudioElement
        : AttributeRemover[HTMLAudioElement, muted.type] = new AttributeRemover(
      _.removeAttribute("muted")
    )
    @inline implicit def attributeRemover_HTMLVideoElement
        : AttributeRemover[HTMLVideoElement, muted.type] = new AttributeRemover(
      _.removeAttribute("muted")
    )
  }
  object name extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLButtonElement
        extends MountPointBuilder[HTMLButtonElement, name.type, String] {
      def mountProperty(
          element: HTMLButtonElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.name = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, name.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.name = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLSelectElement
        extends MountPointBuilder[HTMLSelectElement, name.type, String] {
      def mountProperty(
          element: HTMLSelectElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.name = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLTextAreaElement
        extends MountPointBuilder[HTMLTextAreaElement, name.type, String] {
      def mountProperty(
          element: HTMLTextAreaElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.name = _)
      }
    }
    @inline implicit def attributeSetter_HTMLButtonElement
        : AttributeSetter[HTMLButtonElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeSetter_HTMLFieldSetElement
        : AttributeSetter[HTMLFieldSetElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeSetter_HTMLOutputElement
        : AttributeSetter[HTMLOutputElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeSetter_HTMLSelectElement
        : AttributeSetter[HTMLSelectElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeSetter_HTMLFormElement
        : AttributeSetter[HTMLFormElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeSetter_HTMLIFrameElement
        : AttributeSetter[HTMLIFrameElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeSetter_HTMLObjectElement
        : AttributeSetter[HTMLObjectElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeSetter_HTMLMapElement
        : AttributeSetter[HTMLMapElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeSetter_HTMLMetaElement
        : AttributeSetter[HTMLMetaElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeSetter_HTMLSlotElement
        : AttributeSetter[HTMLSlotElement, name.type] = new AttributeSetter(
      _.setAttribute("name", _)
    )
    @inline implicit def attributeRemover_HTMLButtonElement
        : AttributeRemover[HTMLButtonElement, name.type] = new AttributeRemover(
      _.removeAttribute("name")
    )
    @inline implicit def attributeRemover_HTMLFieldSetElement
        : AttributeRemover[HTMLFieldSetElement, name.type] =
      new AttributeRemover(_.removeAttribute("name"))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, name.type] = new AttributeRemover(
      _.removeAttribute("name")
    )
    @inline implicit def attributeRemover_HTMLOutputElement
        : AttributeRemover[HTMLOutputElement, name.type] = new AttributeRemover(
      _.removeAttribute("name")
    )
    @inline implicit def attributeRemover_HTMLSelectElement
        : AttributeRemover[HTMLSelectElement, name.type] = new AttributeRemover(
      _.removeAttribute("name")
    )
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, name.type] =
      new AttributeRemover(_.removeAttribute("name"))
    @inline implicit def attributeRemover_HTMLFormElement
        : AttributeRemover[HTMLFormElement, name.type] = new AttributeRemover(
      _.removeAttribute("name")
    )
    @inline implicit def attributeRemover_HTMLIFrameElement
        : AttributeRemover[HTMLIFrameElement, name.type] = new AttributeRemover(
      _.removeAttribute("name")
    )
    @inline implicit def attributeRemover_HTMLObjectElement
        : AttributeRemover[HTMLObjectElement, name.type] = new AttributeRemover(
      _.removeAttribute("name")
    )
    @inline implicit def attributeRemover_HTMLMapElement
        : AttributeRemover[HTMLMapElement, name.type] = new AttributeRemover(
      _.removeAttribute("name")
    )
    @inline implicit def attributeRemover_HTMLMetaElement
        : AttributeRemover[HTMLMetaElement, name.type] = new AttributeRemover(
      _.removeAttribute("name")
    )
    @inline implicit def attributeRemover_HTMLSlotElement
        : AttributeRemover[HTMLSlotElement, name.type] = new AttributeRemover(
      _.removeAttribute("name")
    )
  }
  object nomodule extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLScriptElement
        : AttributeSetter[HTMLScriptElement, nomodule.type] =
      new AttributeSetter(_.setAttribute("nomodule", _))
    @inline implicit def attributeRemover_HTMLScriptElement
        : AttributeRemover[HTMLScriptElement, nomodule.type] =
      new AttributeRemover(_.removeAttribute("nomodule"))
  }
  object nonce extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, nonce.type] = new AttributeSetter(
      _.setAttribute("nonce", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, nonce.type] = new AttributeRemover(
      _.removeAttribute("nonce")
    )
  }
  object novalidate extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLFormElement
        : AttributeSetter[HTMLFormElement, novalidate.type] =
      new AttributeSetter(_.setAttribute("novalidate", _))
    @inline implicit def attributeRemover_HTMLFormElement
        : AttributeRemover[HTMLFormElement, novalidate.type] =
      new AttributeRemover(_.removeAttribute("novalidate"))
  }
  @inline def onabort: properties.onabort.type = properties.onabort
  @inline def onactivate: properties.onactivate.type = properties.onactivate
  object onafterprint extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onafterprint.type] =
      new AttributeSetter(_.setAttribute("onafterprint", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onafterprint.type] =
      new AttributeRemover(_.removeAttribute("onafterprint"))
  }
  object onauxclick extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onauxclick.type] = new AttributeSetter(
      _.setAttribute("onauxclick", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onauxclick.type] = new AttributeRemover(
      _.removeAttribute("onauxclick")
    )
  }
  @inline def onbeforeactivate: properties.onbeforeactivate.type =
    properties.onbeforeactivate
  @inline def onbeforecopy: properties.onbeforecopy.type =
    properties.onbeforecopy
  @inline def onbeforecut: properties.onbeforecut.type = properties.onbeforecut
  @inline def onbeforedeactivate: properties.onbeforedeactivate.type =
    properties.onbeforedeactivate
  object onbeforematch extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onbeforematch.type] =
      new AttributeSetter(_.setAttribute("onbeforematch", _))
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onbeforematch.type] =
      new AttributeRemover(_.removeAttribute("onbeforematch"))
  }
  @inline def onbeforepaste: properties.onbeforepaste.type =
    properties.onbeforepaste
  object onbeforeprint extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onbeforeprint.type] =
      new AttributeSetter(_.setAttribute("onbeforeprint", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onbeforeprint.type] =
      new AttributeRemover(_.removeAttribute("onbeforeprint"))
  }
  object onbeforeunload extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onbeforeunload.type] =
      new AttributeSetter(_.setAttribute("onbeforeunload", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onbeforeunload.type] =
      new AttributeRemover(_.removeAttribute("onbeforeunload"))
  }
  object onblur extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[FocusEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onblur.type,
          js.Function1[FocusEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[FocusEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onblur = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onblur.type] = new AttributeSetter(
      _.setAttribute("onblur", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onblur.type] = new AttributeRemover(
      _.removeAttribute("onblur")
    )
  }
  object oncancel extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, oncancel.type] = new AttributeSetter(
      _.setAttribute("oncancel", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, oncancel.type] = new AttributeRemover(
      _.removeAttribute("oncancel")
    )
  }
  object oncanplay extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          oncanplay.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.oncanplay = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, oncanplay.type] = new AttributeSetter(
      _.setAttribute("oncanplay", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, oncanplay.type] = new AttributeRemover(
      _.removeAttribute("oncanplay")
    )
  }
  object oncanplaythrough extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          oncanplaythrough.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.oncanplaythrough = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, oncanplaythrough.type] =
      new AttributeSetter(_.setAttribute("oncanplaythrough", _))
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, oncanplaythrough.type] =
      new AttributeRemover(_.removeAttribute("oncanplaythrough"))
  }
  object onchange extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onchange.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onchange = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onchange.type] = new AttributeSetter(
      _.setAttribute("onchange", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onchange.type] = new AttributeRemover(
      _.removeAttribute("onchange")
    )
  }
  object onclick extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[MouseEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onclick.type,
          js.Function1[MouseEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[MouseEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onclick = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onclick.type] = new AttributeSetter(
      _.setAttribute("onclick", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onclick.type] = new AttributeRemover(
      _.removeAttribute("onclick")
    )
  }
  object onclose extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onclose.type] = new AttributeSetter(
      _.setAttribute("onclose", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onclose.type] = new AttributeRemover(
      _.removeAttribute("onclose")
    )
  }
  object oncontextlost extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, oncontextlost.type] =
      new AttributeSetter(_.setAttribute("oncontextlost", _))
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, oncontextlost.type] =
      new AttributeRemover(_.removeAttribute("oncontextlost"))
  }
  object oncontextmenu extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[MouseEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          oncontextmenu.type,
          js.Function1[MouseEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[MouseEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.oncontextmenu = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, oncontextmenu.type] =
      new AttributeSetter(_.setAttribute("oncontextmenu", _))
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, oncontextmenu.type] =
      new AttributeRemover(_.removeAttribute("oncontextmenu"))
  }
  object oncontextrestored extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, oncontextrestored.type] =
      new AttributeSetter(_.setAttribute("oncontextrestored", _))
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, oncontextrestored.type] =
      new AttributeRemover(_.removeAttribute("oncontextrestored"))
  }
  object oncopy extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[ClipboardEvent, _]_Element`
        extends MountPointBuilder[
          Element,
          oncopy.type,
          js.Function1[ClipboardEvent, _]
        ] {
      def mountProperty(
          element: Element,
          binding: Binding[js.Function1[ClipboardEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.oncopy = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, oncopy.type] = new AttributeSetter(
      _.setAttribute("oncopy", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, oncopy.type] = new AttributeRemover(
      _.removeAttribute("oncopy")
    )
  }
  object oncuechange extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          oncuechange.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.oncuechange = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, oncuechange.type] = new AttributeSetter(
      _.setAttribute("oncuechange", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, oncuechange.type] =
      new AttributeRemover(_.removeAttribute("oncuechange"))
  }
  object oncut extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[ClipboardEvent, _]_Element`
        extends MountPointBuilder[
          Element,
          oncut.type,
          js.Function1[ClipboardEvent, _]
        ] {
      def mountProperty(
          element: Element,
          binding: Binding[js.Function1[ClipboardEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.oncut = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, oncut.type] = new AttributeSetter(
      _.setAttribute("oncut", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, oncut.type] = new AttributeRemover(
      _.removeAttribute("oncut")
    )
  }
  object ondblclick extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[MouseEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          ondblclick.type,
          js.Function1[MouseEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[MouseEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.ondblclick = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, ondblclick.type] = new AttributeSetter(
      _.setAttribute("ondblclick", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, ondblclick.type] = new AttributeRemover(
      _.removeAttribute("ondblclick")
    )
  }
  @inline def ondeactivate: properties.ondeactivate.type =
    properties.ondeactivate
  object ondrag extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[DragEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          ondrag.type,
          js.Function1[DragEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[DragEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.ondrag = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, ondrag.type] = new AttributeSetter(
      _.setAttribute("ondrag", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, ondrag.type] = new AttributeRemover(
      _.removeAttribute("ondrag")
    )
  }
  object ondragend extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[DragEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          ondragend.type,
          js.Function1[DragEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[DragEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.ondragend = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, ondragend.type] = new AttributeSetter(
      _.setAttribute("ondragend", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, ondragend.type] = new AttributeRemover(
      _.removeAttribute("ondragend")
    )
  }
  object ondragenter extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[DragEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          ondragenter.type,
          js.Function1[DragEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[DragEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.ondragenter = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, ondragenter.type] = new AttributeSetter(
      _.setAttribute("ondragenter", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, ondragenter.type] =
      new AttributeRemover(_.removeAttribute("ondragenter"))
  }
  object ondragleave extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[DragEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          ondragleave.type,
          js.Function1[DragEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[DragEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.ondragleave = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, ondragleave.type] = new AttributeSetter(
      _.setAttribute("ondragleave", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, ondragleave.type] =
      new AttributeRemover(_.removeAttribute("ondragleave"))
  }
  object ondragover extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[DragEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          ondragover.type,
          js.Function1[DragEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[DragEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.ondragover = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, ondragover.type] = new AttributeSetter(
      _.setAttribute("ondragover", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, ondragover.type] = new AttributeRemover(
      _.removeAttribute("ondragover")
    )
  }
  object ondragstart extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[DragEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          ondragstart.type,
          js.Function1[DragEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[DragEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.ondragstart = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, ondragstart.type] = new AttributeSetter(
      _.setAttribute("ondragstart", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, ondragstart.type] =
      new AttributeRemover(_.removeAttribute("ondragstart"))
  }
  object ondrop extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[DragEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          ondrop.type,
          js.Function1[DragEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[DragEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.ondrop = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, ondrop.type] = new AttributeSetter(
      _.setAttribute("ondrop", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, ondrop.type] = new AttributeRemover(
      _.removeAttribute("ondrop")
    )
  }
  object ondurationchange extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          ondurationchange.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.ondurationchange = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, ondurationchange.type] =
      new AttributeSetter(_.setAttribute("ondurationchange", _))
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, ondurationchange.type] =
      new AttributeRemover(_.removeAttribute("ondurationchange"))
  }
  object onemptied extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onemptied.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onemptied = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onemptied.type] = new AttributeSetter(
      _.setAttribute("onemptied", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onemptied.type] = new AttributeRemover(
      _.removeAttribute("onemptied")
    )
  }
  object onended extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onended.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onended = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onended.type] = new AttributeSetter(
      _.setAttribute("onended", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onended.type] = new AttributeRemover(
      _.removeAttribute("onended")
    )
  }
  object onerror extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onerror.type] = new AttributeSetter(
      _.setAttribute("onerror", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onerror.type] = new AttributeRemover(
      _.removeAttribute("onerror")
    )
  }
  object onfocus extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[FocusEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onfocus.type,
          js.Function1[FocusEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[FocusEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onfocus = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onfocus.type] = new AttributeSetter(
      _.setAttribute("onfocus", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onfocus.type] = new AttributeRemover(
      _.removeAttribute("onfocus")
    )
  }
  @inline def onfocusin: properties.onfocusin.type = properties.onfocusin
  @inline def onfocusout: properties.onfocusout.type = properties.onfocusout
  object onformdata extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onformdata.type] = new AttributeSetter(
      _.setAttribute("onformdata", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onformdata.type] = new AttributeRemover(
      _.removeAttribute("onformdata")
    )
  }
  @inline def onfullscreenchange: properties.onfullscreenchange.type =
    properties.onfullscreenchange
  @inline def onfullscreenerror: properties.onfullscreenerror.type =
    properties.onfullscreenerror
  object onhashchange extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onhashchange.type] =
      new AttributeSetter(_.setAttribute("onhashchange", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onhashchange.type] =
      new AttributeRemover(_.removeAttribute("onhashchange"))
  }
  @inline def onhelp: properties.onhelp.type = properties.onhelp
  object oninput extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          oninput.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.oninput = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, oninput.type] = new AttributeSetter(
      _.setAttribute("oninput", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, oninput.type] = new AttributeRemover(
      _.removeAttribute("oninput")
    )
  }
  object oninvalid extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, oninvalid.type] = new AttributeSetter(
      _.setAttribute("oninvalid", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, oninvalid.type] = new AttributeRemover(
      _.removeAttribute("oninvalid")
    )
  }
  object onkeydown extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[KeyboardEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onkeydown.type,
          js.Function1[KeyboardEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[KeyboardEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onkeydown = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onkeydown.type] = new AttributeSetter(
      _.setAttribute("onkeydown", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onkeydown.type] = new AttributeRemover(
      _.removeAttribute("onkeydown")
    )
  }
  object onkeypress extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[KeyboardEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onkeypress.type,
          js.Function1[KeyboardEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[KeyboardEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onkeypress = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onkeypress.type] = new AttributeSetter(
      _.setAttribute("onkeypress", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onkeypress.type] = new AttributeRemover(
      _.removeAttribute("onkeypress")
    )
  }
  object onkeyup extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[KeyboardEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onkeyup.type,
          js.Function1[KeyboardEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[KeyboardEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onkeyup = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onkeyup.type] = new AttributeSetter(
      _.setAttribute("onkeyup", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onkeyup.type] = new AttributeRemover(
      _.removeAttribute("onkeyup")
    )
  }
  object onlanguagechange extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onlanguagechange.type] =
      new AttributeSetter(_.setAttribute("onlanguagechange", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onlanguagechange.type] =
      new AttributeRemover(_.removeAttribute("onlanguagechange"))
  }
  object onload extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onload.type] = new AttributeSetter(
      _.setAttribute("onload", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onload.type] = new AttributeRemover(
      _.removeAttribute("onload")
    )
  }
  object onloadeddata extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onloadeddata.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onloadeddata = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onloadeddata.type] = new AttributeSetter(
      _.setAttribute("onloadeddata", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onloadeddata.type] =
      new AttributeRemover(_.removeAttribute("onloadeddata"))
  }
  object onloadedmetadata extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onloadedmetadata.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onloadedmetadata = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onloadedmetadata.type] =
      new AttributeSetter(_.setAttribute("onloadedmetadata", _))
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onloadedmetadata.type] =
      new AttributeRemover(_.removeAttribute("onloadedmetadata"))
  }
  object onloadstart extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onloadstart.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onloadstart = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onloadstart.type] = new AttributeSetter(
      _.setAttribute("onloadstart", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onloadstart.type] =
      new AttributeRemover(_.removeAttribute("onloadstart"))
  }
  object onmessage extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onmessage.type] =
      new AttributeSetter(_.setAttribute("onmessage", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onmessage.type] =
      new AttributeRemover(_.removeAttribute("onmessage"))
  }
  object onmessageerror extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onmessageerror.type] =
      new AttributeSetter(_.setAttribute("onmessageerror", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onmessageerror.type] =
      new AttributeRemover(_.removeAttribute("onmessageerror"))
  }
  object onmousedown extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[MouseEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onmousedown.type,
          js.Function1[MouseEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[MouseEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onmousedown = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onmousedown.type] = new AttributeSetter(
      _.setAttribute("onmousedown", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onmousedown.type] =
      new AttributeRemover(_.removeAttribute("onmousedown"))
  }
  object onmouseenter extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[MouseEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onmouseenter.type,
          js.Function1[MouseEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[MouseEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onmouseenter = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onmouseenter.type] = new AttributeSetter(
      _.setAttribute("onmouseenter", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onmouseenter.type] =
      new AttributeRemover(_.removeAttribute("onmouseenter"))
  }
  object onmouseleave extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[MouseEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onmouseleave.type,
          js.Function1[MouseEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[MouseEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onmouseleave = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onmouseleave.type] = new AttributeSetter(
      _.setAttribute("onmouseleave", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onmouseleave.type] =
      new AttributeRemover(_.removeAttribute("onmouseleave"))
  }
  object onmousemove extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[MouseEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onmousemove.type,
          js.Function1[MouseEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[MouseEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onmousemove = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onmousemove.type] = new AttributeSetter(
      _.setAttribute("onmousemove", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onmousemove.type] =
      new AttributeRemover(_.removeAttribute("onmousemove"))
  }
  object onmouseout extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[MouseEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onmouseout.type,
          js.Function1[MouseEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[MouseEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onmouseout = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onmouseout.type] = new AttributeSetter(
      _.setAttribute("onmouseout", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onmouseout.type] = new AttributeRemover(
      _.removeAttribute("onmouseout")
    )
  }
  object onmouseover extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[MouseEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onmouseover.type,
          js.Function1[MouseEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[MouseEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onmouseover = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onmouseover.type] = new AttributeSetter(
      _.setAttribute("onmouseover", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onmouseover.type] =
      new AttributeRemover(_.removeAttribute("onmouseover"))
  }
  object onmouseup extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[MouseEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onmouseup.type,
          js.Function1[MouseEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[MouseEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onmouseup = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onmouseup.type] = new AttributeSetter(
      _.setAttribute("onmouseup", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onmouseup.type] = new AttributeRemover(
      _.removeAttribute("onmouseup")
    )
  }
  @inline def onmousewheel: properties.onmousewheel.type =
    properties.onmousewheel
  object onoffline extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onoffline.type] =
      new AttributeSetter(_.setAttribute("onoffline", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onoffline.type] =
      new AttributeRemover(_.removeAttribute("onoffline"))
  }
  object ononline extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, ononline.type] = new AttributeSetter(
      _.setAttribute("ononline", _)
    )
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, ononline.type] =
      new AttributeRemover(_.removeAttribute("ononline"))
  }
  object onpagehide extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onpagehide.type] =
      new AttributeSetter(_.setAttribute("onpagehide", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onpagehide.type] =
      new AttributeRemover(_.removeAttribute("onpagehide"))
  }
  object onpageshow extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onpageshow.type] =
      new AttributeSetter(_.setAttribute("onpageshow", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onpageshow.type] =
      new AttributeRemover(_.removeAttribute("onpageshow"))
  }
  object onpaste extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[ClipboardEvent, _]_Element`
        extends MountPointBuilder[
          Element,
          onpaste.type,
          js.Function1[ClipboardEvent, _]
        ] {
      def mountProperty(
          element: Element,
          binding: Binding[js.Function1[ClipboardEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onpaste = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onpaste.type] = new AttributeSetter(
      _.setAttribute("onpaste", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onpaste.type] = new AttributeRemover(
      _.removeAttribute("onpaste")
    )
  }
  object onpause extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onpause.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onpause = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onpause.type] = new AttributeSetter(
      _.setAttribute("onpause", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onpause.type] = new AttributeRemover(
      _.removeAttribute("onpause")
    )
  }
  object onplay extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onplay.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onplay = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onplay.type] = new AttributeSetter(
      _.setAttribute("onplay", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onplay.type] = new AttributeRemover(
      _.removeAttribute("onplay")
    )
  }
  object onplaying extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onplaying.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onplaying = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onplaying.type] = new AttributeSetter(
      _.setAttribute("onplaying", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onplaying.type] = new AttributeRemover(
      _.removeAttribute("onplaying")
    )
  }
  @inline def onpointercancel: properties.onpointercancel.type =
    properties.onpointercancel
  @inline def onpointerdown: properties.onpointerdown.type =
    properties.onpointerdown
  @inline def onpointerenter: properties.onpointerenter.type =
    properties.onpointerenter
  @inline def onpointerleave: properties.onpointerleave.type =
    properties.onpointerleave
  @inline def onpointermove: properties.onpointermove.type =
    properties.onpointermove
  @inline def onpointerout: properties.onpointerout.type =
    properties.onpointerout
  @inline def onpointerover: properties.onpointerover.type =
    properties.onpointerover
  @inline def onpointerup: properties.onpointerup.type = properties.onpointerup
  object onpopstate extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onpopstate.type] =
      new AttributeSetter(_.setAttribute("onpopstate", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onpopstate.type] =
      new AttributeRemover(_.removeAttribute("onpopstate"))
  }
  object onprogress extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[js_Any, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onprogress.type,
          js.Function1[js.Any, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[js.Any, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onprogress = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onprogress.type] = new AttributeSetter(
      _.setAttribute("onprogress", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onprogress.type] = new AttributeRemover(
      _.removeAttribute("onprogress")
    )
  }
  object onratechange extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onratechange.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onratechange = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onratechange.type] = new AttributeSetter(
      _.setAttribute("onratechange", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onratechange.type] =
      new AttributeRemover(_.removeAttribute("onratechange"))
  }
  @inline def onreadystatechange: properties.onreadystatechange.type =
    properties.onreadystatechange
  object onrejectionhandled extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onrejectionhandled.type] =
      new AttributeSetter(_.setAttribute("onrejectionhandled", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onrejectionhandled.type] =
      new AttributeRemover(_.removeAttribute("onrejectionhandled"))
  }
  object onreset extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onreset.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onreset = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onreset.type] = new AttributeSetter(
      _.setAttribute("onreset", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onreset.type] = new AttributeRemover(
      _.removeAttribute("onreset")
    )
  }
  object onresize extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onresize.type] = new AttributeSetter(
      _.setAttribute("onresize", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onresize.type] = new AttributeRemover(
      _.removeAttribute("onresize")
    )
  }
  object onscroll extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[UIEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onscroll.type,
          js.Function1[UIEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[UIEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onscroll = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onscroll.type] = new AttributeSetter(
      _.setAttribute("onscroll", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onscroll.type] = new AttributeRemover(
      _.removeAttribute("onscroll")
    )
  }
  object onscrollend extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onscrollend.type] = new AttributeSetter(
      _.setAttribute("onscrollend", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onscrollend.type] =
      new AttributeRemover(_.removeAttribute("onscrollend"))
  }
  object onsecuritypolicyviolation extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onsecuritypolicyviolation.type] =
      new AttributeSetter(_.setAttribute("onsecuritypolicyviolation", _))
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onsecuritypolicyviolation.type] =
      new AttributeRemover(_.removeAttribute("onsecuritypolicyviolation"))
  }
  object onseeked extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onseeked.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onseeked = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onseeked.type] = new AttributeSetter(
      _.setAttribute("onseeked", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onseeked.type] = new AttributeRemover(
      _.removeAttribute("onseeked")
    )
  }
  object onseeking extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onseeking.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onseeking = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onseeking.type] = new AttributeSetter(
      _.setAttribute("onseeking", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onseeking.type] = new AttributeRemover(
      _.removeAttribute("onseeking")
    )
  }
  object onselect extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[UIEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onselect.type,
          js.Function1[UIEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[UIEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onselect = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onselect.type] = new AttributeSetter(
      _.setAttribute("onselect", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onselect.type] = new AttributeRemover(
      _.removeAttribute("onselect")
    )
  }
  @inline def onselectstart: properties.onselectstart.type =
    properties.onselectstart
  object onslotchange extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onslotchange.type] = new AttributeSetter(
      _.setAttribute("onslotchange", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onslotchange.type] =
      new AttributeRemover(_.removeAttribute("onslotchange"))
  }
  object onstalled extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onstalled.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onstalled = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onstalled.type] = new AttributeSetter(
      _.setAttribute("onstalled", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onstalled.type] = new AttributeRemover(
      _.removeAttribute("onstalled")
    )
  }
  object onstorage extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onstorage.type] =
      new AttributeSetter(_.setAttribute("onstorage", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onstorage.type] =
      new AttributeRemover(_.removeAttribute("onstorage"))
  }
  object onsubmit extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onsubmit.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onsubmit = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onsubmit.type] = new AttributeSetter(
      _.setAttribute("onsubmit", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onsubmit.type] = new AttributeRemover(
      _.removeAttribute("onsubmit")
    )
  }
  object onsuspend extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onsuspend.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onsuspend = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onsuspend.type] = new AttributeSetter(
      _.setAttribute("onsuspend", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onsuspend.type] = new AttributeRemover(
      _.removeAttribute("onsuspend")
    )
  }
  object ontimeupdate extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          ontimeupdate.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.ontimeupdate = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, ontimeupdate.type] = new AttributeSetter(
      _.setAttribute("ontimeupdate", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, ontimeupdate.type] =
      new AttributeRemover(_.removeAttribute("ontimeupdate"))
  }
  object ontoggle extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, ontoggle.type] = new AttributeSetter(
      _.setAttribute("ontoggle", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, ontoggle.type] = new AttributeRemover(
      _.removeAttribute("ontoggle")
    )
  }
  object onunhandledrejection extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onunhandledrejection.type] =
      new AttributeSetter(_.setAttribute("onunhandledrejection", _))
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onunhandledrejection.type] =
      new AttributeRemover(_.removeAttribute("onunhandledrejection"))
  }
  object onunload extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLBodyElement
        : AttributeSetter[HTMLBodyElement, onunload.type] = new AttributeSetter(
      _.setAttribute("onunload", _)
    )
    @inline implicit def attributeRemover_HTMLBodyElement
        : AttributeRemover[HTMLBodyElement, onunload.type] =
      new AttributeRemover(_.removeAttribute("onunload"))
  }
  object onvolumechange extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onvolumechange.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onvolumechange = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onvolumechange.type] =
      new AttributeSetter(_.setAttribute("onvolumechange", _))
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onvolumechange.type] =
      new AttributeRemover(_.removeAttribute("onvolumechange"))
  }
  object onwaiting extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[Event, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onwaiting.type,
          js.Function1[Event, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[Event, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onwaiting = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onwaiting.type] = new AttributeSetter(
      _.setAttribute("onwaiting", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onwaiting.type] = new AttributeRemover(
      _.removeAttribute("onwaiting")
    )
  }
  object onwheel extends AttributeFactory.Typed {
    implicit object `mountPointBuilder_js_Function1[WheelEvent, _]_HTMLElement`
        extends MountPointBuilder[
          HTMLElement,
          onwheel.type,
          js.Function1[WheelEvent, _]
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[js.Function1[WheelEvent, _]]
      ) = {
        Binding.BindingInstances.map(binding)(element.onwheel = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, onwheel.type] = new AttributeSetter(
      _.setAttribute("onwheel", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, onwheel.type] = new AttributeRemover(
      _.removeAttribute("onwheel")
    )
  }
  object open extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLDetailsElement
        : AttributeSetter[HTMLDetailsElement, open.type] = new AttributeSetter(
      _.setAttribute("open", _)
    )
    @inline implicit def attributeSetter_HTMLDialogElement
        : AttributeSetter[HTMLDialogElement, open.type] = new AttributeSetter(
      _.setAttribute("open", _)
    )
    @inline implicit def attributeRemover_HTMLDetailsElement
        : AttributeRemover[HTMLDetailsElement, open.type] =
      new AttributeRemover(_.removeAttribute("open"))
    @inline implicit def attributeRemover_HTMLDialogElement
        : AttributeRemover[HTMLDialogElement, open.type] = new AttributeRemover(
      _.removeAttribute("open")
    )
  }
  object optimum extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLMeterElement
        : AttributeSetter[HTMLMeterElement, optimum.type] = new AttributeSetter(
      _.setAttribute("optimum", _)
    )
    @inline implicit def attributeRemover_HTMLMeterElement
        : AttributeRemover[HTMLMeterElement, optimum.type] =
      new AttributeRemover(_.removeAttribute("optimum"))
  }
  @inline def outerHTML: properties.outerHTML.type = properties.outerHTML
  @inline def parentElement: properties.parentElement.type =
    properties.parentElement
  object pattern extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, pattern.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.pattern = _)
      }
    }
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, pattern.type] = new AttributeSetter(
      _.setAttribute("pattern", _)
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, pattern.type] =
      new AttributeRemover(_.removeAttribute("pattern"))
  }
  object ping extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLAnchorElement
        : AttributeSetter[HTMLAnchorElement, ping.type] = new AttributeSetter(
      _.setAttribute("ping", _)
    )
    @inline implicit def attributeSetter_HTMLAreaElement
        : AttributeSetter[HTMLAreaElement, ping.type] = new AttributeSetter(
      _.setAttribute("ping", _)
    )
    @inline implicit def attributeRemover_HTMLAnchorElement
        : AttributeRemover[HTMLAnchorElement, ping.type] = new AttributeRemover(
      _.removeAttribute("ping")
    )
    @inline implicit def attributeRemover_HTMLAreaElement
        : AttributeRemover[HTMLAreaElement, ping.type] = new AttributeRemover(
      _.removeAttribute("ping")
    )
  }
  object placeholder extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, placeholder.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.placeholder = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLTextAreaElement
        extends MountPointBuilder[
          HTMLTextAreaElement,
          placeholder.type,
          String
        ] {
      def mountProperty(
          element: HTMLTextAreaElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.placeholder = _)
      }
    }
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, placeholder.type] =
      new AttributeSetter(_.setAttribute("placeholder", _))
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, placeholder.type] =
      new AttributeSetter(_.setAttribute("placeholder", _))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, placeholder.type] =
      new AttributeRemover(_.removeAttribute("placeholder"))
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, placeholder.type] =
      new AttributeRemover(_.removeAttribute("placeholder"))
  }
  object playsinline extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLVideoElement
        : AttributeSetter[HTMLVideoElement, playsinline.type] =
      new AttributeSetter(_.setAttribute("playsinline", _))
    @inline implicit def attributeRemover_HTMLVideoElement
        : AttributeRemover[HTMLVideoElement, playsinline.type] =
      new AttributeRemover(_.removeAttribute("playsinline"))
  }
  object poster extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLVideoElement
        : AttributeSetter[HTMLVideoElement, poster.type] = new AttributeSetter(
      _.setAttribute("poster", _)
    )
    @inline implicit def attributeRemover_HTMLVideoElement
        : AttributeRemover[HTMLVideoElement, poster.type] =
      new AttributeRemover(_.removeAttribute("poster"))
  }
  object preload extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLAudioElement
        : AttributeSetter[HTMLAudioElement, preload.type] = new AttributeSetter(
      _.setAttribute("preload", _)
    )
    @inline implicit def attributeSetter_HTMLVideoElement
        : AttributeSetter[HTMLVideoElement, preload.type] = new AttributeSetter(
      _.setAttribute("preload", _)
    )
    @inline implicit def attributeRemover_HTMLAudioElement
        : AttributeRemover[HTMLAudioElement, preload.type] =
      new AttributeRemover(_.removeAttribute("preload"))
    @inline implicit def attributeRemover_HTMLVideoElement
        : AttributeRemover[HTMLVideoElement, preload.type] =
      new AttributeRemover(_.removeAttribute("preload"))
  }
  @inline def readOnly: properties.readOnly.type = properties.readOnly
  object readonly extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, readonly.type] =
      new AttributeSetter(_.setAttribute("readonly", _))
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, readonly.type] =
      new AttributeSetter(_.setAttribute("readonly", _))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, readonly.type] =
      new AttributeRemover(_.removeAttribute("readonly"))
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, readonly.type] =
      new AttributeRemover(_.removeAttribute("readonly"))
  }
  @inline def readyState: properties.readyState.type = properties.readyState
  @inline def recordNumber: properties.recordNumber.type =
    properties.recordNumber
  object referrerpolicy extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLAnchorElement
        : AttributeSetter[HTMLAnchorElement, referrerpolicy.type] =
      new AttributeSetter(_.setAttribute("referrerpolicy", _))
    @inline implicit def attributeSetter_HTMLAreaElement
        : AttributeSetter[HTMLAreaElement, referrerpolicy.type] =
      new AttributeSetter(_.setAttribute("referrerpolicy", _))
    @inline implicit def attributeSetter_HTMLIFrameElement
        : AttributeSetter[HTMLIFrameElement, referrerpolicy.type] =
      new AttributeSetter(_.setAttribute("referrerpolicy", _))
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, referrerpolicy.type] =
      new AttributeSetter(_.setAttribute("referrerpolicy", _))
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, referrerpolicy.type] =
      new AttributeSetter(_.setAttribute("referrerpolicy", _))
    @inline implicit def attributeSetter_HTMLScriptElement
        : AttributeSetter[HTMLScriptElement, referrerpolicy.type] =
      new AttributeSetter(_.setAttribute("referrerpolicy", _))
    @inline implicit def attributeRemover_HTMLAnchorElement
        : AttributeRemover[HTMLAnchorElement, referrerpolicy.type] =
      new AttributeRemover(_.removeAttribute("referrerpolicy"))
    @inline implicit def attributeRemover_HTMLAreaElement
        : AttributeRemover[HTMLAreaElement, referrerpolicy.type] =
      new AttributeRemover(_.removeAttribute("referrerpolicy"))
    @inline implicit def attributeRemover_HTMLIFrameElement
        : AttributeRemover[HTMLIFrameElement, referrerpolicy.type] =
      new AttributeRemover(_.removeAttribute("referrerpolicy"))
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, referrerpolicy.type] =
      new AttributeRemover(_.removeAttribute("referrerpolicy"))
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, referrerpolicy.type] =
      new AttributeRemover(_.removeAttribute("referrerpolicy"))
    @inline implicit def attributeRemover_HTMLScriptElement
        : AttributeRemover[HTMLScriptElement, referrerpolicy.type] =
      new AttributeRemover(_.removeAttribute("referrerpolicy"))
  }
  object rel extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLLinkElement
        extends MountPointBuilder[HTMLLinkElement, rel.type, String] {
      def mountProperty(element: HTMLLinkElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.rel = _)
      }
    }
    @inline implicit def attributeSetter_HTMLAnchorElement
        : AttributeSetter[HTMLAnchorElement, rel.type] = new AttributeSetter(
      _.setAttribute("rel", _)
    )
    @inline implicit def attributeSetter_HTMLAreaElement
        : AttributeSetter[HTMLAreaElement, rel.type] = new AttributeSetter(
      _.setAttribute("rel", _)
    )
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, rel.type] = new AttributeSetter(
      _.setAttribute("rel", _)
    )
    @inline implicit def attributeRemover_HTMLAnchorElement
        : AttributeRemover[HTMLAnchorElement, rel.type] = new AttributeRemover(
      _.removeAttribute("rel")
    )
    @inline implicit def attributeRemover_HTMLAreaElement
        : AttributeRemover[HTMLAreaElement, rel.type] = new AttributeRemover(
      _.removeAttribute("rel")
    )
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, rel.type] = new AttributeRemover(
      _.removeAttribute("rel")
    )
  }
  object required extends AttributeFactory.Typed {
    implicit object mountPointBuilder_Boolean_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, required.type, Boolean] {
      def mountProperty(
          element: HTMLInputElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.required = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLSelectElement
        extends MountPointBuilder[HTMLSelectElement, required.type, Boolean] {
      def mountProperty(
          element: HTMLSelectElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.required = _)
      }
    }
    implicit object mountPointBuilder_Boolean_HTMLTextAreaElement
        extends MountPointBuilder[HTMLTextAreaElement, required.type, Boolean] {
      def mountProperty(
          element: HTMLTextAreaElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.required = _)
      }
    }
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, required.type] =
      new AttributeSetter(_.setAttribute("required", _))
    @inline implicit def attributeSetter_HTMLSelectElement
        : AttributeSetter[HTMLSelectElement, required.type] =
      new AttributeSetter(_.setAttribute("required", _))
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, required.type] =
      new AttributeSetter(_.setAttribute("required", _))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, required.type] =
      new AttributeRemover(_.removeAttribute("required"))
    @inline implicit def attributeRemover_HTMLSelectElement
        : AttributeRemover[HTMLSelectElement, required.type] =
      new AttributeRemover(_.removeAttribute("required"))
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, required.type] =
      new AttributeRemover(_.removeAttribute("required"))
  }
  @inline def rev: properties.rev.type = properties.rev
  object reversed extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLOListElement
        : AttributeSetter[HTMLOListElement, reversed.type] =
      new AttributeSetter(_.setAttribute("reversed", _))
    @inline implicit def attributeRemover_HTMLOListElement
        : AttributeRemover[HTMLOListElement, reversed.type] =
      new AttributeRemover(_.removeAttribute("reversed"))
  }
  object rows extends AttributeFactory.Typed {
    implicit object mountPointBuilder_Int_HTMLTextAreaElement
        extends MountPointBuilder[HTMLTextAreaElement, rows.type, Int] {
      def mountProperty(element: HTMLTextAreaElement, binding: Binding[Int]) = {
        Binding.BindingInstances.map(binding)(element.rows = _)
      }
    }
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, rows.type] = new AttributeSetter(
      _.setAttribute("rows", _)
    )
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, rows.type] =
      new AttributeRemover(_.removeAttribute("rows"))
  }
  object rowspan extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLTableCellElement
        : AttributeSetter[HTMLTableCellElement, rowspan.type] =
      new AttributeSetter(_.setAttribute("rowspan", _))
    @inline implicit def attributeRemover_HTMLTableCellElement
        : AttributeRemover[HTMLTableCellElement, rowspan.type] =
      new AttributeRemover(_.removeAttribute("rowspan"))
  }
  object sandbox extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLIFrameElement
        : AttributeSetter[HTMLIFrameElement, sandbox.type] =
      new AttributeSetter(_.setAttribute("sandbox", _))
    @inline implicit def attributeRemover_HTMLIFrameElement
        : AttributeRemover[HTMLIFrameElement, sandbox.type] =
      new AttributeRemover(_.removeAttribute("sandbox"))
  }
  object scope extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLTableCellElement
        : AttributeSetter[HTMLTableCellElement, scope.type] =
      new AttributeSetter(_.setAttribute("scope", _))
    @inline implicit def attributeRemover_HTMLTableCellElement
        : AttributeRemover[HTMLTableCellElement, scope.type] =
      new AttributeRemover(_.removeAttribute("scope"))
  }
  @inline def scrollLeft: properties.scrollLeft.type = properties.scrollLeft
  @inline def scrollTop: properties.scrollTop.type = properties.scrollTop
  object selected extends AttributeFactory.Typed {
    implicit object mountPointBuilder_Boolean_HTMLOptionElement
        extends MountPointBuilder[HTMLOptionElement, selected.type, Boolean] {
      def mountProperty(
          element: HTMLOptionElement,
          binding: Binding[Boolean]
      ) = {
        Binding.BindingInstances.map(binding)(element.selected = _)
      }
    }
    @inline implicit def attributeSetter_HTMLOptionElement
        : AttributeSetter[HTMLOptionElement, selected.type] =
      new AttributeSetter(_.setAttribute("selected", _))
    @inline implicit def attributeRemover_HTMLOptionElement
        : AttributeRemover[HTMLOptionElement, selected.type] =
      new AttributeRemover(_.removeAttribute("selected"))
  }
  @inline def selectedIndex: properties.selectedIndex.type =
    properties.selectedIndex
  @inline def selectionEnd: properties.selectionEnd.type =
    properties.selectionEnd
  @inline def selectionStart: properties.selectionStart.type =
    properties.selectionStart
  object shape extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLAreaElement
        : AttributeSetter[HTMLAreaElement, shape.type] = new AttributeSetter(
      _.setAttribute("shape", _)
    )
    @inline implicit def attributeRemover_HTMLAreaElement
        : AttributeRemover[HTMLAreaElement, shape.type] = new AttributeRemover(
      _.removeAttribute("shape")
    )
  }
  object size extends AttributeFactory.Typed {
    implicit object mountPointBuilder_Int_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, size.type, Int] {
      def mountProperty(element: HTMLInputElement, binding: Binding[Int]) = {
        Binding.BindingInstances.map(binding)(element.size = _)
      }
    }
    implicit object mountPointBuilder_Int_HTMLSelectElement
        extends MountPointBuilder[HTMLSelectElement, size.type, Int] {
      def mountProperty(element: HTMLSelectElement, binding: Binding[Int]) = {
        Binding.BindingInstances.map(binding)(element.size = _)
      }
    }
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, size.type] = new AttributeSetter(
      _.setAttribute("size", _)
    )
    @inline implicit def attributeSetter_HTMLSelectElement
        : AttributeSetter[HTMLSelectElement, size.type] = new AttributeSetter(
      _.setAttribute("size", _)
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, size.type] = new AttributeRemover(
      _.removeAttribute("size")
    )
    @inline implicit def attributeRemover_HTMLSelectElement
        : AttributeRemover[HTMLSelectElement, size.type] = new AttributeRemover(
      _.removeAttribute("size")
    )
  }
  object sizes extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, sizes.type] = new AttributeSetter(
      _.setAttribute("sizes", _)
    )
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, sizes.type] = new AttributeSetter(
      _.setAttribute("sizes", _)
    )
    @inline implicit def attributeSetter_HTMLSourceElement
        : AttributeSetter[HTMLSourceElement, sizes.type] = new AttributeSetter(
      _.setAttribute("sizes", _)
    )
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, sizes.type] = new AttributeRemover(
      _.removeAttribute("sizes")
    )
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, sizes.type] = new AttributeRemover(
      _.removeAttribute("sizes")
    )
    @inline implicit def attributeRemover_HTMLSourceElement
        : AttributeRemover[HTMLSourceElement, sizes.type] =
      new AttributeRemover(_.removeAttribute("sizes"))
  }
  object slot extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, slot.type] = new AttributeSetter(
      _.setAttribute("slot", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, slot.type] = new AttributeRemover(
      _.removeAttribute("slot")
    )
  }
  object span extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLTableColElement
        : AttributeSetter[HTMLTableColElement, span.type] = new AttributeSetter(
      _.setAttribute("span", _)
    )
    @inline implicit def attributeRemover_HTMLTableColElement
        : AttributeRemover[HTMLTableColElement, span.type] =
      new AttributeRemover(_.removeAttribute("span"))
  }
  object spellcheck extends AttributeFactory.Typed {
    implicit object mountPointBuilder_Boolean_HTMLElement
        extends MountPointBuilder[HTMLElement, spellcheck.type, Boolean] {
      def mountProperty(element: HTMLElement, binding: Binding[Boolean]) = {
        Binding.BindingInstances.map(binding)(element.spellcheck = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, spellcheck.type] = new AttributeSetter(
      _.setAttribute("spellcheck", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, spellcheck.type] = new AttributeRemover(
      _.removeAttribute("spellcheck")
    )
  }
  object src extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, src.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.src = _)
      }
    }
    @inline implicit def attributeSetter_HTMLAudioElement
        : AttributeSetter[HTMLAudioElement, src.type] = new AttributeSetter(
      _.setAttribute("src", _)
    )
    @inline implicit def attributeSetter_HTMLEmbedElement
        : AttributeSetter[HTMLEmbedElement, src.type] = new AttributeSetter(
      _.setAttribute("src", _)
    )
    @inline implicit def attributeSetter_HTMLIFrameElement
        : AttributeSetter[HTMLIFrameElement, src.type] = new AttributeSetter(
      _.setAttribute("src", _)
    )
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, src.type] = new AttributeSetter(
      _.setAttribute("src", _)
    )
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, src.type] = new AttributeSetter(
      _.setAttribute("src", _)
    )
    @inline implicit def attributeSetter_HTMLScriptElement
        : AttributeSetter[HTMLScriptElement, src.type] = new AttributeSetter(
      _.setAttribute("src", _)
    )
    @inline implicit def attributeSetter_HTMLSourceElement
        : AttributeSetter[HTMLSourceElement, src.type] = new AttributeSetter(
      _.setAttribute("src", _)
    )
    @inline implicit def attributeSetter_HTMLVideoElement
        : AttributeSetter[HTMLVideoElement, src.type] = new AttributeSetter(
      _.setAttribute("src", _)
    )
    @inline implicit def attributeSetter_HTMLTrackElement
        : AttributeSetter[HTMLTrackElement, src.type] = new AttributeSetter(
      _.setAttribute("src", _)
    )
    @inline implicit def attributeRemover_HTMLAudioElement
        : AttributeRemover[HTMLAudioElement, src.type] = new AttributeRemover(
      _.removeAttribute("src")
    )
    @inline implicit def attributeRemover_HTMLEmbedElement
        : AttributeRemover[HTMLEmbedElement, src.type] = new AttributeRemover(
      _.removeAttribute("src")
    )
    @inline implicit def attributeRemover_HTMLIFrameElement
        : AttributeRemover[HTMLIFrameElement, src.type] = new AttributeRemover(
      _.removeAttribute("src")
    )
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, src.type] = new AttributeRemover(
      _.removeAttribute("src")
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, src.type] = new AttributeRemover(
      _.removeAttribute("src")
    )
    @inline implicit def attributeRemover_HTMLScriptElement
        : AttributeRemover[HTMLScriptElement, src.type] = new AttributeRemover(
      _.removeAttribute("src")
    )
    @inline implicit def attributeRemover_HTMLSourceElement
        : AttributeRemover[HTMLSourceElement, src.type] = new AttributeRemover(
      _.removeAttribute("src")
    )
    @inline implicit def attributeRemover_HTMLVideoElement
        : AttributeRemover[HTMLVideoElement, src.type] = new AttributeRemover(
      _.removeAttribute("src")
    )
    @inline implicit def attributeRemover_HTMLTrackElement
        : AttributeRemover[HTMLTrackElement, src.type] = new AttributeRemover(
      _.removeAttribute("src")
    )
  }
  object srcdoc extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLIFrameElement
        : AttributeSetter[HTMLIFrameElement, srcdoc.type] = new AttributeSetter(
      _.setAttribute("srcdoc", _)
    )
    @inline implicit def attributeRemover_HTMLIFrameElement
        : AttributeRemover[HTMLIFrameElement, srcdoc.type] =
      new AttributeRemover(_.removeAttribute("srcdoc"))
  }
  object srclang extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLTrackElement
        : AttributeSetter[HTMLTrackElement, srclang.type] = new AttributeSetter(
      _.setAttribute("srclang", _)
    )
    @inline implicit def attributeRemover_HTMLTrackElement
        : AttributeRemover[HTMLTrackElement, srclang.type] =
      new AttributeRemover(_.removeAttribute("srclang"))
  }
  object srcset extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, srcset.type] = new AttributeSetter(
      _.setAttribute("srcset", _)
    )
    @inline implicit def attributeSetter_HTMLSourceElement
        : AttributeSetter[HTMLSourceElement, srcset.type] = new AttributeSetter(
      _.setAttribute("srcset", _)
    )
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, srcset.type] =
      new AttributeRemover(_.removeAttribute("srcset"))
    @inline implicit def attributeRemover_HTMLSourceElement
        : AttributeRemover[HTMLSourceElement, srcset.type] =
      new AttributeRemover(_.removeAttribute("srcset"))
  }
  object start extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLOListElement
        : AttributeSetter[HTMLOListElement, start.type] = new AttributeSetter(
      _.setAttribute("start", _)
    )
    @inline implicit def attributeRemover_HTMLOListElement
        : AttributeRemover[HTMLOListElement, start.type] = new AttributeRemover(
      _.removeAttribute("start")
    )
  }
  @inline def status: properties.status.type = properties.status
  object step extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, step.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.step = _)
      }
    }
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, step.type] = new AttributeSetter(
      _.setAttribute("step", _)
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, step.type] = new AttributeRemover(
      _.removeAttribute("step")
    )
  }
  object style extends AttributeFactory.Typed {
    implicit object mountPointBuilder_CSSStyleDeclaration_HTMLElement
        extends MountPointBuilder[
          HTMLElement,
          style.type,
          CSSStyleDeclaration
        ] {
      def mountProperty(
          element: HTMLElement,
          binding: Binding[CSSStyleDeclaration]
      ) = {
        Binding.BindingInstances.map(binding)(element.style = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLElement
        extends MountPointBuilder[HTMLElement, style.type, String] {
      def mountProperty(element: HTMLElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.style.cssText = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, style.type] = new AttributeSetter(
      _.style.cssText = _
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, style.type] = new AttributeRemover(
      _.removeAttribute("style")
    )
  }
  @inline def tabIndex: properties.tabIndex.type = properties.tabIndex
  object tabindex extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, tabindex.type] = new AttributeSetter(
      _.setAttribute("tabindex", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, tabindex.type] = new AttributeRemover(
      _.removeAttribute("tabindex")
    )
  }
  object target extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLLinkElement
        extends MountPointBuilder[HTMLLinkElement, target.type, String] {
      def mountProperty(element: HTMLLinkElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.target = _)
      }
    }
    @inline implicit def attributeSetter_HTMLAnchorElement
        : AttributeSetter[HTMLAnchorElement, target.type] = new AttributeSetter(
      _.setAttribute("target", _)
    )
    @inline implicit def attributeSetter_HTMLAreaElement
        : AttributeSetter[HTMLAreaElement, target.type] = new AttributeSetter(
      _.setAttribute("target", _)
    )
    @inline implicit def attributeSetter_HTMLBaseElement
        : AttributeSetter[HTMLBaseElement, target.type] = new AttributeSetter(
      _.setAttribute("target", _)
    )
    @inline implicit def attributeSetter_HTMLFormElement
        : AttributeSetter[HTMLFormElement, target.type] = new AttributeSetter(
      _.setAttribute("target", _)
    )
    @inline implicit def attributeRemover_HTMLAnchorElement
        : AttributeRemover[HTMLAnchorElement, target.type] =
      new AttributeRemover(_.removeAttribute("target"))
    @inline implicit def attributeRemover_HTMLAreaElement
        : AttributeRemover[HTMLAreaElement, target.type] = new AttributeRemover(
      _.removeAttribute("target")
    )
    @inline implicit def attributeRemover_HTMLBaseElement
        : AttributeRemover[HTMLBaseElement, target.type] = new AttributeRemover(
      _.removeAttribute("target")
    )
    @inline implicit def attributeRemover_HTMLFormElement
        : AttributeRemover[HTMLFormElement, target.type] = new AttributeRemover(
      _.removeAttribute("target")
    )
  }
  @inline def text: properties.text.type = properties.text
  object title extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLElement
        extends MountPointBuilder[HTMLElement, title.type, String] {
      def mountProperty(element: HTMLElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.title = _)
      }
    }
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, title.type] = new AttributeSetter(
      _.setAttribute("title", _)
    )
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, title.type] = new AttributeSetter(
      _.setAttribute("title", _)
    )
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, title.type] = new AttributeSetter(
      _.setAttribute("title", _)
    )
    @inline implicit def attributeSetter_HTMLStyleElement
        : AttributeSetter[HTMLStyleElement, title.type] = new AttributeSetter(
      _.setAttribute("title", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, title.type] = new AttributeRemover(
      _.removeAttribute("title")
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, title.type] = new AttributeRemover(
      _.removeAttribute("title")
    )
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, title.type] = new AttributeRemover(
      _.removeAttribute("title")
    )
    @inline implicit def attributeRemover_HTMLStyleElement
        : AttributeRemover[HTMLStyleElement, title.type] = new AttributeRemover(
      _.removeAttribute("title")
    )
  }
  object translate extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLElement
        : AttributeSetter[HTMLElement, translate.type] = new AttributeSetter(
      _.setAttribute("translate", _)
    )
    @inline implicit def attributeRemover_HTMLElement
        : AttributeRemover[HTMLElement, translate.type] = new AttributeRemover(
      _.removeAttribute("translate")
    )
  }
  object `type` extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLButtonElement
        extends MountPointBuilder[HTMLButtonElement, `type`.type, String] {
      def mountProperty(
          element: HTMLButtonElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.`type` = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, `type`.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.`type` = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLLinkElement
        extends MountPointBuilder[HTMLLinkElement, `type`.type, String] {
      def mountProperty(element: HTMLLinkElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.`type` = _)
      }
    }
    @inline implicit def attributeSetter_HTMLAnchorElement
        : AttributeSetter[HTMLAnchorElement, `type`.type] = new AttributeSetter(
      _.setAttribute("type", _)
    )
    @inline implicit def attributeSetter_HTMLLinkElement
        : AttributeSetter[HTMLLinkElement, `type`.type] = new AttributeSetter(
      _.setAttribute("type", _)
    )
    @inline implicit def attributeSetter_HTMLButtonElement
        : AttributeSetter[HTMLButtonElement, `type`.type] = new AttributeSetter(
      _.setAttribute("type", _)
    )
    @inline implicit def attributeSetter_HTMLEmbedElement
        : AttributeSetter[HTMLEmbedElement, `type`.type] = new AttributeSetter(
      _.setAttribute("type", _)
    )
    @inline implicit def attributeSetter_HTMLObjectElement
        : AttributeSetter[HTMLObjectElement, `type`.type] = new AttributeSetter(
      _.setAttribute("type", _)
    )
    @inline implicit def attributeSetter_HTMLSourceElement
        : AttributeSetter[HTMLSourceElement, `type`.type] = new AttributeSetter(
      _.setAttribute("type", _)
    )
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, `type`.type] = new AttributeSetter(
      _.setAttribute("type", _)
    )
    @inline implicit def attributeSetter_HTMLOListElement
        : AttributeSetter[HTMLOListElement, `type`.type] = new AttributeSetter(
      _.setAttribute("type", _)
    )
    @inline implicit def attributeSetter_HTMLScriptElement
        : AttributeSetter[HTMLScriptElement, `type`.type] = new AttributeSetter(
      _.setAttribute("type", _)
    )
    @inline implicit def attributeRemover_HTMLAnchorElement
        : AttributeRemover[HTMLAnchorElement, `type`.type] =
      new AttributeRemover(_.removeAttribute("type"))
    @inline implicit def attributeRemover_HTMLLinkElement
        : AttributeRemover[HTMLLinkElement, `type`.type] = new AttributeRemover(
      _.removeAttribute("type")
    )
    @inline implicit def attributeRemover_HTMLButtonElement
        : AttributeRemover[HTMLButtonElement, `type`.type] =
      new AttributeRemover(_.removeAttribute("type"))
    @inline implicit def attributeRemover_HTMLEmbedElement
        : AttributeRemover[HTMLEmbedElement, `type`.type] =
      new AttributeRemover(_.removeAttribute("type"))
    @inline implicit def attributeRemover_HTMLObjectElement
        : AttributeRemover[HTMLObjectElement, `type`.type] =
      new AttributeRemover(_.removeAttribute("type"))
    @inline implicit def attributeRemover_HTMLSourceElement
        : AttributeRemover[HTMLSourceElement, `type`.type] =
      new AttributeRemover(_.removeAttribute("type"))
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, `type`.type] =
      new AttributeRemover(_.removeAttribute("type"))
    @inline implicit def attributeRemover_HTMLOListElement
        : AttributeRemover[HTMLOListElement, `type`.type] =
      new AttributeRemover(_.removeAttribute("type"))
    @inline implicit def attributeRemover_HTMLScriptElement
        : AttributeRemover[HTMLScriptElement, `type`.type] =
      new AttributeRemover(_.removeAttribute("type"))
  }
  object usemap extends AttributeFactory.Typed {
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, usemap.type] = new AttributeSetter(
      _.setAttribute("usemap", _)
    )
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, usemap.type] =
      new AttributeRemover(_.removeAttribute("usemap"))
  }
  object value extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLButtonElement
        extends MountPointBuilder[HTMLButtonElement, value.type, String] {
      def mountProperty(
          element: HTMLButtonElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.value = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, value.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.value = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLOptionElement
        extends MountPointBuilder[HTMLOptionElement, value.type, String] {
      def mountProperty(
          element: HTMLOptionElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.value = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLSelectElement
        extends MountPointBuilder[HTMLSelectElement, value.type, String] {
      def mountProperty(
          element: HTMLSelectElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.value = _)
      }
    }
    implicit object mountPointBuilder_String_HTMLTextAreaElement
        extends MountPointBuilder[HTMLTextAreaElement, value.type, String] {
      def mountProperty(
          element: HTMLTextAreaElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.value = _)
      }
    }
    @inline implicit def attributeSetter_HTMLButtonElement
        : AttributeSetter[HTMLButtonElement, value.type] = new AttributeSetter(
      _.setAttribute("value", _)
    )
    @inline implicit def attributeSetter_HTMLOptionElement
        : AttributeSetter[HTMLOptionElement, value.type] = new AttributeSetter(
      _.setAttribute("value", _)
    )
    @inline implicit def attributeSetter_HTMLDataElement
        : AttributeSetter[HTMLDataElement, value.type] = new AttributeSetter(
      _.setAttribute("value", _)
    )
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, value.type] = new AttributeSetter(
      _.setAttribute("value", _)
    )
    @inline implicit def attributeSetter_HTMLLIElement
        : AttributeSetter[HTMLLIElement, value.type] = new AttributeSetter(
      _.setAttribute("value", _)
    )
    @inline implicit def attributeSetter_HTMLMeterElement
        : AttributeSetter[HTMLMeterElement, value.type] = new AttributeSetter(
      _.setAttribute("value", _)
    )
    @inline implicit def attributeSetter_HTMLProgressElement
        : AttributeSetter[HTMLProgressElement, value.type] =
      new AttributeSetter(_.setAttribute("value", _))
    @inline implicit def attributeRemover_HTMLButtonElement
        : AttributeRemover[HTMLButtonElement, value.type] =
      new AttributeRemover(_.removeAttribute("value"))
    @inline implicit def attributeRemover_HTMLOptionElement
        : AttributeRemover[HTMLOptionElement, value.type] =
      new AttributeRemover(_.removeAttribute("value"))
    @inline implicit def attributeRemover_HTMLDataElement
        : AttributeRemover[HTMLDataElement, value.type] = new AttributeRemover(
      _.removeAttribute("value")
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, value.type] = new AttributeRemover(
      _.removeAttribute("value")
    )
    @inline implicit def attributeRemover_HTMLLIElement
        : AttributeRemover[HTMLLIElement, value.type] = new AttributeRemover(
      _.removeAttribute("value")
    )
    @inline implicit def attributeRemover_HTMLMeterElement
        : AttributeRemover[HTMLMeterElement, value.type] = new AttributeRemover(
      _.removeAttribute("value")
    )
    @inline implicit def attributeRemover_HTMLProgressElement
        : AttributeRemover[HTMLProgressElement, value.type] =
      new AttributeRemover(_.removeAttribute("value"))
  }
  @inline def valueAsNumber: properties.valueAsNumber.type =
    properties.valueAsNumber
  object width extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLInputElement
        extends MountPointBuilder[HTMLInputElement, width.type, String] {
      def mountProperty(element: HTMLInputElement, binding: Binding[String]) = {
        Binding.BindingInstances.map(binding)(element.width = _)
      }
    }
    @inline implicit def attributeSetter_HTMLCanvasElement
        : AttributeSetter[HTMLCanvasElement, width.type] = new AttributeSetter(
      _.setAttribute("width", _)
    )
    @inline implicit def attributeSetter_HTMLEmbedElement
        : AttributeSetter[HTMLEmbedElement, width.type] = new AttributeSetter(
      _.setAttribute("width", _)
    )
    @inline implicit def attributeSetter_HTMLIFrameElement
        : AttributeSetter[HTMLIFrameElement, width.type] = new AttributeSetter(
      _.setAttribute("width", _)
    )
    @inline implicit def attributeSetter_HTMLImageElement
        : AttributeSetter[HTMLImageElement, width.type] = new AttributeSetter(
      _.setAttribute("width", _)
    )
    @inline implicit def attributeSetter_HTMLInputElement
        : AttributeSetter[HTMLInputElement, width.type] = new AttributeSetter(
      _.setAttribute("width", _)
    )
    @inline implicit def attributeSetter_HTMLObjectElement
        : AttributeSetter[HTMLObjectElement, width.type] = new AttributeSetter(
      _.setAttribute("width", _)
    )
    @inline implicit def attributeSetter_HTMLSourceElement
        : AttributeSetter[HTMLSourceElement, width.type] = new AttributeSetter(
      _.setAttribute("width", _)
    )
    @inline implicit def attributeSetter_HTMLPictureElement
        : AttributeSetter[HTMLPictureElement, width.type] = new AttributeSetter(
      _.setAttribute("width", _)
    )
    @inline implicit def attributeSetter_HTMLVideoElement
        : AttributeSetter[HTMLVideoElement, width.type] = new AttributeSetter(
      _.setAttribute("width", _)
    )
    @inline implicit def attributeRemover_HTMLCanvasElement
        : AttributeRemover[HTMLCanvasElement, width.type] =
      new AttributeRemover(_.removeAttribute("width"))
    @inline implicit def attributeRemover_HTMLEmbedElement
        : AttributeRemover[HTMLEmbedElement, width.type] = new AttributeRemover(
      _.removeAttribute("width")
    )
    @inline implicit def attributeRemover_HTMLIFrameElement
        : AttributeRemover[HTMLIFrameElement, width.type] =
      new AttributeRemover(_.removeAttribute("width"))
    @inline implicit def attributeRemover_HTMLImageElement
        : AttributeRemover[HTMLImageElement, width.type] = new AttributeRemover(
      _.removeAttribute("width")
    )
    @inline implicit def attributeRemover_HTMLInputElement
        : AttributeRemover[HTMLInputElement, width.type] = new AttributeRemover(
      _.removeAttribute("width")
    )
    @inline implicit def attributeRemover_HTMLObjectElement
        : AttributeRemover[HTMLObjectElement, width.type] =
      new AttributeRemover(_.removeAttribute("width"))
    @inline implicit def attributeRemover_HTMLSourceElement
        : AttributeRemover[HTMLSourceElement, width.type] =
      new AttributeRemover(_.removeAttribute("width"))
    @inline implicit def attributeRemover_HTMLPictureElement
        : AttributeRemover[HTMLPictureElement, width.type] =
      new AttributeRemover(_.removeAttribute("width"))
    @inline implicit def attributeRemover_HTMLVideoElement
        : AttributeRemover[HTMLVideoElement, width.type] = new AttributeRemover(
      _.removeAttribute("width")
    )
  }
  object wrap extends AttributeFactory.Typed {
    implicit object mountPointBuilder_String_HTMLTextAreaElement
        extends MountPointBuilder[HTMLTextAreaElement, wrap.type, String] {
      def mountProperty(
          element: HTMLTextAreaElement,
          binding: Binding[String]
      ) = {
        Binding.BindingInstances.map(binding)(element.wrap = _)
      }
    }
    @inline implicit def attributeSetter_HTMLTextAreaElement
        : AttributeSetter[HTMLTextAreaElement, wrap.type] = new AttributeSetter(
      _.setAttribute("wrap", _)
    )
    @inline implicit def attributeRemover_HTMLTextAreaElement
        : AttributeRemover[HTMLTextAreaElement, wrap.type] =
      new AttributeRemover(_.removeAttribute("wrap"))
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy