github.com/jgarto/itcv@v0.0.0-20180826224514-4eea09c1aa0d/gen_react_coreGen.go (about)

     1  // Code generated by coreGen. DO NOT EDIT.
     2  
     3  package react
     4  
     5  import "github.com/gopherjs/gopherjs/js"
     6  
     7  // AElem is the React element definition corresponding to the HTML <a> element
     8  type AElem struct {
     9  	Element
    10  }
    11  
    12  func (a *AElem) coreReactElement() {}
    13  
    14  // AProps defines the properties for the <a> element
    15  type AProps struct {
    16  	AriaExpanded            bool
    17  	AriaHasPopup            bool
    18  	AriaLabelledBy          string
    19  	ClassName               string
    20  	DangerouslySetInnerHTML *DangerousInnerHTML
    21  	DataSet                 DataSet
    22  	Href                    string
    23  	ID                      string
    24  	Key                     string
    25  	OnChange                OnChange
    26  	OnClick                 OnClick
    27  	Ref                     Ref
    28  	Role                    string
    29  	Style                   *CSS
    30  	Target                  string
    31  	Title                   string
    32  }
    33  
    34  // A creates a new instance of a <a> element with the provided props and
    35  // children
    36  func A(props *AProps, children ...Element) *AElem {
    37  	type _AProps struct {
    38  		o                       *js.Object
    39  		AriaExpanded            bool                `js:"aria-expanded"`
    40  		AriaHasPopup            bool                `js:"aria-haspopup"`
    41  		AriaLabelledBy          string              `js:"aria-labelledby"`
    42  		ClassName               string              `js:"className"`
    43  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
    44  		Href                    string              `js:"href"`
    45  		ID                      string              `js:"id" react:"omitempty"`
    46  		Key                     string              `js:"key" react:"omitempty"`
    47  		OnChange                OnChange            `js:"onChange"`
    48  		OnClick                 OnClick             `js:"onClick"`
    49  		Ref                     Ref                 `js:"ref"`
    50  		Role                    string              `js:"role"`
    51  		Style                   *CSS                `js:"style"`
    52  		Target                  string              `js:"target"`
    53  		Title                   string              `js:"title"`
    54  	}
    55  
    56  	rprops := &_AProps{
    57  		o: object.New(),
    58  	}
    59  
    60  	if props != nil {
    61  		rprops.AriaExpanded = props.AriaExpanded
    62  
    63  		rprops.AriaHasPopup = props.AriaHasPopup
    64  
    65  		rprops.AriaLabelledBy = props.AriaLabelledBy
    66  
    67  		rprops.ClassName = props.ClassName
    68  
    69  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
    70  
    71  		if props.DataSet != nil {
    72  			for dk, dv := range props.DataSet {
    73  				rprops.o.Set("data-"+dk, dv)
    74  			}
    75  		}
    76  		rprops.Href = props.Href
    77  
    78  		if props.ID != "" {
    79  			rprops.ID = props.ID
    80  		}
    81  		if props.Key != "" {
    82  			rprops.Key = props.Key
    83  		}
    84  		if props.OnChange != nil {
    85  			rprops.o.Set("onChange", props.OnChange.OnChange)
    86  		}
    87  		if props.OnClick != nil {
    88  			rprops.o.Set("onClick", props.OnClick.OnClick)
    89  		}
    90  		if props.Ref != nil {
    91  			rprops.o.Set("ref", props.Ref.Ref)
    92  		}
    93  		rprops.Role = props.Role
    94  
    95  		// TODO: until we have a resolution on
    96  		// https://github.com/gopherjs/gopherjs/issues/236
    97  		rprops.Style = props.Style.hack()
    98  		rprops.Target = props.Target
    99  
   100  		rprops.Title = props.Title
   101  	}
   102  
   103  	return &AElem{
   104  		Element: createElement("a", rprops, children...),
   105  	}
   106  }
   107  
   108  // AbbrElem is the React element definition corresponding to the HTML <abbr> element
   109  type AbbrElem struct {
   110  	Element
   111  }
   112  
   113  func (a *AbbrElem) coreReactElement() {}
   114  
   115  // AbbrProps defines the properties for the <abbr> element
   116  type AbbrProps struct {
   117  	AriaExpanded            bool
   118  	AriaHasPopup            bool
   119  	AriaLabelledBy          string
   120  	ClassName               string
   121  	DangerouslySetInnerHTML *DangerousInnerHTML
   122  	DataSet                 DataSet
   123  	ID                      string
   124  	Key                     string
   125  	OnChange                OnChange
   126  	OnClick                 OnClick
   127  	Ref                     Ref
   128  	Role                    string
   129  	Style                   *CSS
   130  }
   131  
   132  // Abbr creates a new instance of a <abbr> element with the provided props and
   133  // children
   134  func Abbr(props *AbbrProps, children ...Element) *AbbrElem {
   135  	type _AbbrProps struct {
   136  		o                       *js.Object
   137  		AriaExpanded            bool                `js:"aria-expanded"`
   138  		AriaHasPopup            bool                `js:"aria-haspopup"`
   139  		AriaLabelledBy          string              `js:"aria-labelledby"`
   140  		ClassName               string              `js:"className"`
   141  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
   142  		ID                      string              `js:"id" react:"omitempty"`
   143  		Key                     string              `js:"key" react:"omitempty"`
   144  		OnChange                OnChange            `js:"onChange"`
   145  		OnClick                 OnClick             `js:"onClick"`
   146  		Ref                     Ref                 `js:"ref"`
   147  		Role                    string              `js:"role"`
   148  		Style                   *CSS                `js:"style"`
   149  	}
   150  
   151  	rprops := &_AbbrProps{
   152  		o: object.New(),
   153  	}
   154  
   155  	if props != nil {
   156  		rprops.AriaExpanded = props.AriaExpanded
   157  
   158  		rprops.AriaHasPopup = props.AriaHasPopup
   159  
   160  		rprops.AriaLabelledBy = props.AriaLabelledBy
   161  
   162  		rprops.ClassName = props.ClassName
   163  
   164  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
   165  
   166  		if props.DataSet != nil {
   167  			for dk, dv := range props.DataSet {
   168  				rprops.o.Set("data-"+dk, dv)
   169  			}
   170  		}
   171  		if props.ID != "" {
   172  			rprops.ID = props.ID
   173  		}
   174  		if props.Key != "" {
   175  			rprops.Key = props.Key
   176  		}
   177  		if props.OnChange != nil {
   178  			rprops.o.Set("onChange", props.OnChange.OnChange)
   179  		}
   180  		if props.OnClick != nil {
   181  			rprops.o.Set("onClick", props.OnClick.OnClick)
   182  		}
   183  		if props.Ref != nil {
   184  			rprops.o.Set("ref", props.Ref.Ref)
   185  		}
   186  		rprops.Role = props.Role
   187  
   188  		// TODO: until we have a resolution on
   189  		// https://github.com/gopherjs/gopherjs/issues/236
   190  		rprops.Style = props.Style.hack()
   191  	}
   192  
   193  	return &AbbrElem{
   194  		Element: createElement("abbr", rprops, children...),
   195  	}
   196  }
   197  
   198  // ArticleElem is the React element definition corresponding to the HTML <article> element
   199  type ArticleElem struct {
   200  	Element
   201  }
   202  
   203  func (a *ArticleElem) coreReactElement() {}
   204  
   205  // ArticleProps defines the properties for the <article> element
   206  type ArticleProps struct {
   207  	AriaExpanded            bool
   208  	AriaHasPopup            bool
   209  	AriaLabelledBy          string
   210  	ClassName               string
   211  	DangerouslySetInnerHTML *DangerousInnerHTML
   212  	DataSet                 DataSet
   213  	ID                      string
   214  	Key                     string
   215  	OnChange                OnChange
   216  	OnClick                 OnClick
   217  	Ref                     Ref
   218  	Role                    string
   219  	Style                   *CSS
   220  }
   221  
   222  // Article creates a new instance of a <article> element with the provided props and
   223  // children
   224  func Article(props *ArticleProps, children ...Element) *ArticleElem {
   225  	type _ArticleProps struct {
   226  		o                       *js.Object
   227  		AriaExpanded            bool                `js:"aria-expanded"`
   228  		AriaHasPopup            bool                `js:"aria-haspopup"`
   229  		AriaLabelledBy          string              `js:"aria-labelledby"`
   230  		ClassName               string              `js:"className"`
   231  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
   232  		ID                      string              `js:"id" react:"omitempty"`
   233  		Key                     string              `js:"key" react:"omitempty"`
   234  		OnChange                OnChange            `js:"onChange"`
   235  		OnClick                 OnClick             `js:"onClick"`
   236  		Ref                     Ref                 `js:"ref"`
   237  		Role                    string              `js:"role"`
   238  		Style                   *CSS                `js:"style"`
   239  	}
   240  
   241  	rprops := &_ArticleProps{
   242  		o: object.New(),
   243  	}
   244  
   245  	if props != nil {
   246  		rprops.AriaExpanded = props.AriaExpanded
   247  
   248  		rprops.AriaHasPopup = props.AriaHasPopup
   249  
   250  		rprops.AriaLabelledBy = props.AriaLabelledBy
   251  
   252  		rprops.ClassName = props.ClassName
   253  
   254  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
   255  
   256  		if props.DataSet != nil {
   257  			for dk, dv := range props.DataSet {
   258  				rprops.o.Set("data-"+dk, dv)
   259  			}
   260  		}
   261  		if props.ID != "" {
   262  			rprops.ID = props.ID
   263  		}
   264  		if props.Key != "" {
   265  			rprops.Key = props.Key
   266  		}
   267  		if props.OnChange != nil {
   268  			rprops.o.Set("onChange", props.OnChange.OnChange)
   269  		}
   270  		if props.OnClick != nil {
   271  			rprops.o.Set("onClick", props.OnClick.OnClick)
   272  		}
   273  		if props.Ref != nil {
   274  			rprops.o.Set("ref", props.Ref.Ref)
   275  		}
   276  		rprops.Role = props.Role
   277  
   278  		// TODO: until we have a resolution on
   279  		// https://github.com/gopherjs/gopherjs/issues/236
   280  		rprops.Style = props.Style.hack()
   281  	}
   282  
   283  	return &ArticleElem{
   284  		Element: createElement("article", rprops, children...),
   285  	}
   286  }
   287  
   288  // AsideElem is the React element definition corresponding to the HTML <aside> element
   289  type AsideElem struct {
   290  	Element
   291  }
   292  
   293  func (a *AsideElem) coreReactElement() {}
   294  
   295  // AsideProps defines the properties for the <aside> element
   296  type AsideProps struct {
   297  	AriaExpanded            bool
   298  	AriaHasPopup            bool
   299  	AriaLabelledBy          string
   300  	ClassName               string
   301  	DangerouslySetInnerHTML *DangerousInnerHTML
   302  	DataSet                 DataSet
   303  	ID                      string
   304  	Key                     string
   305  	OnChange                OnChange
   306  	OnClick                 OnClick
   307  	Ref                     Ref
   308  	Role                    string
   309  	Style                   *CSS
   310  }
   311  
   312  // Aside creates a new instance of a <aside> element with the provided props and
   313  // children
   314  func Aside(props *AsideProps, children ...Element) *AsideElem {
   315  	type _AsideProps struct {
   316  		o                       *js.Object
   317  		AriaExpanded            bool                `js:"aria-expanded"`
   318  		AriaHasPopup            bool                `js:"aria-haspopup"`
   319  		AriaLabelledBy          string              `js:"aria-labelledby"`
   320  		ClassName               string              `js:"className"`
   321  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
   322  		ID                      string              `js:"id" react:"omitempty"`
   323  		Key                     string              `js:"key" react:"omitempty"`
   324  		OnChange                OnChange            `js:"onChange"`
   325  		OnClick                 OnClick             `js:"onClick"`
   326  		Ref                     Ref                 `js:"ref"`
   327  		Role                    string              `js:"role"`
   328  		Style                   *CSS                `js:"style"`
   329  	}
   330  
   331  	rprops := &_AsideProps{
   332  		o: object.New(),
   333  	}
   334  
   335  	if props != nil {
   336  		rprops.AriaExpanded = props.AriaExpanded
   337  
   338  		rprops.AriaHasPopup = props.AriaHasPopup
   339  
   340  		rprops.AriaLabelledBy = props.AriaLabelledBy
   341  
   342  		rprops.ClassName = props.ClassName
   343  
   344  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
   345  
   346  		if props.DataSet != nil {
   347  			for dk, dv := range props.DataSet {
   348  				rprops.o.Set("data-"+dk, dv)
   349  			}
   350  		}
   351  		if props.ID != "" {
   352  			rprops.ID = props.ID
   353  		}
   354  		if props.Key != "" {
   355  			rprops.Key = props.Key
   356  		}
   357  		if props.OnChange != nil {
   358  			rprops.o.Set("onChange", props.OnChange.OnChange)
   359  		}
   360  		if props.OnClick != nil {
   361  			rprops.o.Set("onClick", props.OnClick.OnClick)
   362  		}
   363  		if props.Ref != nil {
   364  			rprops.o.Set("ref", props.Ref.Ref)
   365  		}
   366  		rprops.Role = props.Role
   367  
   368  		// TODO: until we have a resolution on
   369  		// https://github.com/gopherjs/gopherjs/issues/236
   370  		rprops.Style = props.Style.hack()
   371  	}
   372  
   373  	return &AsideElem{
   374  		Element: createElement("aside", rprops, children...),
   375  	}
   376  }
   377  
   378  // BElem is the React element definition corresponding to the HTML <b> element
   379  type BElem struct {
   380  	Element
   381  }
   382  
   383  func (a *BElem) coreReactElement() {}
   384  
   385  // BProps defines the properties for the <b> element
   386  type BProps struct {
   387  	AriaExpanded            bool
   388  	AriaHasPopup            bool
   389  	AriaLabelledBy          string
   390  	ClassName               string
   391  	DangerouslySetInnerHTML *DangerousInnerHTML
   392  	DataSet                 DataSet
   393  	ID                      string
   394  	Key                     string
   395  	OnChange                OnChange
   396  	OnClick                 OnClick
   397  	Ref                     Ref
   398  	Role                    string
   399  	Style                   *CSS
   400  }
   401  
   402  // B creates a new instance of a <b> element with the provided props and
   403  // children
   404  func B(props *BProps, children ...Element) *BElem {
   405  	type _BProps struct {
   406  		o                       *js.Object
   407  		AriaExpanded            bool                `js:"aria-expanded"`
   408  		AriaHasPopup            bool                `js:"aria-haspopup"`
   409  		AriaLabelledBy          string              `js:"aria-labelledby"`
   410  		ClassName               string              `js:"className"`
   411  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
   412  		ID                      string              `js:"id" react:"omitempty"`
   413  		Key                     string              `js:"key" react:"omitempty"`
   414  		OnChange                OnChange            `js:"onChange"`
   415  		OnClick                 OnClick             `js:"onClick"`
   416  		Ref                     Ref                 `js:"ref"`
   417  		Role                    string              `js:"role"`
   418  		Style                   *CSS                `js:"style"`
   419  	}
   420  
   421  	rprops := &_BProps{
   422  		o: object.New(),
   423  	}
   424  
   425  	if props != nil {
   426  		rprops.AriaExpanded = props.AriaExpanded
   427  
   428  		rprops.AriaHasPopup = props.AriaHasPopup
   429  
   430  		rprops.AriaLabelledBy = props.AriaLabelledBy
   431  
   432  		rprops.ClassName = props.ClassName
   433  
   434  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
   435  
   436  		if props.DataSet != nil {
   437  			for dk, dv := range props.DataSet {
   438  				rprops.o.Set("data-"+dk, dv)
   439  			}
   440  		}
   441  		if props.ID != "" {
   442  			rprops.ID = props.ID
   443  		}
   444  		if props.Key != "" {
   445  			rprops.Key = props.Key
   446  		}
   447  		if props.OnChange != nil {
   448  			rprops.o.Set("onChange", props.OnChange.OnChange)
   449  		}
   450  		if props.OnClick != nil {
   451  			rprops.o.Set("onClick", props.OnClick.OnClick)
   452  		}
   453  		if props.Ref != nil {
   454  			rprops.o.Set("ref", props.Ref.Ref)
   455  		}
   456  		rprops.Role = props.Role
   457  
   458  		// TODO: until we have a resolution on
   459  		// https://github.com/gopherjs/gopherjs/issues/236
   460  		rprops.Style = props.Style.hack()
   461  	}
   462  
   463  	return &BElem{
   464  		Element: createElement("b", rprops, children...),
   465  	}
   466  }
   467  
   468  // BrElem is the React element definition corresponding to the HTML <br> element
   469  type BrElem struct {
   470  	Element
   471  }
   472  
   473  func (a *BrElem) coreReactElement() {}
   474  
   475  // BrProps defines the properties for the <br> element
   476  type BrProps struct {
   477  	AriaExpanded            bool
   478  	AriaHasPopup            bool
   479  	AriaLabelledBy          string
   480  	ClassName               string
   481  	DangerouslySetInnerHTML *DangerousInnerHTML
   482  	DataSet                 DataSet
   483  	ID                      string
   484  	Key                     string
   485  	OnChange                OnChange
   486  	OnClick                 OnClick
   487  	Ref                     Ref
   488  	Role                    string
   489  	Style                   *CSS
   490  }
   491  
   492  // Br creates a new instance of a <br> element with the provided props and
   493  // children
   494  func Br(props *BrProps, children ...Element) *BrElem {
   495  	type _BrProps struct {
   496  		o                       *js.Object
   497  		AriaExpanded            bool                `js:"aria-expanded"`
   498  		AriaHasPopup            bool                `js:"aria-haspopup"`
   499  		AriaLabelledBy          string              `js:"aria-labelledby"`
   500  		ClassName               string              `js:"className"`
   501  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
   502  		ID                      string              `js:"id" react:"omitempty"`
   503  		Key                     string              `js:"key" react:"omitempty"`
   504  		OnChange                OnChange            `js:"onChange"`
   505  		OnClick                 OnClick             `js:"onClick"`
   506  		Ref                     Ref                 `js:"ref"`
   507  		Role                    string              `js:"role"`
   508  		Style                   *CSS                `js:"style"`
   509  	}
   510  
   511  	rprops := &_BrProps{
   512  		o: object.New(),
   513  	}
   514  
   515  	if props != nil {
   516  		rprops.AriaExpanded = props.AriaExpanded
   517  
   518  		rprops.AriaHasPopup = props.AriaHasPopup
   519  
   520  		rprops.AriaLabelledBy = props.AriaLabelledBy
   521  
   522  		rprops.ClassName = props.ClassName
   523  
   524  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
   525  
   526  		if props.DataSet != nil {
   527  			for dk, dv := range props.DataSet {
   528  				rprops.o.Set("data-"+dk, dv)
   529  			}
   530  		}
   531  		if props.ID != "" {
   532  			rprops.ID = props.ID
   533  		}
   534  		if props.Key != "" {
   535  			rprops.Key = props.Key
   536  		}
   537  		if props.OnChange != nil {
   538  			rprops.o.Set("onChange", props.OnChange.OnChange)
   539  		}
   540  		if props.OnClick != nil {
   541  			rprops.o.Set("onClick", props.OnClick.OnClick)
   542  		}
   543  		if props.Ref != nil {
   544  			rprops.o.Set("ref", props.Ref.Ref)
   545  		}
   546  		rprops.Role = props.Role
   547  
   548  		// TODO: until we have a resolution on
   549  		// https://github.com/gopherjs/gopherjs/issues/236
   550  		rprops.Style = props.Style.hack()
   551  	}
   552  
   553  	return &BrElem{
   554  		Element: createElement("br", rprops, children...),
   555  	}
   556  }
   557  
   558  // ButtonElem is the React element definition corresponding to the HTML <button> element
   559  type ButtonElem struct {
   560  	Element
   561  }
   562  
   563  func (a *ButtonElem) coreReactElement() {}
   564  
   565  // ButtonProps defines the properties for the <button> element
   566  type ButtonProps struct {
   567  	AriaExpanded            bool
   568  	AriaHasPopup            bool
   569  	AriaLabelledBy          string
   570  	ClassName               string
   571  	DangerouslySetInnerHTML *DangerousInnerHTML
   572  	DataSet                 DataSet
   573  	ID                      string
   574  	Key                     string
   575  	OnChange                OnChange
   576  	OnClick                 OnClick
   577  	Ref                     Ref
   578  	Role                    string
   579  	Style                   *CSS
   580  	Type                    string
   581  }
   582  
   583  // Button creates a new instance of a <button> element with the provided props and
   584  // children
   585  func Button(props *ButtonProps, children ...Element) *ButtonElem {
   586  	type _ButtonProps struct {
   587  		o                       *js.Object
   588  		AriaExpanded            bool                `js:"aria-expanded"`
   589  		AriaHasPopup            bool                `js:"aria-haspopup"`
   590  		AriaLabelledBy          string              `js:"aria-labelledby"`
   591  		ClassName               string              `js:"className"`
   592  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
   593  		ID                      string              `js:"id" react:"omitempty"`
   594  		Key                     string              `js:"key" react:"omitempty"`
   595  		OnChange                OnChange            `js:"onChange"`
   596  		OnClick                 OnClick             `js:"onClick"`
   597  		Ref                     Ref                 `js:"ref"`
   598  		Role                    string              `js:"role"`
   599  		Style                   *CSS                `js:"style"`
   600  		Type                    string              `js:"type"`
   601  	}
   602  
   603  	rprops := &_ButtonProps{
   604  		o: object.New(),
   605  	}
   606  
   607  	if props != nil {
   608  		rprops.AriaExpanded = props.AriaExpanded
   609  
   610  		rprops.AriaHasPopup = props.AriaHasPopup
   611  
   612  		rprops.AriaLabelledBy = props.AriaLabelledBy
   613  
   614  		rprops.ClassName = props.ClassName
   615  
   616  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
   617  
   618  		if props.DataSet != nil {
   619  			for dk, dv := range props.DataSet {
   620  				rprops.o.Set("data-"+dk, dv)
   621  			}
   622  		}
   623  		if props.ID != "" {
   624  			rprops.ID = props.ID
   625  		}
   626  		if props.Key != "" {
   627  			rprops.Key = props.Key
   628  		}
   629  		if props.OnChange != nil {
   630  			rprops.o.Set("onChange", props.OnChange.OnChange)
   631  		}
   632  		if props.OnClick != nil {
   633  			rprops.o.Set("onClick", props.OnClick.OnClick)
   634  		}
   635  		if props.Ref != nil {
   636  			rprops.o.Set("ref", props.Ref.Ref)
   637  		}
   638  		rprops.Role = props.Role
   639  
   640  		// TODO: until we have a resolution on
   641  		// https://github.com/gopherjs/gopherjs/issues/236
   642  		rprops.Style = props.Style.hack()
   643  		rprops.Type = props.Type
   644  	}
   645  
   646  	return &ButtonElem{
   647  		Element: createElement("button", rprops, children...),
   648  	}
   649  }
   650  
   651  // CaptionElem is the React element definition corresponding to the HTML <caption> element
   652  type CaptionElem struct {
   653  	Element
   654  }
   655  
   656  func (a *CaptionElem) coreReactElement() {}
   657  
   658  // CaptionProps defines the properties for the <caption> element
   659  type CaptionProps struct {
   660  	AriaExpanded            bool
   661  	AriaHasPopup            bool
   662  	AriaLabelledBy          string
   663  	ClassName               string
   664  	DangerouslySetInnerHTML *DangerousInnerHTML
   665  	DataSet                 DataSet
   666  	ID                      string
   667  	Key                     string
   668  	OnChange                OnChange
   669  	OnClick                 OnClick
   670  	Ref                     Ref
   671  	Role                    string
   672  	Style                   *CSS
   673  }
   674  
   675  // Caption creates a new instance of a <caption> element with the provided props and
   676  // children
   677  func Caption(props *CaptionProps, children ...Element) *CaptionElem {
   678  	type _CaptionProps struct {
   679  		o                       *js.Object
   680  		AriaExpanded            bool                `js:"aria-expanded"`
   681  		AriaHasPopup            bool                `js:"aria-haspopup"`
   682  		AriaLabelledBy          string              `js:"aria-labelledby"`
   683  		ClassName               string              `js:"className"`
   684  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
   685  		ID                      string              `js:"id" react:"omitempty"`
   686  		Key                     string              `js:"key" react:"omitempty"`
   687  		OnChange                OnChange            `js:"onChange"`
   688  		OnClick                 OnClick             `js:"onClick"`
   689  		Ref                     Ref                 `js:"ref"`
   690  		Role                    string              `js:"role"`
   691  		Style                   *CSS                `js:"style"`
   692  	}
   693  
   694  	rprops := &_CaptionProps{
   695  		o: object.New(),
   696  	}
   697  
   698  	if props != nil {
   699  		rprops.AriaExpanded = props.AriaExpanded
   700  
   701  		rprops.AriaHasPopup = props.AriaHasPopup
   702  
   703  		rprops.AriaLabelledBy = props.AriaLabelledBy
   704  
   705  		rprops.ClassName = props.ClassName
   706  
   707  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
   708  
   709  		if props.DataSet != nil {
   710  			for dk, dv := range props.DataSet {
   711  				rprops.o.Set("data-"+dk, dv)
   712  			}
   713  		}
   714  		if props.ID != "" {
   715  			rprops.ID = props.ID
   716  		}
   717  		if props.Key != "" {
   718  			rprops.Key = props.Key
   719  		}
   720  		if props.OnChange != nil {
   721  			rprops.o.Set("onChange", props.OnChange.OnChange)
   722  		}
   723  		if props.OnClick != nil {
   724  			rprops.o.Set("onClick", props.OnClick.OnClick)
   725  		}
   726  		if props.Ref != nil {
   727  			rprops.o.Set("ref", props.Ref.Ref)
   728  		}
   729  		rprops.Role = props.Role
   730  
   731  		// TODO: until we have a resolution on
   732  		// https://github.com/gopherjs/gopherjs/issues/236
   733  		rprops.Style = props.Style.hack()
   734  	}
   735  
   736  	return &CaptionElem{
   737  		Element: createElement("caption", rprops, children...),
   738  	}
   739  }
   740  
   741  // CodeElem is the React element definition corresponding to the HTML <code> element
   742  type CodeElem struct {
   743  	Element
   744  }
   745  
   746  func (a *CodeElem) coreReactElement() {}
   747  
   748  // CodeProps defines the properties for the <code> element
   749  type CodeProps struct {
   750  	AriaExpanded            bool
   751  	AriaHasPopup            bool
   752  	AriaLabelledBy          string
   753  	ClassName               string
   754  	DangerouslySetInnerHTML *DangerousInnerHTML
   755  	DataSet                 DataSet
   756  	ID                      string
   757  	Key                     string
   758  	OnChange                OnChange
   759  	OnClick                 OnClick
   760  	Ref                     Ref
   761  	Role                    string
   762  	Style                   *CSS
   763  }
   764  
   765  // Code creates a new instance of a <code> element with the provided props and
   766  // children
   767  func Code(props *CodeProps, children ...Element) *CodeElem {
   768  	type _CodeProps struct {
   769  		o                       *js.Object
   770  		AriaExpanded            bool                `js:"aria-expanded"`
   771  		AriaHasPopup            bool                `js:"aria-haspopup"`
   772  		AriaLabelledBy          string              `js:"aria-labelledby"`
   773  		ClassName               string              `js:"className"`
   774  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
   775  		ID                      string              `js:"id" react:"omitempty"`
   776  		Key                     string              `js:"key" react:"omitempty"`
   777  		OnChange                OnChange            `js:"onChange"`
   778  		OnClick                 OnClick             `js:"onClick"`
   779  		Ref                     Ref                 `js:"ref"`
   780  		Role                    string              `js:"role"`
   781  		Style                   *CSS                `js:"style"`
   782  	}
   783  
   784  	rprops := &_CodeProps{
   785  		o: object.New(),
   786  	}
   787  
   788  	if props != nil {
   789  		rprops.AriaExpanded = props.AriaExpanded
   790  
   791  		rprops.AriaHasPopup = props.AriaHasPopup
   792  
   793  		rprops.AriaLabelledBy = props.AriaLabelledBy
   794  
   795  		rprops.ClassName = props.ClassName
   796  
   797  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
   798  
   799  		if props.DataSet != nil {
   800  			for dk, dv := range props.DataSet {
   801  				rprops.o.Set("data-"+dk, dv)
   802  			}
   803  		}
   804  		if props.ID != "" {
   805  			rprops.ID = props.ID
   806  		}
   807  		if props.Key != "" {
   808  			rprops.Key = props.Key
   809  		}
   810  		if props.OnChange != nil {
   811  			rprops.o.Set("onChange", props.OnChange.OnChange)
   812  		}
   813  		if props.OnClick != nil {
   814  			rprops.o.Set("onClick", props.OnClick.OnClick)
   815  		}
   816  		if props.Ref != nil {
   817  			rprops.o.Set("ref", props.Ref.Ref)
   818  		}
   819  		rprops.Role = props.Role
   820  
   821  		// TODO: until we have a resolution on
   822  		// https://github.com/gopherjs/gopherjs/issues/236
   823  		rprops.Style = props.Style.hack()
   824  	}
   825  
   826  	return &CodeElem{
   827  		Element: createElement("code", rprops, children...),
   828  	}
   829  }
   830  
   831  // DivElem is the React element definition corresponding to the HTML <div> element
   832  type DivElem struct {
   833  	Element
   834  }
   835  
   836  func (a *DivElem) coreReactElement() {}
   837  
   838  // DivProps defines the properties for the <div> element
   839  type DivProps struct {
   840  	AriaExpanded            bool
   841  	AriaHasPopup            bool
   842  	AriaLabelledBy          string
   843  	ClassName               string
   844  	DangerouslySetInnerHTML *DangerousInnerHTML
   845  	DataSet                 DataSet
   846  	ID                      string
   847  	Key                     string
   848  	OnChange                OnChange
   849  	OnClick                 OnClick
   850  	Ref                     Ref
   851  	Role                    string
   852  	Style                   *CSS
   853  }
   854  
   855  // Div creates a new instance of a <div> element with the provided props and
   856  // children
   857  func Div(props *DivProps, children ...Element) *DivElem {
   858  	type _DivProps struct {
   859  		o                       *js.Object
   860  		AriaExpanded            bool                `js:"aria-expanded"`
   861  		AriaHasPopup            bool                `js:"aria-haspopup"`
   862  		AriaLabelledBy          string              `js:"aria-labelledby"`
   863  		ClassName               string              `js:"className"`
   864  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
   865  		ID                      string              `js:"id" react:"omitempty"`
   866  		Key                     string              `js:"key" react:"omitempty"`
   867  		OnChange                OnChange            `js:"onChange"`
   868  		OnClick                 OnClick             `js:"onClick"`
   869  		Ref                     Ref                 `js:"ref"`
   870  		Role                    string              `js:"role"`
   871  		Style                   *CSS                `js:"style"`
   872  	}
   873  
   874  	rprops := &_DivProps{
   875  		o: object.New(),
   876  	}
   877  
   878  	if props != nil {
   879  		rprops.AriaExpanded = props.AriaExpanded
   880  
   881  		rprops.AriaHasPopup = props.AriaHasPopup
   882  
   883  		rprops.AriaLabelledBy = props.AriaLabelledBy
   884  
   885  		rprops.ClassName = props.ClassName
   886  
   887  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
   888  
   889  		if props.DataSet != nil {
   890  			for dk, dv := range props.DataSet {
   891  				rprops.o.Set("data-"+dk, dv)
   892  			}
   893  		}
   894  		if props.ID != "" {
   895  			rprops.ID = props.ID
   896  		}
   897  		if props.Key != "" {
   898  			rprops.Key = props.Key
   899  		}
   900  		if props.OnChange != nil {
   901  			rprops.o.Set("onChange", props.OnChange.OnChange)
   902  		}
   903  		if props.OnClick != nil {
   904  			rprops.o.Set("onClick", props.OnClick.OnClick)
   905  		}
   906  		if props.Ref != nil {
   907  			rprops.o.Set("ref", props.Ref.Ref)
   908  		}
   909  		rprops.Role = props.Role
   910  
   911  		// TODO: until we have a resolution on
   912  		// https://github.com/gopherjs/gopherjs/issues/236
   913  		rprops.Style = props.Style.hack()
   914  	}
   915  
   916  	return &DivElem{
   917  		Element: createElement("div", rprops, children...),
   918  	}
   919  }
   920  
   921  // EmElem is the React element definition corresponding to the HTML <em> element
   922  type EmElem struct {
   923  	Element
   924  }
   925  
   926  func (a *EmElem) coreReactElement() {}
   927  
   928  // EmProps defines the properties for the <em> element
   929  type EmProps struct {
   930  	AriaExpanded            bool
   931  	AriaHasPopup            bool
   932  	AriaLabelledBy          string
   933  	ClassName               string
   934  	DangerouslySetInnerHTML *DangerousInnerHTML
   935  	DataSet                 DataSet
   936  	ID                      string
   937  	Key                     string
   938  	OnChange                OnChange
   939  	OnClick                 OnClick
   940  	Ref                     Ref
   941  	Role                    string
   942  	Style                   *CSS
   943  }
   944  
   945  // Em creates a new instance of a <em> element with the provided props and
   946  // children
   947  func Em(props *EmProps, children ...Element) *EmElem {
   948  	type _EmProps struct {
   949  		o                       *js.Object
   950  		AriaExpanded            bool                `js:"aria-expanded"`
   951  		AriaHasPopup            bool                `js:"aria-haspopup"`
   952  		AriaLabelledBy          string              `js:"aria-labelledby"`
   953  		ClassName               string              `js:"className"`
   954  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
   955  		ID                      string              `js:"id" react:"omitempty"`
   956  		Key                     string              `js:"key" react:"omitempty"`
   957  		OnChange                OnChange            `js:"onChange"`
   958  		OnClick                 OnClick             `js:"onClick"`
   959  		Ref                     Ref                 `js:"ref"`
   960  		Role                    string              `js:"role"`
   961  		Style                   *CSS                `js:"style"`
   962  	}
   963  
   964  	rprops := &_EmProps{
   965  		o: object.New(),
   966  	}
   967  
   968  	if props != nil {
   969  		rprops.AriaExpanded = props.AriaExpanded
   970  
   971  		rprops.AriaHasPopup = props.AriaHasPopup
   972  
   973  		rprops.AriaLabelledBy = props.AriaLabelledBy
   974  
   975  		rprops.ClassName = props.ClassName
   976  
   977  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
   978  
   979  		if props.DataSet != nil {
   980  			for dk, dv := range props.DataSet {
   981  				rprops.o.Set("data-"+dk, dv)
   982  			}
   983  		}
   984  		if props.ID != "" {
   985  			rprops.ID = props.ID
   986  		}
   987  		if props.Key != "" {
   988  			rprops.Key = props.Key
   989  		}
   990  		if props.OnChange != nil {
   991  			rprops.o.Set("onChange", props.OnChange.OnChange)
   992  		}
   993  		if props.OnClick != nil {
   994  			rprops.o.Set("onClick", props.OnClick.OnClick)
   995  		}
   996  		if props.Ref != nil {
   997  			rprops.o.Set("ref", props.Ref.Ref)
   998  		}
   999  		rprops.Role = props.Role
  1000  
  1001  		// TODO: until we have a resolution on
  1002  		// https://github.com/gopherjs/gopherjs/issues/236
  1003  		rprops.Style = props.Style.hack()
  1004  	}
  1005  
  1006  	return &EmElem{
  1007  		Element: createElement("em", rprops, children...),
  1008  	}
  1009  }
  1010  
  1011  // FooterElem is the React element definition corresponding to the HTML <footer> element
  1012  type FooterElem struct {
  1013  	Element
  1014  }
  1015  
  1016  func (a *FooterElem) coreReactElement() {}
  1017  
  1018  // FooterProps defines the properties for the <footer> element
  1019  type FooterProps struct {
  1020  	AriaExpanded            bool
  1021  	AriaHasPopup            bool
  1022  	AriaLabelledBy          string
  1023  	ClassName               string
  1024  	DangerouslySetInnerHTML *DangerousInnerHTML
  1025  	DataSet                 DataSet
  1026  	ID                      string
  1027  	Key                     string
  1028  	OnChange                OnChange
  1029  	OnClick                 OnClick
  1030  	Ref                     Ref
  1031  	Role                    string
  1032  	Style                   *CSS
  1033  }
  1034  
  1035  // Footer creates a new instance of a <footer> element with the provided props and
  1036  // children
  1037  func Footer(props *FooterProps, children ...Element) *FooterElem {
  1038  	type _FooterProps struct {
  1039  		o                       *js.Object
  1040  		AriaExpanded            bool                `js:"aria-expanded"`
  1041  		AriaHasPopup            bool                `js:"aria-haspopup"`
  1042  		AriaLabelledBy          string              `js:"aria-labelledby"`
  1043  		ClassName               string              `js:"className"`
  1044  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  1045  		ID                      string              `js:"id" react:"omitempty"`
  1046  		Key                     string              `js:"key" react:"omitempty"`
  1047  		OnChange                OnChange            `js:"onChange"`
  1048  		OnClick                 OnClick             `js:"onClick"`
  1049  		Ref                     Ref                 `js:"ref"`
  1050  		Role                    string              `js:"role"`
  1051  		Style                   *CSS                `js:"style"`
  1052  	}
  1053  
  1054  	rprops := &_FooterProps{
  1055  		o: object.New(),
  1056  	}
  1057  
  1058  	if props != nil {
  1059  		rprops.AriaExpanded = props.AriaExpanded
  1060  
  1061  		rprops.AriaHasPopup = props.AriaHasPopup
  1062  
  1063  		rprops.AriaLabelledBy = props.AriaLabelledBy
  1064  
  1065  		rprops.ClassName = props.ClassName
  1066  
  1067  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  1068  
  1069  		if props.DataSet != nil {
  1070  			for dk, dv := range props.DataSet {
  1071  				rprops.o.Set("data-"+dk, dv)
  1072  			}
  1073  		}
  1074  		if props.ID != "" {
  1075  			rprops.ID = props.ID
  1076  		}
  1077  		if props.Key != "" {
  1078  			rprops.Key = props.Key
  1079  		}
  1080  		if props.OnChange != nil {
  1081  			rprops.o.Set("onChange", props.OnChange.OnChange)
  1082  		}
  1083  		if props.OnClick != nil {
  1084  			rprops.o.Set("onClick", props.OnClick.OnClick)
  1085  		}
  1086  		if props.Ref != nil {
  1087  			rprops.o.Set("ref", props.Ref.Ref)
  1088  		}
  1089  		rprops.Role = props.Role
  1090  
  1091  		// TODO: until we have a resolution on
  1092  		// https://github.com/gopherjs/gopherjs/issues/236
  1093  		rprops.Style = props.Style.hack()
  1094  	}
  1095  
  1096  	return &FooterElem{
  1097  		Element: createElement("footer", rprops, children...),
  1098  	}
  1099  }
  1100  
  1101  // FormElem is the React element definition corresponding to the HTML <form> element
  1102  type FormElem struct {
  1103  	Element
  1104  }
  1105  
  1106  func (a *FormElem) coreReactElement() {}
  1107  
  1108  // FormProps defines the properties for the <form> element
  1109  type FormProps struct {
  1110  	AriaExpanded            bool
  1111  	AriaHasPopup            bool
  1112  	AriaLabelledBy          string
  1113  	ClassName               string
  1114  	DangerouslySetInnerHTML *DangerousInnerHTML
  1115  	DataSet                 DataSet
  1116  	ID                      string
  1117  	Key                     string
  1118  	OnChange                OnChange
  1119  	OnClick                 OnClick
  1120  	Ref                     Ref
  1121  	Role                    string
  1122  	Style                   *CSS
  1123  }
  1124  
  1125  // Form creates a new instance of a <form> element with the provided props and
  1126  // children
  1127  func Form(props *FormProps, children ...Element) *FormElem {
  1128  	type _FormProps struct {
  1129  		o                       *js.Object
  1130  		AriaExpanded            bool                `js:"aria-expanded"`
  1131  		AriaHasPopup            bool                `js:"aria-haspopup"`
  1132  		AriaLabelledBy          string              `js:"aria-labelledby"`
  1133  		ClassName               string              `js:"className"`
  1134  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  1135  		ID                      string              `js:"id" react:"omitempty"`
  1136  		Key                     string              `js:"key" react:"omitempty"`
  1137  		OnChange                OnChange            `js:"onChange"`
  1138  		OnClick                 OnClick             `js:"onClick"`
  1139  		Ref                     Ref                 `js:"ref"`
  1140  		Role                    string              `js:"role"`
  1141  		Style                   *CSS                `js:"style"`
  1142  	}
  1143  
  1144  	rprops := &_FormProps{
  1145  		o: object.New(),
  1146  	}
  1147  
  1148  	if props != nil {
  1149  		rprops.AriaExpanded = props.AriaExpanded
  1150  
  1151  		rprops.AriaHasPopup = props.AriaHasPopup
  1152  
  1153  		rprops.AriaLabelledBy = props.AriaLabelledBy
  1154  
  1155  		rprops.ClassName = props.ClassName
  1156  
  1157  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  1158  
  1159  		if props.DataSet != nil {
  1160  			for dk, dv := range props.DataSet {
  1161  				rprops.o.Set("data-"+dk, dv)
  1162  			}
  1163  		}
  1164  		if props.ID != "" {
  1165  			rprops.ID = props.ID
  1166  		}
  1167  		if props.Key != "" {
  1168  			rprops.Key = props.Key
  1169  		}
  1170  		if props.OnChange != nil {
  1171  			rprops.o.Set("onChange", props.OnChange.OnChange)
  1172  		}
  1173  		if props.OnClick != nil {
  1174  			rprops.o.Set("onClick", props.OnClick.OnClick)
  1175  		}
  1176  		if props.Ref != nil {
  1177  			rprops.o.Set("ref", props.Ref.Ref)
  1178  		}
  1179  		rprops.Role = props.Role
  1180  
  1181  		// TODO: until we have a resolution on
  1182  		// https://github.com/gopherjs/gopherjs/issues/236
  1183  		rprops.Style = props.Style.hack()
  1184  	}
  1185  
  1186  	return &FormElem{
  1187  		Element: createElement("form", rprops, children...),
  1188  	}
  1189  }
  1190  
  1191  // H1Elem is the React element definition corresponding to the HTML <h1> element
  1192  type H1Elem struct {
  1193  	Element
  1194  }
  1195  
  1196  func (a *H1Elem) coreReactElement() {}
  1197  
  1198  // H1Props defines the properties for the <h1> element
  1199  type H1Props struct {
  1200  	AriaExpanded            bool
  1201  	AriaHasPopup            bool
  1202  	AriaLabelledBy          string
  1203  	ClassName               string
  1204  	DangerouslySetInnerHTML *DangerousInnerHTML
  1205  	DataSet                 DataSet
  1206  	ID                      string
  1207  	Key                     string
  1208  	OnChange                OnChange
  1209  	OnClick                 OnClick
  1210  	Ref                     Ref
  1211  	Role                    string
  1212  	Style                   *CSS
  1213  }
  1214  
  1215  // H1 creates a new instance of a <h1> element with the provided props and
  1216  // children
  1217  func H1(props *H1Props, children ...Element) *H1Elem {
  1218  	type _H1Props struct {
  1219  		o                       *js.Object
  1220  		AriaExpanded            bool                `js:"aria-expanded"`
  1221  		AriaHasPopup            bool                `js:"aria-haspopup"`
  1222  		AriaLabelledBy          string              `js:"aria-labelledby"`
  1223  		ClassName               string              `js:"className"`
  1224  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  1225  		ID                      string              `js:"id" react:"omitempty"`
  1226  		Key                     string              `js:"key" react:"omitempty"`
  1227  		OnChange                OnChange            `js:"onChange"`
  1228  		OnClick                 OnClick             `js:"onClick"`
  1229  		Ref                     Ref                 `js:"ref"`
  1230  		Role                    string              `js:"role"`
  1231  		Style                   *CSS                `js:"style"`
  1232  	}
  1233  
  1234  	rprops := &_H1Props{
  1235  		o: object.New(),
  1236  	}
  1237  
  1238  	if props != nil {
  1239  		rprops.AriaExpanded = props.AriaExpanded
  1240  
  1241  		rprops.AriaHasPopup = props.AriaHasPopup
  1242  
  1243  		rprops.AriaLabelledBy = props.AriaLabelledBy
  1244  
  1245  		rprops.ClassName = props.ClassName
  1246  
  1247  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  1248  
  1249  		if props.DataSet != nil {
  1250  			for dk, dv := range props.DataSet {
  1251  				rprops.o.Set("data-"+dk, dv)
  1252  			}
  1253  		}
  1254  		if props.ID != "" {
  1255  			rprops.ID = props.ID
  1256  		}
  1257  		if props.Key != "" {
  1258  			rprops.Key = props.Key
  1259  		}
  1260  		if props.OnChange != nil {
  1261  			rprops.o.Set("onChange", props.OnChange.OnChange)
  1262  		}
  1263  		if props.OnClick != nil {
  1264  			rprops.o.Set("onClick", props.OnClick.OnClick)
  1265  		}
  1266  		if props.Ref != nil {
  1267  			rprops.o.Set("ref", props.Ref.Ref)
  1268  		}
  1269  		rprops.Role = props.Role
  1270  
  1271  		// TODO: until we have a resolution on
  1272  		// https://github.com/gopherjs/gopherjs/issues/236
  1273  		rprops.Style = props.Style.hack()
  1274  	}
  1275  
  1276  	return &H1Elem{
  1277  		Element: createElement("h1", rprops, children...),
  1278  	}
  1279  }
  1280  
  1281  // H2Elem is the React element definition corresponding to the HTML <h2> element
  1282  type H2Elem struct {
  1283  	Element
  1284  }
  1285  
  1286  func (a *H2Elem) coreReactElement() {}
  1287  
  1288  // H2Props defines the properties for the <h2> element
  1289  type H2Props struct {
  1290  	AriaExpanded            bool
  1291  	AriaHasPopup            bool
  1292  	AriaLabelledBy          string
  1293  	ClassName               string
  1294  	DangerouslySetInnerHTML *DangerousInnerHTML
  1295  	DataSet                 DataSet
  1296  	ID                      string
  1297  	Key                     string
  1298  	OnChange                OnChange
  1299  	OnClick                 OnClick
  1300  	Ref                     Ref
  1301  	Role                    string
  1302  	Style                   *CSS
  1303  }
  1304  
  1305  // H2 creates a new instance of a <h2> element with the provided props and
  1306  // children
  1307  func H2(props *H2Props, children ...Element) *H2Elem {
  1308  	type _H2Props struct {
  1309  		o                       *js.Object
  1310  		AriaExpanded            bool                `js:"aria-expanded"`
  1311  		AriaHasPopup            bool                `js:"aria-haspopup"`
  1312  		AriaLabelledBy          string              `js:"aria-labelledby"`
  1313  		ClassName               string              `js:"className"`
  1314  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  1315  		ID                      string              `js:"id" react:"omitempty"`
  1316  		Key                     string              `js:"key" react:"omitempty"`
  1317  		OnChange                OnChange            `js:"onChange"`
  1318  		OnClick                 OnClick             `js:"onClick"`
  1319  		Ref                     Ref                 `js:"ref"`
  1320  		Role                    string              `js:"role"`
  1321  		Style                   *CSS                `js:"style"`
  1322  	}
  1323  
  1324  	rprops := &_H2Props{
  1325  		o: object.New(),
  1326  	}
  1327  
  1328  	if props != nil {
  1329  		rprops.AriaExpanded = props.AriaExpanded
  1330  
  1331  		rprops.AriaHasPopup = props.AriaHasPopup
  1332  
  1333  		rprops.AriaLabelledBy = props.AriaLabelledBy
  1334  
  1335  		rprops.ClassName = props.ClassName
  1336  
  1337  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  1338  
  1339  		if props.DataSet != nil {
  1340  			for dk, dv := range props.DataSet {
  1341  				rprops.o.Set("data-"+dk, dv)
  1342  			}
  1343  		}
  1344  		if props.ID != "" {
  1345  			rprops.ID = props.ID
  1346  		}
  1347  		if props.Key != "" {
  1348  			rprops.Key = props.Key
  1349  		}
  1350  		if props.OnChange != nil {
  1351  			rprops.o.Set("onChange", props.OnChange.OnChange)
  1352  		}
  1353  		if props.OnClick != nil {
  1354  			rprops.o.Set("onClick", props.OnClick.OnClick)
  1355  		}
  1356  		if props.Ref != nil {
  1357  			rprops.o.Set("ref", props.Ref.Ref)
  1358  		}
  1359  		rprops.Role = props.Role
  1360  
  1361  		// TODO: until we have a resolution on
  1362  		// https://github.com/gopherjs/gopherjs/issues/236
  1363  		rprops.Style = props.Style.hack()
  1364  	}
  1365  
  1366  	return &H2Elem{
  1367  		Element: createElement("h2", rprops, children...),
  1368  	}
  1369  }
  1370  
  1371  // H3Elem is the React element definition corresponding to the HTML <h3> element
  1372  type H3Elem struct {
  1373  	Element
  1374  }
  1375  
  1376  func (a *H3Elem) coreReactElement() {}
  1377  
  1378  // H3Props defines the properties for the <h3> element
  1379  type H3Props struct {
  1380  	AriaExpanded            bool
  1381  	AriaHasPopup            bool
  1382  	AriaLabelledBy          string
  1383  	ClassName               string
  1384  	DangerouslySetInnerHTML *DangerousInnerHTML
  1385  	DataSet                 DataSet
  1386  	ID                      string
  1387  	Key                     string
  1388  	OnChange                OnChange
  1389  	OnClick                 OnClick
  1390  	Ref                     Ref
  1391  	Role                    string
  1392  	Style                   *CSS
  1393  }
  1394  
  1395  // H3 creates a new instance of a <h3> element with the provided props and
  1396  // children
  1397  func H3(props *H3Props, children ...Element) *H3Elem {
  1398  	type _H3Props struct {
  1399  		o                       *js.Object
  1400  		AriaExpanded            bool                `js:"aria-expanded"`
  1401  		AriaHasPopup            bool                `js:"aria-haspopup"`
  1402  		AriaLabelledBy          string              `js:"aria-labelledby"`
  1403  		ClassName               string              `js:"className"`
  1404  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  1405  		ID                      string              `js:"id" react:"omitempty"`
  1406  		Key                     string              `js:"key" react:"omitempty"`
  1407  		OnChange                OnChange            `js:"onChange"`
  1408  		OnClick                 OnClick             `js:"onClick"`
  1409  		Ref                     Ref                 `js:"ref"`
  1410  		Role                    string              `js:"role"`
  1411  		Style                   *CSS                `js:"style"`
  1412  	}
  1413  
  1414  	rprops := &_H3Props{
  1415  		o: object.New(),
  1416  	}
  1417  
  1418  	if props != nil {
  1419  		rprops.AriaExpanded = props.AriaExpanded
  1420  
  1421  		rprops.AriaHasPopup = props.AriaHasPopup
  1422  
  1423  		rprops.AriaLabelledBy = props.AriaLabelledBy
  1424  
  1425  		rprops.ClassName = props.ClassName
  1426  
  1427  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  1428  
  1429  		if props.DataSet != nil {
  1430  			for dk, dv := range props.DataSet {
  1431  				rprops.o.Set("data-"+dk, dv)
  1432  			}
  1433  		}
  1434  		if props.ID != "" {
  1435  			rprops.ID = props.ID
  1436  		}
  1437  		if props.Key != "" {
  1438  			rprops.Key = props.Key
  1439  		}
  1440  		if props.OnChange != nil {
  1441  			rprops.o.Set("onChange", props.OnChange.OnChange)
  1442  		}
  1443  		if props.OnClick != nil {
  1444  			rprops.o.Set("onClick", props.OnClick.OnClick)
  1445  		}
  1446  		if props.Ref != nil {
  1447  			rprops.o.Set("ref", props.Ref.Ref)
  1448  		}
  1449  		rprops.Role = props.Role
  1450  
  1451  		// TODO: until we have a resolution on
  1452  		// https://github.com/gopherjs/gopherjs/issues/236
  1453  		rprops.Style = props.Style.hack()
  1454  	}
  1455  
  1456  	return &H3Elem{
  1457  		Element: createElement("h3", rprops, children...),
  1458  	}
  1459  }
  1460  
  1461  // H4Elem is the React element definition corresponding to the HTML <h4> element
  1462  type H4Elem struct {
  1463  	Element
  1464  }
  1465  
  1466  func (a *H4Elem) coreReactElement() {}
  1467  
  1468  // H4Props defines the properties for the <h4> element
  1469  type H4Props struct {
  1470  	AriaExpanded            bool
  1471  	AriaHasPopup            bool
  1472  	AriaLabelledBy          string
  1473  	ClassName               string
  1474  	DangerouslySetInnerHTML *DangerousInnerHTML
  1475  	DataSet                 DataSet
  1476  	ID                      string
  1477  	Key                     string
  1478  	OnChange                OnChange
  1479  	OnClick                 OnClick
  1480  	Ref                     Ref
  1481  	Role                    string
  1482  	Style                   *CSS
  1483  }
  1484  
  1485  // H4 creates a new instance of a <h4> element with the provided props and
  1486  // children
  1487  func H4(props *H4Props, children ...Element) *H4Elem {
  1488  	type _H4Props struct {
  1489  		o                       *js.Object
  1490  		AriaExpanded            bool                `js:"aria-expanded"`
  1491  		AriaHasPopup            bool                `js:"aria-haspopup"`
  1492  		AriaLabelledBy          string              `js:"aria-labelledby"`
  1493  		ClassName               string              `js:"className"`
  1494  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  1495  		ID                      string              `js:"id" react:"omitempty"`
  1496  		Key                     string              `js:"key" react:"omitempty"`
  1497  		OnChange                OnChange            `js:"onChange"`
  1498  		OnClick                 OnClick             `js:"onClick"`
  1499  		Ref                     Ref                 `js:"ref"`
  1500  		Role                    string              `js:"role"`
  1501  		Style                   *CSS                `js:"style"`
  1502  	}
  1503  
  1504  	rprops := &_H4Props{
  1505  		o: object.New(),
  1506  	}
  1507  
  1508  	if props != nil {
  1509  		rprops.AriaExpanded = props.AriaExpanded
  1510  
  1511  		rprops.AriaHasPopup = props.AriaHasPopup
  1512  
  1513  		rprops.AriaLabelledBy = props.AriaLabelledBy
  1514  
  1515  		rprops.ClassName = props.ClassName
  1516  
  1517  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  1518  
  1519  		if props.DataSet != nil {
  1520  			for dk, dv := range props.DataSet {
  1521  				rprops.o.Set("data-"+dk, dv)
  1522  			}
  1523  		}
  1524  		if props.ID != "" {
  1525  			rprops.ID = props.ID
  1526  		}
  1527  		if props.Key != "" {
  1528  			rprops.Key = props.Key
  1529  		}
  1530  		if props.OnChange != nil {
  1531  			rprops.o.Set("onChange", props.OnChange.OnChange)
  1532  		}
  1533  		if props.OnClick != nil {
  1534  			rprops.o.Set("onClick", props.OnClick.OnClick)
  1535  		}
  1536  		if props.Ref != nil {
  1537  			rprops.o.Set("ref", props.Ref.Ref)
  1538  		}
  1539  		rprops.Role = props.Role
  1540  
  1541  		// TODO: until we have a resolution on
  1542  		// https://github.com/gopherjs/gopherjs/issues/236
  1543  		rprops.Style = props.Style.hack()
  1544  	}
  1545  
  1546  	return &H4Elem{
  1547  		Element: createElement("h4", rprops, children...),
  1548  	}
  1549  }
  1550  
  1551  // H5Elem is the React element definition corresponding to the HTML <h5> element
  1552  type H5Elem struct {
  1553  	Element
  1554  }
  1555  
  1556  func (a *H5Elem) coreReactElement() {}
  1557  
  1558  // H5Props defines the properties for the <h5> element
  1559  type H5Props struct {
  1560  	AriaExpanded            bool
  1561  	AriaHasPopup            bool
  1562  	AriaLabelledBy          string
  1563  	ClassName               string
  1564  	DangerouslySetInnerHTML *DangerousInnerHTML
  1565  	DataSet                 DataSet
  1566  	ID                      string
  1567  	Key                     string
  1568  	OnChange                OnChange
  1569  	OnClick                 OnClick
  1570  	Ref                     Ref
  1571  	Role                    string
  1572  	Style                   *CSS
  1573  }
  1574  
  1575  // H5 creates a new instance of a <h5> element with the provided props and
  1576  // children
  1577  func H5(props *H5Props, children ...Element) *H5Elem {
  1578  	type _H5Props struct {
  1579  		o                       *js.Object
  1580  		AriaExpanded            bool                `js:"aria-expanded"`
  1581  		AriaHasPopup            bool                `js:"aria-haspopup"`
  1582  		AriaLabelledBy          string              `js:"aria-labelledby"`
  1583  		ClassName               string              `js:"className"`
  1584  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  1585  		ID                      string              `js:"id" react:"omitempty"`
  1586  		Key                     string              `js:"key" react:"omitempty"`
  1587  		OnChange                OnChange            `js:"onChange"`
  1588  		OnClick                 OnClick             `js:"onClick"`
  1589  		Ref                     Ref                 `js:"ref"`
  1590  		Role                    string              `js:"role"`
  1591  		Style                   *CSS                `js:"style"`
  1592  	}
  1593  
  1594  	rprops := &_H5Props{
  1595  		o: object.New(),
  1596  	}
  1597  
  1598  	if props != nil {
  1599  		rprops.AriaExpanded = props.AriaExpanded
  1600  
  1601  		rprops.AriaHasPopup = props.AriaHasPopup
  1602  
  1603  		rprops.AriaLabelledBy = props.AriaLabelledBy
  1604  
  1605  		rprops.ClassName = props.ClassName
  1606  
  1607  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  1608  
  1609  		if props.DataSet != nil {
  1610  			for dk, dv := range props.DataSet {
  1611  				rprops.o.Set("data-"+dk, dv)
  1612  			}
  1613  		}
  1614  		if props.ID != "" {
  1615  			rprops.ID = props.ID
  1616  		}
  1617  		if props.Key != "" {
  1618  			rprops.Key = props.Key
  1619  		}
  1620  		if props.OnChange != nil {
  1621  			rprops.o.Set("onChange", props.OnChange.OnChange)
  1622  		}
  1623  		if props.OnClick != nil {
  1624  			rprops.o.Set("onClick", props.OnClick.OnClick)
  1625  		}
  1626  		if props.Ref != nil {
  1627  			rprops.o.Set("ref", props.Ref.Ref)
  1628  		}
  1629  		rprops.Role = props.Role
  1630  
  1631  		// TODO: until we have a resolution on
  1632  		// https://github.com/gopherjs/gopherjs/issues/236
  1633  		rprops.Style = props.Style.hack()
  1634  	}
  1635  
  1636  	return &H5Elem{
  1637  		Element: createElement("h5", rprops, children...),
  1638  	}
  1639  }
  1640  
  1641  // H6Elem is the React element definition corresponding to the HTML <h6> element
  1642  type H6Elem struct {
  1643  	Element
  1644  }
  1645  
  1646  func (a *H6Elem) coreReactElement() {}
  1647  
  1648  // H6Props defines the properties for the <h6> element
  1649  type H6Props struct {
  1650  	AriaExpanded            bool
  1651  	AriaHasPopup            bool
  1652  	AriaLabelledBy          string
  1653  	ClassName               string
  1654  	DangerouslySetInnerHTML *DangerousInnerHTML
  1655  	DataSet                 DataSet
  1656  	ID                      string
  1657  	Key                     string
  1658  	OnChange                OnChange
  1659  	OnClick                 OnClick
  1660  	Ref                     Ref
  1661  	Role                    string
  1662  	Style                   *CSS
  1663  }
  1664  
  1665  // H6 creates a new instance of a <h6> element with the provided props and
  1666  // children
  1667  func H6(props *H6Props, children ...Element) *H6Elem {
  1668  	type _H6Props struct {
  1669  		o                       *js.Object
  1670  		AriaExpanded            bool                `js:"aria-expanded"`
  1671  		AriaHasPopup            bool                `js:"aria-haspopup"`
  1672  		AriaLabelledBy          string              `js:"aria-labelledby"`
  1673  		ClassName               string              `js:"className"`
  1674  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  1675  		ID                      string              `js:"id" react:"omitempty"`
  1676  		Key                     string              `js:"key" react:"omitempty"`
  1677  		OnChange                OnChange            `js:"onChange"`
  1678  		OnClick                 OnClick             `js:"onClick"`
  1679  		Ref                     Ref                 `js:"ref"`
  1680  		Role                    string              `js:"role"`
  1681  		Style                   *CSS                `js:"style"`
  1682  	}
  1683  
  1684  	rprops := &_H6Props{
  1685  		o: object.New(),
  1686  	}
  1687  
  1688  	if props != nil {
  1689  		rprops.AriaExpanded = props.AriaExpanded
  1690  
  1691  		rprops.AriaHasPopup = props.AriaHasPopup
  1692  
  1693  		rprops.AriaLabelledBy = props.AriaLabelledBy
  1694  
  1695  		rprops.ClassName = props.ClassName
  1696  
  1697  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  1698  
  1699  		if props.DataSet != nil {
  1700  			for dk, dv := range props.DataSet {
  1701  				rprops.o.Set("data-"+dk, dv)
  1702  			}
  1703  		}
  1704  		if props.ID != "" {
  1705  			rprops.ID = props.ID
  1706  		}
  1707  		if props.Key != "" {
  1708  			rprops.Key = props.Key
  1709  		}
  1710  		if props.OnChange != nil {
  1711  			rprops.o.Set("onChange", props.OnChange.OnChange)
  1712  		}
  1713  		if props.OnClick != nil {
  1714  			rprops.o.Set("onClick", props.OnClick.OnClick)
  1715  		}
  1716  		if props.Ref != nil {
  1717  			rprops.o.Set("ref", props.Ref.Ref)
  1718  		}
  1719  		rprops.Role = props.Role
  1720  
  1721  		// TODO: until we have a resolution on
  1722  		// https://github.com/gopherjs/gopherjs/issues/236
  1723  		rprops.Style = props.Style.hack()
  1724  	}
  1725  
  1726  	return &H6Elem{
  1727  		Element: createElement("h6", rprops, children...),
  1728  	}
  1729  }
  1730  
  1731  // HeaderElem is the React element definition corresponding to the HTML <header> element
  1732  type HeaderElem struct {
  1733  	Element
  1734  }
  1735  
  1736  func (a *HeaderElem) coreReactElement() {}
  1737  
  1738  // HeaderProps defines the properties for the <header> element
  1739  type HeaderProps struct {
  1740  	AriaExpanded            bool
  1741  	AriaHasPopup            bool
  1742  	AriaLabelledBy          string
  1743  	ClassName               string
  1744  	DangerouslySetInnerHTML *DangerousInnerHTML
  1745  	DataSet                 DataSet
  1746  	ID                      string
  1747  	Key                     string
  1748  	OnChange                OnChange
  1749  	OnClick                 OnClick
  1750  	Ref                     Ref
  1751  	Role                    string
  1752  	Style                   *CSS
  1753  }
  1754  
  1755  // Header creates a new instance of a <header> element with the provided props and
  1756  // children
  1757  func Header(props *HeaderProps, children ...Element) *HeaderElem {
  1758  	type _HeaderProps struct {
  1759  		o                       *js.Object
  1760  		AriaExpanded            bool                `js:"aria-expanded"`
  1761  		AriaHasPopup            bool                `js:"aria-haspopup"`
  1762  		AriaLabelledBy          string              `js:"aria-labelledby"`
  1763  		ClassName               string              `js:"className"`
  1764  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  1765  		ID                      string              `js:"id" react:"omitempty"`
  1766  		Key                     string              `js:"key" react:"omitempty"`
  1767  		OnChange                OnChange            `js:"onChange"`
  1768  		OnClick                 OnClick             `js:"onClick"`
  1769  		Ref                     Ref                 `js:"ref"`
  1770  		Role                    string              `js:"role"`
  1771  		Style                   *CSS                `js:"style"`
  1772  	}
  1773  
  1774  	rprops := &_HeaderProps{
  1775  		o: object.New(),
  1776  	}
  1777  
  1778  	if props != nil {
  1779  		rprops.AriaExpanded = props.AriaExpanded
  1780  
  1781  		rprops.AriaHasPopup = props.AriaHasPopup
  1782  
  1783  		rprops.AriaLabelledBy = props.AriaLabelledBy
  1784  
  1785  		rprops.ClassName = props.ClassName
  1786  
  1787  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  1788  
  1789  		if props.DataSet != nil {
  1790  			for dk, dv := range props.DataSet {
  1791  				rprops.o.Set("data-"+dk, dv)
  1792  			}
  1793  		}
  1794  		if props.ID != "" {
  1795  			rprops.ID = props.ID
  1796  		}
  1797  		if props.Key != "" {
  1798  			rprops.Key = props.Key
  1799  		}
  1800  		if props.OnChange != nil {
  1801  			rprops.o.Set("onChange", props.OnChange.OnChange)
  1802  		}
  1803  		if props.OnClick != nil {
  1804  			rprops.o.Set("onClick", props.OnClick.OnClick)
  1805  		}
  1806  		if props.Ref != nil {
  1807  			rprops.o.Set("ref", props.Ref.Ref)
  1808  		}
  1809  		rprops.Role = props.Role
  1810  
  1811  		// TODO: until we have a resolution on
  1812  		// https://github.com/gopherjs/gopherjs/issues/236
  1813  		rprops.Style = props.Style.hack()
  1814  	}
  1815  
  1816  	return &HeaderElem{
  1817  		Element: createElement("header", rprops, children...),
  1818  	}
  1819  }
  1820  
  1821  // HrElem is the React element definition corresponding to the HTML <hr> element
  1822  type HrElem struct {
  1823  	Element
  1824  }
  1825  
  1826  func (a *HrElem) coreReactElement() {}
  1827  
  1828  // HrProps defines the properties for the <hr> element
  1829  type HrProps struct {
  1830  	AriaExpanded            bool
  1831  	AriaHasPopup            bool
  1832  	AriaLabelledBy          string
  1833  	ClassName               string
  1834  	DangerouslySetInnerHTML *DangerousInnerHTML
  1835  	DataSet                 DataSet
  1836  	ID                      string
  1837  	Key                     string
  1838  	OnChange                OnChange
  1839  	OnClick                 OnClick
  1840  	Ref                     Ref
  1841  	Role                    string
  1842  	Style                   *CSS
  1843  }
  1844  
  1845  // Hr creates a new instance of a <hr> element with the provided props and
  1846  // children
  1847  func Hr(props *HrProps) *HrElem {
  1848  	type _HrProps struct {
  1849  		o                       *js.Object
  1850  		AriaExpanded            bool                `js:"aria-expanded"`
  1851  		AriaHasPopup            bool                `js:"aria-haspopup"`
  1852  		AriaLabelledBy          string              `js:"aria-labelledby"`
  1853  		ClassName               string              `js:"className"`
  1854  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  1855  		ID                      string              `js:"id" react:"omitempty"`
  1856  		Key                     string              `js:"key" react:"omitempty"`
  1857  		OnChange                OnChange            `js:"onChange"`
  1858  		OnClick                 OnClick             `js:"onClick"`
  1859  		Ref                     Ref                 `js:"ref"`
  1860  		Role                    string              `js:"role"`
  1861  		Style                   *CSS                `js:"style"`
  1862  	}
  1863  
  1864  	rprops := &_HrProps{
  1865  		o: object.New(),
  1866  	}
  1867  
  1868  	if props != nil {
  1869  		rprops.AriaExpanded = props.AriaExpanded
  1870  
  1871  		rprops.AriaHasPopup = props.AriaHasPopup
  1872  
  1873  		rprops.AriaLabelledBy = props.AriaLabelledBy
  1874  
  1875  		rprops.ClassName = props.ClassName
  1876  
  1877  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  1878  
  1879  		if props.DataSet != nil {
  1880  			for dk, dv := range props.DataSet {
  1881  				rprops.o.Set("data-"+dk, dv)
  1882  			}
  1883  		}
  1884  		if props.ID != "" {
  1885  			rprops.ID = props.ID
  1886  		}
  1887  		if props.Key != "" {
  1888  			rprops.Key = props.Key
  1889  		}
  1890  		if props.OnChange != nil {
  1891  			rprops.o.Set("onChange", props.OnChange.OnChange)
  1892  		}
  1893  		if props.OnClick != nil {
  1894  			rprops.o.Set("onClick", props.OnClick.OnClick)
  1895  		}
  1896  		if props.Ref != nil {
  1897  			rprops.o.Set("ref", props.Ref.Ref)
  1898  		}
  1899  		rprops.Role = props.Role
  1900  
  1901  		// TODO: until we have a resolution on
  1902  		// https://github.com/gopherjs/gopherjs/issues/236
  1903  		rprops.Style = props.Style.hack()
  1904  	}
  1905  
  1906  	return &HrElem{
  1907  		Element: createElement("hr", rprops),
  1908  	}
  1909  }
  1910  
  1911  // IElem is the React element definition corresponding to the HTML <i> element
  1912  type IElem struct {
  1913  	Element
  1914  }
  1915  
  1916  func (a *IElem) coreReactElement() {}
  1917  
  1918  // IProps defines the properties for the <i> element
  1919  type IProps struct {
  1920  	AriaExpanded            bool
  1921  	AriaHasPopup            bool
  1922  	AriaLabelledBy          string
  1923  	ClassName               string
  1924  	DangerouslySetInnerHTML *DangerousInnerHTML
  1925  	DataSet                 DataSet
  1926  	ID                      string
  1927  	Key                     string
  1928  	OnChange                OnChange
  1929  	OnClick                 OnClick
  1930  	Ref                     Ref
  1931  	Role                    string
  1932  	Style                   *CSS
  1933  }
  1934  
  1935  // I creates a new instance of a <i> element with the provided props and
  1936  // children
  1937  func I(props *IProps, children ...Element) *IElem {
  1938  	type _IProps struct {
  1939  		o                       *js.Object
  1940  		AriaExpanded            bool                `js:"aria-expanded"`
  1941  		AriaHasPopup            bool                `js:"aria-haspopup"`
  1942  		AriaLabelledBy          string              `js:"aria-labelledby"`
  1943  		ClassName               string              `js:"className"`
  1944  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  1945  		ID                      string              `js:"id" react:"omitempty"`
  1946  		Key                     string              `js:"key" react:"omitempty"`
  1947  		OnChange                OnChange            `js:"onChange"`
  1948  		OnClick                 OnClick             `js:"onClick"`
  1949  		Ref                     Ref                 `js:"ref"`
  1950  		Role                    string              `js:"role"`
  1951  		Style                   *CSS                `js:"style"`
  1952  	}
  1953  
  1954  	rprops := &_IProps{
  1955  		o: object.New(),
  1956  	}
  1957  
  1958  	if props != nil {
  1959  		rprops.AriaExpanded = props.AriaExpanded
  1960  
  1961  		rprops.AriaHasPopup = props.AriaHasPopup
  1962  
  1963  		rprops.AriaLabelledBy = props.AriaLabelledBy
  1964  
  1965  		rprops.ClassName = props.ClassName
  1966  
  1967  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  1968  
  1969  		if props.DataSet != nil {
  1970  			for dk, dv := range props.DataSet {
  1971  				rprops.o.Set("data-"+dk, dv)
  1972  			}
  1973  		}
  1974  		if props.ID != "" {
  1975  			rprops.ID = props.ID
  1976  		}
  1977  		if props.Key != "" {
  1978  			rprops.Key = props.Key
  1979  		}
  1980  		if props.OnChange != nil {
  1981  			rprops.o.Set("onChange", props.OnChange.OnChange)
  1982  		}
  1983  		if props.OnClick != nil {
  1984  			rprops.o.Set("onClick", props.OnClick.OnClick)
  1985  		}
  1986  		if props.Ref != nil {
  1987  			rprops.o.Set("ref", props.Ref.Ref)
  1988  		}
  1989  		rprops.Role = props.Role
  1990  
  1991  		// TODO: until we have a resolution on
  1992  		// https://github.com/gopherjs/gopherjs/issues/236
  1993  		rprops.Style = props.Style.hack()
  1994  	}
  1995  
  1996  	return &IElem{
  1997  		Element: createElement("i", rprops, children...),
  1998  	}
  1999  }
  2000  
  2001  // IFrameElem is the React element definition corresponding to the HTML <iframe> element
  2002  type IFrameElem struct {
  2003  	Element
  2004  }
  2005  
  2006  func (a *IFrameElem) coreReactElement() {}
  2007  
  2008  // IFrameProps defines the properties for the <iframe> element
  2009  type IFrameProps struct {
  2010  	AriaExpanded            bool
  2011  	AriaHasPopup            bool
  2012  	AriaLabelledBy          string
  2013  	ClassName               string
  2014  	DangerouslySetInnerHTML *DangerousInnerHTML
  2015  	DataSet                 DataSet
  2016  	ID                      string
  2017  	Key                     string
  2018  	OnChange                OnChange
  2019  	OnClick                 OnClick
  2020  	Ref                     Ref
  2021  	Role                    string
  2022  	SrcDoc                  string
  2023  	Style                   *CSS
  2024  }
  2025  
  2026  // IFrame creates a new instance of a <iframe> element with the provided props and
  2027  // children
  2028  func IFrame(props *IFrameProps, children ...Element) *IFrameElem {
  2029  	type _IFrameProps struct {
  2030  		o                       *js.Object
  2031  		AriaExpanded            bool                `js:"aria-expanded"`
  2032  		AriaHasPopup            bool                `js:"aria-haspopup"`
  2033  		AriaLabelledBy          string              `js:"aria-labelledby"`
  2034  		ClassName               string              `js:"className"`
  2035  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  2036  		ID                      string              `js:"id" react:"omitempty"`
  2037  		Key                     string              `js:"key" react:"omitempty"`
  2038  		OnChange                OnChange            `js:"onChange"`
  2039  		OnClick                 OnClick             `js:"onClick"`
  2040  		Ref                     Ref                 `js:"ref"`
  2041  		Role                    string              `js:"role"`
  2042  		SrcDoc                  string              `js:"srcDoc"`
  2043  		Style                   *CSS                `js:"style"`
  2044  	}
  2045  
  2046  	rprops := &_IFrameProps{
  2047  		o: object.New(),
  2048  	}
  2049  
  2050  	if props != nil {
  2051  		rprops.AriaExpanded = props.AriaExpanded
  2052  
  2053  		rprops.AriaHasPopup = props.AriaHasPopup
  2054  
  2055  		rprops.AriaLabelledBy = props.AriaLabelledBy
  2056  
  2057  		rprops.ClassName = props.ClassName
  2058  
  2059  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  2060  
  2061  		if props.DataSet != nil {
  2062  			for dk, dv := range props.DataSet {
  2063  				rprops.o.Set("data-"+dk, dv)
  2064  			}
  2065  		}
  2066  		if props.ID != "" {
  2067  			rprops.ID = props.ID
  2068  		}
  2069  		if props.Key != "" {
  2070  			rprops.Key = props.Key
  2071  		}
  2072  		if props.OnChange != nil {
  2073  			rprops.o.Set("onChange", props.OnChange.OnChange)
  2074  		}
  2075  		if props.OnClick != nil {
  2076  			rprops.o.Set("onClick", props.OnClick.OnClick)
  2077  		}
  2078  		if props.Ref != nil {
  2079  			rprops.o.Set("ref", props.Ref.Ref)
  2080  		}
  2081  		rprops.Role = props.Role
  2082  
  2083  		rprops.SrcDoc = props.SrcDoc
  2084  
  2085  		// TODO: until we have a resolution on
  2086  		// https://github.com/gopherjs/gopherjs/issues/236
  2087  		rprops.Style = props.Style.hack()
  2088  	}
  2089  
  2090  	return &IFrameElem{
  2091  		Element: createElement("iframe", rprops, children...),
  2092  	}
  2093  }
  2094  
  2095  // ImgElem is the React element definition corresponding to the HTML <img> element
  2096  type ImgElem struct {
  2097  	Element
  2098  }
  2099  
  2100  func (a *ImgElem) coreReactElement() {}
  2101  
  2102  // ImgProps defines the properties for the <img> element
  2103  type ImgProps struct {
  2104  	Alt                     string
  2105  	AriaExpanded            bool
  2106  	AriaHasPopup            bool
  2107  	AriaLabelledBy          string
  2108  	ClassName               string
  2109  	DangerouslySetInnerHTML *DangerousInnerHTML
  2110  	DataSet                 DataSet
  2111  	ID                      string
  2112  	Key                     string
  2113  	OnChange                OnChange
  2114  	OnClick                 OnClick
  2115  	Ref                     Ref
  2116  	Role                    string
  2117  	Src                     string
  2118  	Style                   *CSS
  2119  }
  2120  
  2121  // Img creates a new instance of a <img> element with the provided props and
  2122  // children
  2123  func Img(props *ImgProps, children ...Element) *ImgElem {
  2124  	type _ImgProps struct {
  2125  		o                       *js.Object
  2126  		Alt                     string              `js:"alt"`
  2127  		AriaExpanded            bool                `js:"aria-expanded"`
  2128  		AriaHasPopup            bool                `js:"aria-haspopup"`
  2129  		AriaLabelledBy          string              `js:"aria-labelledby"`
  2130  		ClassName               string              `js:"className"`
  2131  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  2132  		ID                      string              `js:"id" react:"omitempty"`
  2133  		Key                     string              `js:"key" react:"omitempty"`
  2134  		OnChange                OnChange            `js:"onChange"`
  2135  		OnClick                 OnClick             `js:"onClick"`
  2136  		Ref                     Ref                 `js:"ref"`
  2137  		Role                    string              `js:"role"`
  2138  		Src                     string              `js:"src"`
  2139  		Style                   *CSS                `js:"style"`
  2140  	}
  2141  
  2142  	rprops := &_ImgProps{
  2143  		o: object.New(),
  2144  	}
  2145  
  2146  	if props != nil {
  2147  		rprops.Alt = props.Alt
  2148  
  2149  		rprops.AriaExpanded = props.AriaExpanded
  2150  
  2151  		rprops.AriaHasPopup = props.AriaHasPopup
  2152  
  2153  		rprops.AriaLabelledBy = props.AriaLabelledBy
  2154  
  2155  		rprops.ClassName = props.ClassName
  2156  
  2157  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  2158  
  2159  		if props.DataSet != nil {
  2160  			for dk, dv := range props.DataSet {
  2161  				rprops.o.Set("data-"+dk, dv)
  2162  			}
  2163  		}
  2164  		if props.ID != "" {
  2165  			rprops.ID = props.ID
  2166  		}
  2167  		if props.Key != "" {
  2168  			rprops.Key = props.Key
  2169  		}
  2170  		if props.OnChange != nil {
  2171  			rprops.o.Set("onChange", props.OnChange.OnChange)
  2172  		}
  2173  		if props.OnClick != nil {
  2174  			rprops.o.Set("onClick", props.OnClick.OnClick)
  2175  		}
  2176  		if props.Ref != nil {
  2177  			rprops.o.Set("ref", props.Ref.Ref)
  2178  		}
  2179  		rprops.Role = props.Role
  2180  
  2181  		rprops.Src = props.Src
  2182  
  2183  		// TODO: until we have a resolution on
  2184  		// https://github.com/gopherjs/gopherjs/issues/236
  2185  		rprops.Style = props.Style.hack()
  2186  	}
  2187  
  2188  	return &ImgElem{
  2189  		Element: createElement("img", rprops, children...),
  2190  	}
  2191  }
  2192  
  2193  // InputElem is the React element definition corresponding to the HTML <input> element
  2194  type InputElem struct {
  2195  	Element
  2196  }
  2197  
  2198  func (a *InputElem) coreReactElement() {}
  2199  
  2200  // InputProps defines the properties for the <input> element
  2201  type InputProps struct {
  2202  	AriaExpanded            bool
  2203  	AriaHasPopup            bool
  2204  	AriaLabelledBy          string
  2205  	ClassName               string
  2206  	DangerouslySetInnerHTML *DangerousInnerHTML
  2207  	DataSet                 DataSet
  2208  	ID                      string
  2209  	Key                     string
  2210  	OnChange                OnChange
  2211  	OnClick                 OnClick
  2212  	Placeholder             string
  2213  	Ref                     Ref
  2214  	Role                    string
  2215  	Style                   *CSS
  2216  	Type                    string
  2217  	Value                   string
  2218  }
  2219  
  2220  // Input creates a new instance of a <input> element with the provided props and
  2221  // children
  2222  func Input(props *InputProps, children ...Element) *InputElem {
  2223  	type _InputProps struct {
  2224  		o                       *js.Object
  2225  		AriaExpanded            bool                `js:"aria-expanded"`
  2226  		AriaHasPopup            bool                `js:"aria-haspopup"`
  2227  		AriaLabelledBy          string              `js:"aria-labelledby"`
  2228  		ClassName               string              `js:"className"`
  2229  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  2230  		ID                      string              `js:"id" react:"omitempty"`
  2231  		Key                     string              `js:"key" react:"omitempty"`
  2232  		OnChange                OnChange            `js:"onChange"`
  2233  		OnClick                 OnClick             `js:"onClick"`
  2234  		Placeholder             string              `js:"placeholder"`
  2235  		Ref                     Ref                 `js:"ref"`
  2236  		Role                    string              `js:"role"`
  2237  		Style                   *CSS                `js:"style"`
  2238  		Type                    string              `js:"type"`
  2239  		Value                   string              `js:"value"`
  2240  	}
  2241  
  2242  	rprops := &_InputProps{
  2243  		o: object.New(),
  2244  	}
  2245  
  2246  	if props != nil {
  2247  		rprops.AriaExpanded = props.AriaExpanded
  2248  
  2249  		rprops.AriaHasPopup = props.AriaHasPopup
  2250  
  2251  		rprops.AriaLabelledBy = props.AriaLabelledBy
  2252  
  2253  		rprops.ClassName = props.ClassName
  2254  
  2255  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  2256  
  2257  		if props.DataSet != nil {
  2258  			for dk, dv := range props.DataSet {
  2259  				rprops.o.Set("data-"+dk, dv)
  2260  			}
  2261  		}
  2262  		if props.ID != "" {
  2263  			rprops.ID = props.ID
  2264  		}
  2265  		if props.Key != "" {
  2266  			rprops.Key = props.Key
  2267  		}
  2268  		if props.OnChange != nil {
  2269  			rprops.o.Set("onChange", props.OnChange.OnChange)
  2270  		}
  2271  		if props.OnClick != nil {
  2272  			rprops.o.Set("onClick", props.OnClick.OnClick)
  2273  		}
  2274  		rprops.Placeholder = props.Placeholder
  2275  
  2276  		if props.Ref != nil {
  2277  			rprops.o.Set("ref", props.Ref.Ref)
  2278  		}
  2279  		rprops.Role = props.Role
  2280  
  2281  		// TODO: until we have a resolution on
  2282  		// https://github.com/gopherjs/gopherjs/issues/236
  2283  		rprops.Style = props.Style.hack()
  2284  		rprops.Type = props.Type
  2285  
  2286  		rprops.Value = props.Value
  2287  	}
  2288  
  2289  	return &InputElem{
  2290  		Element: createElement("input", rprops, children...),
  2291  	}
  2292  }
  2293  
  2294  // LabelElem is the React element definition corresponding to the HTML <label> element
  2295  type LabelElem struct {
  2296  	Element
  2297  }
  2298  
  2299  func (a *LabelElem) coreReactElement() {}
  2300  
  2301  // LabelProps defines the properties for the <label> element
  2302  type LabelProps struct {
  2303  	AriaExpanded            bool
  2304  	AriaHasPopup            bool
  2305  	AriaLabelledBy          string
  2306  	ClassName               string
  2307  	DangerouslySetInnerHTML *DangerousInnerHTML
  2308  	DataSet                 DataSet
  2309  	For                     string
  2310  	ID                      string
  2311  	Key                     string
  2312  	OnChange                OnChange
  2313  	OnClick                 OnClick
  2314  	Ref                     Ref
  2315  	Role                    string
  2316  	Style                   *CSS
  2317  }
  2318  
  2319  // Label creates a new instance of a <label> element with the provided props and
  2320  // children
  2321  func Label(props *LabelProps, children ...Element) *LabelElem {
  2322  	type _LabelProps struct {
  2323  		o                       *js.Object
  2324  		AriaExpanded            bool                `js:"aria-expanded"`
  2325  		AriaHasPopup            bool                `js:"aria-haspopup"`
  2326  		AriaLabelledBy          string              `js:"aria-labelledby"`
  2327  		ClassName               string              `js:"className"`
  2328  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  2329  		For                     string              `js:"htmlFor"`
  2330  		ID                      string              `js:"id" react:"omitempty"`
  2331  		Key                     string              `js:"key" react:"omitempty"`
  2332  		OnChange                OnChange            `js:"onChange"`
  2333  		OnClick                 OnClick             `js:"onClick"`
  2334  		Ref                     Ref                 `js:"ref"`
  2335  		Role                    string              `js:"role"`
  2336  		Style                   *CSS                `js:"style"`
  2337  	}
  2338  
  2339  	rprops := &_LabelProps{
  2340  		o: object.New(),
  2341  	}
  2342  
  2343  	if props != nil {
  2344  		rprops.AriaExpanded = props.AriaExpanded
  2345  
  2346  		rprops.AriaHasPopup = props.AriaHasPopup
  2347  
  2348  		rprops.AriaLabelledBy = props.AriaLabelledBy
  2349  
  2350  		rprops.ClassName = props.ClassName
  2351  
  2352  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  2353  
  2354  		if props.DataSet != nil {
  2355  			for dk, dv := range props.DataSet {
  2356  				rprops.o.Set("data-"+dk, dv)
  2357  			}
  2358  		}
  2359  		rprops.For = props.For
  2360  
  2361  		if props.ID != "" {
  2362  			rprops.ID = props.ID
  2363  		}
  2364  		if props.Key != "" {
  2365  			rprops.Key = props.Key
  2366  		}
  2367  		if props.OnChange != nil {
  2368  			rprops.o.Set("onChange", props.OnChange.OnChange)
  2369  		}
  2370  		if props.OnClick != nil {
  2371  			rprops.o.Set("onClick", props.OnClick.OnClick)
  2372  		}
  2373  		if props.Ref != nil {
  2374  			rprops.o.Set("ref", props.Ref.Ref)
  2375  		}
  2376  		rprops.Role = props.Role
  2377  
  2378  		// TODO: until we have a resolution on
  2379  		// https://github.com/gopherjs/gopherjs/issues/236
  2380  		rprops.Style = props.Style.hack()
  2381  	}
  2382  
  2383  	return &LabelElem{
  2384  		Element: createElement("label", rprops, children...),
  2385  	}
  2386  }
  2387  
  2388  // LiElem is the React element definition corresponding to the HTML <li> element
  2389  type LiElem struct {
  2390  	Element
  2391  }
  2392  
  2393  func (a *LiElem) coreReactElement() {}
  2394  
  2395  func (l *LiElem) RendersLi(*LiElem) {}
  2396  
  2397  // LiProps defines the properties for the <li> element
  2398  type LiProps struct {
  2399  	AriaExpanded            bool
  2400  	AriaHasPopup            bool
  2401  	AriaLabelledBy          string
  2402  	ClassName               string
  2403  	DangerouslySetInnerHTML *DangerousInnerHTML
  2404  	DataSet                 DataSet
  2405  	ID                      string
  2406  	Key                     string
  2407  	OnChange                OnChange
  2408  	OnClick                 OnClick
  2409  	Ref                     Ref
  2410  	Role                    string
  2411  	Style                   *CSS
  2412  }
  2413  
  2414  // Li creates a new instance of a <li> element with the provided props and
  2415  // children
  2416  func Li(props *LiProps, children ...Element) *LiElem {
  2417  	type _LiProps struct {
  2418  		o                       *js.Object
  2419  		AriaExpanded            bool                `js:"aria-expanded"`
  2420  		AriaHasPopup            bool                `js:"aria-haspopup"`
  2421  		AriaLabelledBy          string              `js:"aria-labelledby"`
  2422  		ClassName               string              `js:"className"`
  2423  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  2424  		ID                      string              `js:"id" react:"omitempty"`
  2425  		Key                     string              `js:"key" react:"omitempty"`
  2426  		OnChange                OnChange            `js:"onChange"`
  2427  		OnClick                 OnClick             `js:"onClick"`
  2428  		Ref                     Ref                 `js:"ref"`
  2429  		Role                    string              `js:"role"`
  2430  		Style                   *CSS                `js:"style"`
  2431  	}
  2432  
  2433  	rprops := &_LiProps{
  2434  		o: object.New(),
  2435  	}
  2436  
  2437  	if props != nil {
  2438  		rprops.AriaExpanded = props.AriaExpanded
  2439  
  2440  		rprops.AriaHasPopup = props.AriaHasPopup
  2441  
  2442  		rprops.AriaLabelledBy = props.AriaLabelledBy
  2443  
  2444  		rprops.ClassName = props.ClassName
  2445  
  2446  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  2447  
  2448  		if props.DataSet != nil {
  2449  			for dk, dv := range props.DataSet {
  2450  				rprops.o.Set("data-"+dk, dv)
  2451  			}
  2452  		}
  2453  		if props.ID != "" {
  2454  			rprops.ID = props.ID
  2455  		}
  2456  		if props.Key != "" {
  2457  			rprops.Key = props.Key
  2458  		}
  2459  		if props.OnChange != nil {
  2460  			rprops.o.Set("onChange", props.OnChange.OnChange)
  2461  		}
  2462  		if props.OnClick != nil {
  2463  			rprops.o.Set("onClick", props.OnClick.OnClick)
  2464  		}
  2465  		if props.Ref != nil {
  2466  			rprops.o.Set("ref", props.Ref.Ref)
  2467  		}
  2468  		rprops.Role = props.Role
  2469  
  2470  		// TODO: until we have a resolution on
  2471  		// https://github.com/gopherjs/gopherjs/issues/236
  2472  		rprops.Style = props.Style.hack()
  2473  	}
  2474  
  2475  	return &LiElem{
  2476  		Element: createElement("li", rprops, children...),
  2477  	}
  2478  }
  2479  
  2480  // MainElem is the React element definition corresponding to the HTML <main> element
  2481  type MainElem struct {
  2482  	Element
  2483  }
  2484  
  2485  func (a *MainElem) coreReactElement() {}
  2486  
  2487  // MainProps defines the properties for the <main> element
  2488  type MainProps struct {
  2489  	AriaExpanded            bool
  2490  	AriaHasPopup            bool
  2491  	AriaLabelledBy          string
  2492  	ClassName               string
  2493  	DangerouslySetInnerHTML *DangerousInnerHTML
  2494  	DataSet                 DataSet
  2495  	ID                      string
  2496  	Key                     string
  2497  	OnChange                OnChange
  2498  	OnClick                 OnClick
  2499  	Ref                     Ref
  2500  	Role                    string
  2501  	Style                   *CSS
  2502  }
  2503  
  2504  // Main creates a new instance of a <main> element with the provided props and
  2505  // children
  2506  func Main(props *MainProps, children ...Element) *MainElem {
  2507  	type _MainProps struct {
  2508  		o                       *js.Object
  2509  		AriaExpanded            bool                `js:"aria-expanded"`
  2510  		AriaHasPopup            bool                `js:"aria-haspopup"`
  2511  		AriaLabelledBy          string              `js:"aria-labelledby"`
  2512  		ClassName               string              `js:"className"`
  2513  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  2514  		ID                      string              `js:"id" react:"omitempty"`
  2515  		Key                     string              `js:"key" react:"omitempty"`
  2516  		OnChange                OnChange            `js:"onChange"`
  2517  		OnClick                 OnClick             `js:"onClick"`
  2518  		Ref                     Ref                 `js:"ref"`
  2519  		Role                    string              `js:"role"`
  2520  		Style                   *CSS                `js:"style"`
  2521  	}
  2522  
  2523  	rprops := &_MainProps{
  2524  		o: object.New(),
  2525  	}
  2526  
  2527  	if props != nil {
  2528  		rprops.AriaExpanded = props.AriaExpanded
  2529  
  2530  		rprops.AriaHasPopup = props.AriaHasPopup
  2531  
  2532  		rprops.AriaLabelledBy = props.AriaLabelledBy
  2533  
  2534  		rprops.ClassName = props.ClassName
  2535  
  2536  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  2537  
  2538  		if props.DataSet != nil {
  2539  			for dk, dv := range props.DataSet {
  2540  				rprops.o.Set("data-"+dk, dv)
  2541  			}
  2542  		}
  2543  		if props.ID != "" {
  2544  			rprops.ID = props.ID
  2545  		}
  2546  		if props.Key != "" {
  2547  			rprops.Key = props.Key
  2548  		}
  2549  		if props.OnChange != nil {
  2550  			rprops.o.Set("onChange", props.OnChange.OnChange)
  2551  		}
  2552  		if props.OnClick != nil {
  2553  			rprops.o.Set("onClick", props.OnClick.OnClick)
  2554  		}
  2555  		if props.Ref != nil {
  2556  			rprops.o.Set("ref", props.Ref.Ref)
  2557  		}
  2558  		rprops.Role = props.Role
  2559  
  2560  		// TODO: until we have a resolution on
  2561  		// https://github.com/gopherjs/gopherjs/issues/236
  2562  		rprops.Style = props.Style.hack()
  2563  	}
  2564  
  2565  	return &MainElem{
  2566  		Element: createElement("main", rprops, children...),
  2567  	}
  2568  }
  2569  
  2570  // NavElem is the React element definition corresponding to the HTML <nav> element
  2571  type NavElem struct {
  2572  	Element
  2573  }
  2574  
  2575  func (a *NavElem) coreReactElement() {}
  2576  
  2577  // NavProps defines the properties for the <nav> element
  2578  type NavProps struct {
  2579  	AriaExpanded            bool
  2580  	AriaHasPopup            bool
  2581  	AriaLabelledBy          string
  2582  	ClassName               string
  2583  	DangerouslySetInnerHTML *DangerousInnerHTML
  2584  	DataSet                 DataSet
  2585  	ID                      string
  2586  	Key                     string
  2587  	OnChange                OnChange
  2588  	OnClick                 OnClick
  2589  	Ref                     Ref
  2590  	Role                    string
  2591  	Style                   *CSS
  2592  }
  2593  
  2594  // Nav creates a new instance of a <nav> element with the provided props and
  2595  // children
  2596  func Nav(props *NavProps, children ...Element) *NavElem {
  2597  	type _NavProps struct {
  2598  		o                       *js.Object
  2599  		AriaExpanded            bool                `js:"aria-expanded"`
  2600  		AriaHasPopup            bool                `js:"aria-haspopup"`
  2601  		AriaLabelledBy          string              `js:"aria-labelledby"`
  2602  		ClassName               string              `js:"className"`
  2603  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  2604  		ID                      string              `js:"id" react:"omitempty"`
  2605  		Key                     string              `js:"key" react:"omitempty"`
  2606  		OnChange                OnChange            `js:"onChange"`
  2607  		OnClick                 OnClick             `js:"onClick"`
  2608  		Ref                     Ref                 `js:"ref"`
  2609  		Role                    string              `js:"role"`
  2610  		Style                   *CSS                `js:"style"`
  2611  	}
  2612  
  2613  	rprops := &_NavProps{
  2614  		o: object.New(),
  2615  	}
  2616  
  2617  	if props != nil {
  2618  		rprops.AriaExpanded = props.AriaExpanded
  2619  
  2620  		rprops.AriaHasPopup = props.AriaHasPopup
  2621  
  2622  		rprops.AriaLabelledBy = props.AriaLabelledBy
  2623  
  2624  		rprops.ClassName = props.ClassName
  2625  
  2626  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  2627  
  2628  		if props.DataSet != nil {
  2629  			for dk, dv := range props.DataSet {
  2630  				rprops.o.Set("data-"+dk, dv)
  2631  			}
  2632  		}
  2633  		if props.ID != "" {
  2634  			rprops.ID = props.ID
  2635  		}
  2636  		if props.Key != "" {
  2637  			rprops.Key = props.Key
  2638  		}
  2639  		if props.OnChange != nil {
  2640  			rprops.o.Set("onChange", props.OnChange.OnChange)
  2641  		}
  2642  		if props.OnClick != nil {
  2643  			rprops.o.Set("onClick", props.OnClick.OnClick)
  2644  		}
  2645  		if props.Ref != nil {
  2646  			rprops.o.Set("ref", props.Ref.Ref)
  2647  		}
  2648  		rprops.Role = props.Role
  2649  
  2650  		// TODO: until we have a resolution on
  2651  		// https://github.com/gopherjs/gopherjs/issues/236
  2652  		rprops.Style = props.Style.hack()
  2653  	}
  2654  
  2655  	return &NavElem{
  2656  		Element: createElement("nav", rprops, children...),
  2657  	}
  2658  }
  2659  
  2660  // OptionElem is the React element definition corresponding to the HTML <option> element
  2661  type OptionElem struct {
  2662  	Element
  2663  }
  2664  
  2665  func (a *OptionElem) coreReactElement() {}
  2666  
  2667  // OptionProps defines the properties for the <option> element
  2668  type OptionProps struct {
  2669  	AriaExpanded            bool
  2670  	AriaHasPopup            bool
  2671  	AriaLabelledBy          string
  2672  	ClassName               string
  2673  	DangerouslySetInnerHTML *DangerousInnerHTML
  2674  	DataSet                 DataSet
  2675  	ID                      string
  2676  	Key                     string
  2677  	OnChange                OnChange
  2678  	OnClick                 OnClick
  2679  	Ref                     Ref
  2680  	Role                    string
  2681  	Style                   *CSS
  2682  	Value                   string
  2683  }
  2684  
  2685  // Option creates a new instance of a <option> element with the provided props and
  2686  // children
  2687  func Option(props *OptionProps, children ...Element) *OptionElem {
  2688  	type _OptionProps struct {
  2689  		o                       *js.Object
  2690  		AriaExpanded            bool                `js:"aria-expanded"`
  2691  		AriaHasPopup            bool                `js:"aria-haspopup"`
  2692  		AriaLabelledBy          string              `js:"aria-labelledby"`
  2693  		ClassName               string              `js:"className"`
  2694  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  2695  		ID                      string              `js:"id" react:"omitempty"`
  2696  		Key                     string              `js:"key" react:"omitempty"`
  2697  		OnChange                OnChange            `js:"onChange"`
  2698  		OnClick                 OnClick             `js:"onClick"`
  2699  		Ref                     Ref                 `js:"ref"`
  2700  		Role                    string              `js:"role"`
  2701  		Style                   *CSS                `js:"style"`
  2702  		Value                   string              `js:"value"`
  2703  	}
  2704  
  2705  	rprops := &_OptionProps{
  2706  		o: object.New(),
  2707  	}
  2708  
  2709  	if props != nil {
  2710  		rprops.AriaExpanded = props.AriaExpanded
  2711  
  2712  		rprops.AriaHasPopup = props.AriaHasPopup
  2713  
  2714  		rprops.AriaLabelledBy = props.AriaLabelledBy
  2715  
  2716  		rprops.ClassName = props.ClassName
  2717  
  2718  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  2719  
  2720  		if props.DataSet != nil {
  2721  			for dk, dv := range props.DataSet {
  2722  				rprops.o.Set("data-"+dk, dv)
  2723  			}
  2724  		}
  2725  		if props.ID != "" {
  2726  			rprops.ID = props.ID
  2727  		}
  2728  		if props.Key != "" {
  2729  			rprops.Key = props.Key
  2730  		}
  2731  		if props.OnChange != nil {
  2732  			rprops.o.Set("onChange", props.OnChange.OnChange)
  2733  		}
  2734  		if props.OnClick != nil {
  2735  			rprops.o.Set("onClick", props.OnClick.OnClick)
  2736  		}
  2737  		if props.Ref != nil {
  2738  			rprops.o.Set("ref", props.Ref.Ref)
  2739  		}
  2740  		rprops.Role = props.Role
  2741  
  2742  		// TODO: until we have a resolution on
  2743  		// https://github.com/gopherjs/gopherjs/issues/236
  2744  		rprops.Style = props.Style.hack()
  2745  		rprops.Value = props.Value
  2746  	}
  2747  
  2748  	return &OptionElem{
  2749  		Element: createElement("option", rprops, children...),
  2750  	}
  2751  }
  2752  
  2753  // PElem is the React element definition corresponding to the HTML <p> element
  2754  type PElem struct {
  2755  	Element
  2756  }
  2757  
  2758  func (a *PElem) coreReactElement() {}
  2759  
  2760  // PProps defines the properties for the <p> element
  2761  type PProps struct {
  2762  	AriaExpanded            bool
  2763  	AriaHasPopup            bool
  2764  	AriaLabelledBy          string
  2765  	ClassName               string
  2766  	DangerouslySetInnerHTML *DangerousInnerHTML
  2767  	DataSet                 DataSet
  2768  	ID                      string
  2769  	Key                     string
  2770  	OnChange                OnChange
  2771  	OnClick                 OnClick
  2772  	Ref                     Ref
  2773  	Role                    string
  2774  	Style                   *CSS
  2775  }
  2776  
  2777  // P creates a new instance of a <p> element with the provided props and
  2778  // children
  2779  func P(props *PProps, children ...Element) *PElem {
  2780  	type _PProps struct {
  2781  		o                       *js.Object
  2782  		AriaExpanded            bool                `js:"aria-expanded"`
  2783  		AriaHasPopup            bool                `js:"aria-haspopup"`
  2784  		AriaLabelledBy          string              `js:"aria-labelledby"`
  2785  		ClassName               string              `js:"className"`
  2786  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  2787  		ID                      string              `js:"id" react:"omitempty"`
  2788  		Key                     string              `js:"key" react:"omitempty"`
  2789  		OnChange                OnChange            `js:"onChange"`
  2790  		OnClick                 OnClick             `js:"onClick"`
  2791  		Ref                     Ref                 `js:"ref"`
  2792  		Role                    string              `js:"role"`
  2793  		Style                   *CSS                `js:"style"`
  2794  	}
  2795  
  2796  	rprops := &_PProps{
  2797  		o: object.New(),
  2798  	}
  2799  
  2800  	if props != nil {
  2801  		rprops.AriaExpanded = props.AriaExpanded
  2802  
  2803  		rprops.AriaHasPopup = props.AriaHasPopup
  2804  
  2805  		rprops.AriaLabelledBy = props.AriaLabelledBy
  2806  
  2807  		rprops.ClassName = props.ClassName
  2808  
  2809  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  2810  
  2811  		if props.DataSet != nil {
  2812  			for dk, dv := range props.DataSet {
  2813  				rprops.o.Set("data-"+dk, dv)
  2814  			}
  2815  		}
  2816  		if props.ID != "" {
  2817  			rprops.ID = props.ID
  2818  		}
  2819  		if props.Key != "" {
  2820  			rprops.Key = props.Key
  2821  		}
  2822  		if props.OnChange != nil {
  2823  			rprops.o.Set("onChange", props.OnChange.OnChange)
  2824  		}
  2825  		if props.OnClick != nil {
  2826  			rprops.o.Set("onClick", props.OnClick.OnClick)
  2827  		}
  2828  		if props.Ref != nil {
  2829  			rprops.o.Set("ref", props.Ref.Ref)
  2830  		}
  2831  		rprops.Role = props.Role
  2832  
  2833  		// TODO: until we have a resolution on
  2834  		// https://github.com/gopherjs/gopherjs/issues/236
  2835  		rprops.Style = props.Style.hack()
  2836  	}
  2837  
  2838  	return &PElem{
  2839  		Element: createElement("p", rprops, children...),
  2840  	}
  2841  }
  2842  
  2843  // PreElem is the React element definition corresponding to the HTML <pre> element
  2844  type PreElem struct {
  2845  	Element
  2846  }
  2847  
  2848  func (a *PreElem) coreReactElement() {}
  2849  
  2850  // PreProps defines the properties for the <pre> element
  2851  type PreProps struct {
  2852  	AriaExpanded            bool
  2853  	AriaHasPopup            bool
  2854  	AriaLabelledBy          string
  2855  	ClassName               string
  2856  	DangerouslySetInnerHTML *DangerousInnerHTML
  2857  	DataSet                 DataSet
  2858  	ID                      string
  2859  	Key                     string
  2860  	OnChange                OnChange
  2861  	OnClick                 OnClick
  2862  	Ref                     Ref
  2863  	Role                    string
  2864  	Style                   *CSS
  2865  }
  2866  
  2867  // Pre creates a new instance of a <pre> element with the provided props and
  2868  // children
  2869  func Pre(props *PreProps, children ...Element) *PreElem {
  2870  	type _PreProps struct {
  2871  		o                       *js.Object
  2872  		AriaExpanded            bool                `js:"aria-expanded"`
  2873  		AriaHasPopup            bool                `js:"aria-haspopup"`
  2874  		AriaLabelledBy          string              `js:"aria-labelledby"`
  2875  		ClassName               string              `js:"className"`
  2876  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  2877  		ID                      string              `js:"id" react:"omitempty"`
  2878  		Key                     string              `js:"key" react:"omitempty"`
  2879  		OnChange                OnChange            `js:"onChange"`
  2880  		OnClick                 OnClick             `js:"onClick"`
  2881  		Ref                     Ref                 `js:"ref"`
  2882  		Role                    string              `js:"role"`
  2883  		Style                   *CSS                `js:"style"`
  2884  	}
  2885  
  2886  	rprops := &_PreProps{
  2887  		o: object.New(),
  2888  	}
  2889  
  2890  	if props != nil {
  2891  		rprops.AriaExpanded = props.AriaExpanded
  2892  
  2893  		rprops.AriaHasPopup = props.AriaHasPopup
  2894  
  2895  		rprops.AriaLabelledBy = props.AriaLabelledBy
  2896  
  2897  		rprops.ClassName = props.ClassName
  2898  
  2899  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  2900  
  2901  		if props.DataSet != nil {
  2902  			for dk, dv := range props.DataSet {
  2903  				rprops.o.Set("data-"+dk, dv)
  2904  			}
  2905  		}
  2906  		if props.ID != "" {
  2907  			rprops.ID = props.ID
  2908  		}
  2909  		if props.Key != "" {
  2910  			rprops.Key = props.Key
  2911  		}
  2912  		if props.OnChange != nil {
  2913  			rprops.o.Set("onChange", props.OnChange.OnChange)
  2914  		}
  2915  		if props.OnClick != nil {
  2916  			rprops.o.Set("onClick", props.OnClick.OnClick)
  2917  		}
  2918  		if props.Ref != nil {
  2919  			rprops.o.Set("ref", props.Ref.Ref)
  2920  		}
  2921  		rprops.Role = props.Role
  2922  
  2923  		// TODO: until we have a resolution on
  2924  		// https://github.com/gopherjs/gopherjs/issues/236
  2925  		rprops.Style = props.Style.hack()
  2926  	}
  2927  
  2928  	return &PreElem{
  2929  		Element: createElement("pre", rprops, children...),
  2930  	}
  2931  }
  2932  
  2933  // SelectElem is the React element definition corresponding to the HTML <select> element
  2934  type SelectElem struct {
  2935  	Element
  2936  }
  2937  
  2938  func (a *SelectElem) coreReactElement() {}
  2939  
  2940  // SelectProps defines the properties for the <select> element
  2941  type SelectProps struct {
  2942  	AriaExpanded            bool
  2943  	AriaHasPopup            bool
  2944  	AriaLabelledBy          string
  2945  	ClassName               string
  2946  	DangerouslySetInnerHTML *DangerousInnerHTML
  2947  	DataSet                 DataSet
  2948  	ID                      string
  2949  	Key                     string
  2950  	OnChange                OnChange
  2951  	OnClick                 OnClick
  2952  	Ref                     Ref
  2953  	Role                    string
  2954  	Style                   *CSS
  2955  	Value                   string
  2956  }
  2957  
  2958  // Select creates a new instance of a <select> element with the provided props and
  2959  // children
  2960  func Select(props *SelectProps, children ...*OptionElem) *SelectElem {
  2961  	type _SelectProps struct {
  2962  		o                       *js.Object
  2963  		AriaExpanded            bool                `js:"aria-expanded"`
  2964  		AriaHasPopup            bool                `js:"aria-haspopup"`
  2965  		AriaLabelledBy          string              `js:"aria-labelledby"`
  2966  		ClassName               string              `js:"className"`
  2967  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  2968  		ID                      string              `js:"id" react:"omitempty"`
  2969  		Key                     string              `js:"key" react:"omitempty"`
  2970  		OnChange                OnChange            `js:"onChange"`
  2971  		OnClick                 OnClick             `js:"onClick"`
  2972  		Ref                     Ref                 `js:"ref"`
  2973  		Role                    string              `js:"role"`
  2974  		Style                   *CSS                `js:"style"`
  2975  		Value                   string              `js:"value"`
  2976  	}
  2977  
  2978  	var elems []Element
  2979  	for _, v := range children {
  2980  		elems = append(elems, v)
  2981  	}
  2982  
  2983  	rprops := &_SelectProps{
  2984  		o: object.New(),
  2985  	}
  2986  
  2987  	if props != nil {
  2988  		rprops.AriaExpanded = props.AriaExpanded
  2989  
  2990  		rprops.AriaHasPopup = props.AriaHasPopup
  2991  
  2992  		rprops.AriaLabelledBy = props.AriaLabelledBy
  2993  
  2994  		rprops.ClassName = props.ClassName
  2995  
  2996  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  2997  
  2998  		if props.DataSet != nil {
  2999  			for dk, dv := range props.DataSet {
  3000  				rprops.o.Set("data-"+dk, dv)
  3001  			}
  3002  		}
  3003  		if props.ID != "" {
  3004  			rprops.ID = props.ID
  3005  		}
  3006  		if props.Key != "" {
  3007  			rprops.Key = props.Key
  3008  		}
  3009  		if props.OnChange != nil {
  3010  			rprops.o.Set("onChange", props.OnChange.OnChange)
  3011  		}
  3012  		if props.OnClick != nil {
  3013  			rprops.o.Set("onClick", props.OnClick.OnClick)
  3014  		}
  3015  		if props.Ref != nil {
  3016  			rprops.o.Set("ref", props.Ref.Ref)
  3017  		}
  3018  		rprops.Role = props.Role
  3019  
  3020  		// TODO: until we have a resolution on
  3021  		// https://github.com/gopherjs/gopherjs/issues/236
  3022  		rprops.Style = props.Style.hack()
  3023  		rprops.Value = props.Value
  3024  	}
  3025  
  3026  	return &SelectElem{
  3027  		Element: createElement("select", rprops, elems...),
  3028  	}
  3029  }
  3030  
  3031  // SpanElem is the React element definition corresponding to the HTML <span> element
  3032  type SpanElem struct {
  3033  	Element
  3034  }
  3035  
  3036  func (a *SpanElem) coreReactElement() {}
  3037  
  3038  // SpanProps defines the properties for the <span> element
  3039  type SpanProps struct {
  3040  	AriaExpanded            bool
  3041  	AriaHasPopup            bool
  3042  	AriaLabelledBy          string
  3043  	ClassName               string
  3044  	DangerouslySetInnerHTML *DangerousInnerHTML
  3045  	DataSet                 DataSet
  3046  	ID                      string
  3047  	Key                     string
  3048  	OnChange                OnChange
  3049  	OnClick                 OnClick
  3050  	Ref                     Ref
  3051  	Role                    string
  3052  	Style                   *CSS
  3053  }
  3054  
  3055  // Span creates a new instance of a <span> element with the provided props and
  3056  // children
  3057  func Span(props *SpanProps, children ...Element) *SpanElem {
  3058  	type _SpanProps struct {
  3059  		o                       *js.Object
  3060  		AriaExpanded            bool                `js:"aria-expanded"`
  3061  		AriaHasPopup            bool                `js:"aria-haspopup"`
  3062  		AriaLabelledBy          string              `js:"aria-labelledby"`
  3063  		ClassName               string              `js:"className"`
  3064  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  3065  		ID                      string              `js:"id" react:"omitempty"`
  3066  		Key                     string              `js:"key" react:"omitempty"`
  3067  		OnChange                OnChange            `js:"onChange"`
  3068  		OnClick                 OnClick             `js:"onClick"`
  3069  		Ref                     Ref                 `js:"ref"`
  3070  		Role                    string              `js:"role"`
  3071  		Style                   *CSS                `js:"style"`
  3072  	}
  3073  
  3074  	rprops := &_SpanProps{
  3075  		o: object.New(),
  3076  	}
  3077  
  3078  	if props != nil {
  3079  		rprops.AriaExpanded = props.AriaExpanded
  3080  
  3081  		rprops.AriaHasPopup = props.AriaHasPopup
  3082  
  3083  		rprops.AriaLabelledBy = props.AriaLabelledBy
  3084  
  3085  		rprops.ClassName = props.ClassName
  3086  
  3087  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  3088  
  3089  		if props.DataSet != nil {
  3090  			for dk, dv := range props.DataSet {
  3091  				rprops.o.Set("data-"+dk, dv)
  3092  			}
  3093  		}
  3094  		if props.ID != "" {
  3095  			rprops.ID = props.ID
  3096  		}
  3097  		if props.Key != "" {
  3098  			rprops.Key = props.Key
  3099  		}
  3100  		if props.OnChange != nil {
  3101  			rprops.o.Set("onChange", props.OnChange.OnChange)
  3102  		}
  3103  		if props.OnClick != nil {
  3104  			rprops.o.Set("onClick", props.OnClick.OnClick)
  3105  		}
  3106  		if props.Ref != nil {
  3107  			rprops.o.Set("ref", props.Ref.Ref)
  3108  		}
  3109  		rprops.Role = props.Role
  3110  
  3111  		// TODO: until we have a resolution on
  3112  		// https://github.com/gopherjs/gopherjs/issues/236
  3113  		rprops.Style = props.Style.hack()
  3114  	}
  3115  
  3116  	return &SpanElem{
  3117  		Element: createElement("span", rprops, children...),
  3118  	}
  3119  }
  3120  
  3121  // StrikeElem is the React element definition corresponding to the HTML <s> element
  3122  type StrikeElem struct {
  3123  	Element
  3124  }
  3125  
  3126  func (a *StrikeElem) coreReactElement() {}
  3127  
  3128  // StrikeProps defines the properties for the <s> element
  3129  type StrikeProps struct {
  3130  	AriaExpanded            bool
  3131  	AriaHasPopup            bool
  3132  	AriaLabelledBy          string
  3133  	ClassName               string
  3134  	DangerouslySetInnerHTML *DangerousInnerHTML
  3135  	DataSet                 DataSet
  3136  	ID                      string
  3137  	Key                     string
  3138  	OnChange                OnChange
  3139  	OnClick                 OnClick
  3140  	Ref                     Ref
  3141  	Role                    string
  3142  	Style                   *CSS
  3143  }
  3144  
  3145  // Strike creates a new instance of a <s> element with the provided props and
  3146  // children
  3147  func Strike(props *StrikeProps, children ...Element) *StrikeElem {
  3148  	type _StrikeProps struct {
  3149  		o                       *js.Object
  3150  		AriaExpanded            bool                `js:"aria-expanded"`
  3151  		AriaHasPopup            bool                `js:"aria-haspopup"`
  3152  		AriaLabelledBy          string              `js:"aria-labelledby"`
  3153  		ClassName               string              `js:"className"`
  3154  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  3155  		ID                      string              `js:"id" react:"omitempty"`
  3156  		Key                     string              `js:"key" react:"omitempty"`
  3157  		OnChange                OnChange            `js:"onChange"`
  3158  		OnClick                 OnClick             `js:"onClick"`
  3159  		Ref                     Ref                 `js:"ref"`
  3160  		Role                    string              `js:"role"`
  3161  		Style                   *CSS                `js:"style"`
  3162  	}
  3163  
  3164  	rprops := &_StrikeProps{
  3165  		o: object.New(),
  3166  	}
  3167  
  3168  	if props != nil {
  3169  		rprops.AriaExpanded = props.AriaExpanded
  3170  
  3171  		rprops.AriaHasPopup = props.AriaHasPopup
  3172  
  3173  		rprops.AriaLabelledBy = props.AriaLabelledBy
  3174  
  3175  		rprops.ClassName = props.ClassName
  3176  
  3177  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  3178  
  3179  		if props.DataSet != nil {
  3180  			for dk, dv := range props.DataSet {
  3181  				rprops.o.Set("data-"+dk, dv)
  3182  			}
  3183  		}
  3184  		if props.ID != "" {
  3185  			rprops.ID = props.ID
  3186  		}
  3187  		if props.Key != "" {
  3188  			rprops.Key = props.Key
  3189  		}
  3190  		if props.OnChange != nil {
  3191  			rprops.o.Set("onChange", props.OnChange.OnChange)
  3192  		}
  3193  		if props.OnClick != nil {
  3194  			rprops.o.Set("onClick", props.OnClick.OnClick)
  3195  		}
  3196  		if props.Ref != nil {
  3197  			rprops.o.Set("ref", props.Ref.Ref)
  3198  		}
  3199  		rprops.Role = props.Role
  3200  
  3201  		// TODO: until we have a resolution on
  3202  		// https://github.com/gopherjs/gopherjs/issues/236
  3203  		rprops.Style = props.Style.hack()
  3204  	}
  3205  
  3206  	return &StrikeElem{
  3207  		Element: createElement("s", rprops, children...),
  3208  	}
  3209  }
  3210  
  3211  // SupElem is the React element definition corresponding to the HTML <sup> element
  3212  type SupElem struct {
  3213  	Element
  3214  }
  3215  
  3216  func (a *SupElem) coreReactElement() {}
  3217  
  3218  // SupProps defines the properties for the <sup> element
  3219  type SupProps struct {
  3220  	AriaExpanded            bool
  3221  	AriaHasPopup            bool
  3222  	AriaLabelledBy          string
  3223  	ClassName               string
  3224  	DangerouslySetInnerHTML *DangerousInnerHTML
  3225  	DataSet                 DataSet
  3226  	ID                      string
  3227  	Key                     string
  3228  	OnChange                OnChange
  3229  	OnClick                 OnClick
  3230  	Ref                     Ref
  3231  	Role                    string
  3232  	Style                   *CSS
  3233  }
  3234  
  3235  // Sup creates a new instance of a <sup> element with the provided props and
  3236  // children
  3237  func Sup(props *SupProps, children ...Element) *SupElem {
  3238  	type _SupProps struct {
  3239  		o                       *js.Object
  3240  		AriaExpanded            bool                `js:"aria-expanded"`
  3241  		AriaHasPopup            bool                `js:"aria-haspopup"`
  3242  		AriaLabelledBy          string              `js:"aria-labelledby"`
  3243  		ClassName               string              `js:"className"`
  3244  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  3245  		ID                      string              `js:"id" react:"omitempty"`
  3246  		Key                     string              `js:"key" react:"omitempty"`
  3247  		OnChange                OnChange            `js:"onChange"`
  3248  		OnClick                 OnClick             `js:"onClick"`
  3249  		Ref                     Ref                 `js:"ref"`
  3250  		Role                    string              `js:"role"`
  3251  		Style                   *CSS                `js:"style"`
  3252  	}
  3253  
  3254  	rprops := &_SupProps{
  3255  		o: object.New(),
  3256  	}
  3257  
  3258  	if props != nil {
  3259  		rprops.AriaExpanded = props.AriaExpanded
  3260  
  3261  		rprops.AriaHasPopup = props.AriaHasPopup
  3262  
  3263  		rprops.AriaLabelledBy = props.AriaLabelledBy
  3264  
  3265  		rprops.ClassName = props.ClassName
  3266  
  3267  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  3268  
  3269  		if props.DataSet != nil {
  3270  			for dk, dv := range props.DataSet {
  3271  				rprops.o.Set("data-"+dk, dv)
  3272  			}
  3273  		}
  3274  		if props.ID != "" {
  3275  			rprops.ID = props.ID
  3276  		}
  3277  		if props.Key != "" {
  3278  			rprops.Key = props.Key
  3279  		}
  3280  		if props.OnChange != nil {
  3281  			rprops.o.Set("onChange", props.OnChange.OnChange)
  3282  		}
  3283  		if props.OnClick != nil {
  3284  			rprops.o.Set("onClick", props.OnClick.OnClick)
  3285  		}
  3286  		if props.Ref != nil {
  3287  			rprops.o.Set("ref", props.Ref.Ref)
  3288  		}
  3289  		rprops.Role = props.Role
  3290  
  3291  		// TODO: until we have a resolution on
  3292  		// https://github.com/gopherjs/gopherjs/issues/236
  3293  		rprops.Style = props.Style.hack()
  3294  	}
  3295  
  3296  	return &SupElem{
  3297  		Element: createElement("sup", rprops, children...),
  3298  	}
  3299  }
  3300  
  3301  // TableElem is the React element definition corresponding to the HTML <table> element
  3302  type TableElem struct {
  3303  	Element
  3304  }
  3305  
  3306  func (a *TableElem) coreReactElement() {}
  3307  
  3308  // TableProps defines the properties for the <table> element
  3309  type TableProps struct {
  3310  	AriaExpanded            bool
  3311  	AriaHasPopup            bool
  3312  	AriaLabelledBy          string
  3313  	ClassName               string
  3314  	DangerouslySetInnerHTML *DangerousInnerHTML
  3315  	DataSet                 DataSet
  3316  	ID                      string
  3317  	Key                     string
  3318  	OnChange                OnChange
  3319  	OnClick                 OnClick
  3320  	Ref                     Ref
  3321  	Role                    string
  3322  	Style                   *CSS
  3323  }
  3324  
  3325  // Table creates a new instance of a <table> element with the provided props and
  3326  // children
  3327  func Table(props *TableProps, children ...Element) *TableElem {
  3328  	type _TableProps struct {
  3329  		o                       *js.Object
  3330  		AriaExpanded            bool                `js:"aria-expanded"`
  3331  		AriaHasPopup            bool                `js:"aria-haspopup"`
  3332  		AriaLabelledBy          string              `js:"aria-labelledby"`
  3333  		ClassName               string              `js:"className"`
  3334  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  3335  		ID                      string              `js:"id" react:"omitempty"`
  3336  		Key                     string              `js:"key" react:"omitempty"`
  3337  		OnChange                OnChange            `js:"onChange"`
  3338  		OnClick                 OnClick             `js:"onClick"`
  3339  		Ref                     Ref                 `js:"ref"`
  3340  		Role                    string              `js:"role"`
  3341  		Style                   *CSS                `js:"style"`
  3342  	}
  3343  
  3344  	rprops := &_TableProps{
  3345  		o: object.New(),
  3346  	}
  3347  
  3348  	if props != nil {
  3349  		rprops.AriaExpanded = props.AriaExpanded
  3350  
  3351  		rprops.AriaHasPopup = props.AriaHasPopup
  3352  
  3353  		rprops.AriaLabelledBy = props.AriaLabelledBy
  3354  
  3355  		rprops.ClassName = props.ClassName
  3356  
  3357  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  3358  
  3359  		if props.DataSet != nil {
  3360  			for dk, dv := range props.DataSet {
  3361  				rprops.o.Set("data-"+dk, dv)
  3362  			}
  3363  		}
  3364  		if props.ID != "" {
  3365  			rprops.ID = props.ID
  3366  		}
  3367  		if props.Key != "" {
  3368  			rprops.Key = props.Key
  3369  		}
  3370  		if props.OnChange != nil {
  3371  			rprops.o.Set("onChange", props.OnChange.OnChange)
  3372  		}
  3373  		if props.OnClick != nil {
  3374  			rprops.o.Set("onClick", props.OnClick.OnClick)
  3375  		}
  3376  		if props.Ref != nil {
  3377  			rprops.o.Set("ref", props.Ref.Ref)
  3378  		}
  3379  		rprops.Role = props.Role
  3380  
  3381  		// TODO: until we have a resolution on
  3382  		// https://github.com/gopherjs/gopherjs/issues/236
  3383  		rprops.Style = props.Style.hack()
  3384  	}
  3385  
  3386  	return &TableElem{
  3387  		Element: createElement("table", rprops, children...),
  3388  	}
  3389  }
  3390  
  3391  // TbodyElem is the React element definition corresponding to the HTML <tbody> element
  3392  type TbodyElem struct {
  3393  	Element
  3394  }
  3395  
  3396  func (a *TbodyElem) coreReactElement() {}
  3397  
  3398  // TbodyProps defines the properties for the <tbody> element
  3399  type TbodyProps struct {
  3400  	AriaExpanded            bool
  3401  	AriaHasPopup            bool
  3402  	AriaLabelledBy          string
  3403  	ClassName               string
  3404  	DangerouslySetInnerHTML *DangerousInnerHTML
  3405  	DataSet                 DataSet
  3406  	ID                      string
  3407  	Key                     string
  3408  	OnChange                OnChange
  3409  	OnClick                 OnClick
  3410  	Ref                     Ref
  3411  	Role                    string
  3412  	Style                   *CSS
  3413  }
  3414  
  3415  // Tbody creates a new instance of a <tbody> element with the provided props and
  3416  // children
  3417  func Tbody(props *TbodyProps, children ...Element) *TbodyElem {
  3418  	type _TbodyProps struct {
  3419  		o                       *js.Object
  3420  		AriaExpanded            bool                `js:"aria-expanded"`
  3421  		AriaHasPopup            bool                `js:"aria-haspopup"`
  3422  		AriaLabelledBy          string              `js:"aria-labelledby"`
  3423  		ClassName               string              `js:"className"`
  3424  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  3425  		ID                      string              `js:"id" react:"omitempty"`
  3426  		Key                     string              `js:"key" react:"omitempty"`
  3427  		OnChange                OnChange            `js:"onChange"`
  3428  		OnClick                 OnClick             `js:"onClick"`
  3429  		Ref                     Ref                 `js:"ref"`
  3430  		Role                    string              `js:"role"`
  3431  		Style                   *CSS                `js:"style"`
  3432  	}
  3433  
  3434  	rprops := &_TbodyProps{
  3435  		o: object.New(),
  3436  	}
  3437  
  3438  	if props != nil {
  3439  		rprops.AriaExpanded = props.AriaExpanded
  3440  
  3441  		rprops.AriaHasPopup = props.AriaHasPopup
  3442  
  3443  		rprops.AriaLabelledBy = props.AriaLabelledBy
  3444  
  3445  		rprops.ClassName = props.ClassName
  3446  
  3447  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  3448  
  3449  		if props.DataSet != nil {
  3450  			for dk, dv := range props.DataSet {
  3451  				rprops.o.Set("data-"+dk, dv)
  3452  			}
  3453  		}
  3454  		if props.ID != "" {
  3455  			rprops.ID = props.ID
  3456  		}
  3457  		if props.Key != "" {
  3458  			rprops.Key = props.Key
  3459  		}
  3460  		if props.OnChange != nil {
  3461  			rprops.o.Set("onChange", props.OnChange.OnChange)
  3462  		}
  3463  		if props.OnClick != nil {
  3464  			rprops.o.Set("onClick", props.OnClick.OnClick)
  3465  		}
  3466  		if props.Ref != nil {
  3467  			rprops.o.Set("ref", props.Ref.Ref)
  3468  		}
  3469  		rprops.Role = props.Role
  3470  
  3471  		// TODO: until we have a resolution on
  3472  		// https://github.com/gopherjs/gopherjs/issues/236
  3473  		rprops.Style = props.Style.hack()
  3474  	}
  3475  
  3476  	return &TbodyElem{
  3477  		Element: createElement("tbody", rprops, children...),
  3478  	}
  3479  }
  3480  
  3481  // TdElem is the React element definition corresponding to the HTML <td> element
  3482  type TdElem struct {
  3483  	Element
  3484  }
  3485  
  3486  func (a *TdElem) coreReactElement() {}
  3487  
  3488  // TdProps defines the properties for the <td> element
  3489  type TdProps struct {
  3490  	AriaExpanded            bool
  3491  	AriaHasPopup            bool
  3492  	AriaLabelledBy          string
  3493  	ClassName               string
  3494  	DangerouslySetInnerHTML *DangerousInnerHTML
  3495  	DataSet                 DataSet
  3496  	ID                      string
  3497  	Key                     string
  3498  	OnChange                OnChange
  3499  	OnClick                 OnClick
  3500  	Ref                     Ref
  3501  	Role                    string
  3502  	Style                   *CSS
  3503  }
  3504  
  3505  // Td creates a new instance of a <td> element with the provided props and
  3506  // children
  3507  func Td(props *TdProps, children ...Element) *TdElem {
  3508  	type _TdProps struct {
  3509  		o                       *js.Object
  3510  		AriaExpanded            bool                `js:"aria-expanded"`
  3511  		AriaHasPopup            bool                `js:"aria-haspopup"`
  3512  		AriaLabelledBy          string              `js:"aria-labelledby"`
  3513  		ClassName               string              `js:"className"`
  3514  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  3515  		ID                      string              `js:"id" react:"omitempty"`
  3516  		Key                     string              `js:"key" react:"omitempty"`
  3517  		OnChange                OnChange            `js:"onChange"`
  3518  		OnClick                 OnClick             `js:"onClick"`
  3519  		Ref                     Ref                 `js:"ref"`
  3520  		Role                    string              `js:"role"`
  3521  		Style                   *CSS                `js:"style"`
  3522  	}
  3523  
  3524  	rprops := &_TdProps{
  3525  		o: object.New(),
  3526  	}
  3527  
  3528  	if props != nil {
  3529  		rprops.AriaExpanded = props.AriaExpanded
  3530  
  3531  		rprops.AriaHasPopup = props.AriaHasPopup
  3532  
  3533  		rprops.AriaLabelledBy = props.AriaLabelledBy
  3534  
  3535  		rprops.ClassName = props.ClassName
  3536  
  3537  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  3538  
  3539  		if props.DataSet != nil {
  3540  			for dk, dv := range props.DataSet {
  3541  				rprops.o.Set("data-"+dk, dv)
  3542  			}
  3543  		}
  3544  		if props.ID != "" {
  3545  			rprops.ID = props.ID
  3546  		}
  3547  		if props.Key != "" {
  3548  			rprops.Key = props.Key
  3549  		}
  3550  		if props.OnChange != nil {
  3551  			rprops.o.Set("onChange", props.OnChange.OnChange)
  3552  		}
  3553  		if props.OnClick != nil {
  3554  			rprops.o.Set("onClick", props.OnClick.OnClick)
  3555  		}
  3556  		if props.Ref != nil {
  3557  			rprops.o.Set("ref", props.Ref.Ref)
  3558  		}
  3559  		rprops.Role = props.Role
  3560  
  3561  		// TODO: until we have a resolution on
  3562  		// https://github.com/gopherjs/gopherjs/issues/236
  3563  		rprops.Style = props.Style.hack()
  3564  	}
  3565  
  3566  	return &TdElem{
  3567  		Element: createElement("td", rprops, children...),
  3568  	}
  3569  }
  3570  
  3571  // TextAreaElem is the React element definition corresponding to the HTML <textarea> element
  3572  type TextAreaElem struct {
  3573  	Element
  3574  }
  3575  
  3576  func (a *TextAreaElem) coreReactElement() {}
  3577  
  3578  // TextAreaProps defines the properties for the <textarea> element
  3579  type TextAreaProps struct {
  3580  	AriaExpanded            bool
  3581  	AriaHasPopup            bool
  3582  	AriaLabelledBy          string
  3583  	ClassName               string
  3584  	DangerouslySetInnerHTML *DangerousInnerHTML
  3585  	DataSet                 DataSet
  3586  	ID                      string
  3587  	Key                     string
  3588  	OnChange                OnChange
  3589  	OnClick                 OnClick
  3590  	Placeholder             string
  3591  	Ref                     Ref
  3592  	Role                    string
  3593  	Style                   *CSS
  3594  	Value                   string
  3595  }
  3596  
  3597  // TextArea creates a new instance of a <textarea> element with the provided props and
  3598  // children
  3599  func TextArea(props *TextAreaProps, children ...Element) *TextAreaElem {
  3600  	type _TextAreaProps struct {
  3601  		o                       *js.Object
  3602  		AriaExpanded            bool                `js:"aria-expanded"`
  3603  		AriaHasPopup            bool                `js:"aria-haspopup"`
  3604  		AriaLabelledBy          string              `js:"aria-labelledby"`
  3605  		ClassName               string              `js:"className"`
  3606  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  3607  		ID                      string              `js:"id" react:"omitempty"`
  3608  		Key                     string              `js:"key" react:"omitempty"`
  3609  		OnChange                OnChange            `js:"onChange"`
  3610  		OnClick                 OnClick             `js:"onClick"`
  3611  		Placeholder             string              `js:"placeholder"`
  3612  		Ref                     Ref                 `js:"ref"`
  3613  		Role                    string              `js:"role"`
  3614  		Style                   *CSS                `js:"style"`
  3615  		Value                   string              `js:"value"`
  3616  	}
  3617  
  3618  	rprops := &_TextAreaProps{
  3619  		o: object.New(),
  3620  	}
  3621  
  3622  	if props != nil {
  3623  		rprops.AriaExpanded = props.AriaExpanded
  3624  
  3625  		rprops.AriaHasPopup = props.AriaHasPopup
  3626  
  3627  		rprops.AriaLabelledBy = props.AriaLabelledBy
  3628  
  3629  		rprops.ClassName = props.ClassName
  3630  
  3631  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  3632  
  3633  		if props.DataSet != nil {
  3634  			for dk, dv := range props.DataSet {
  3635  				rprops.o.Set("data-"+dk, dv)
  3636  			}
  3637  		}
  3638  		if props.ID != "" {
  3639  			rprops.ID = props.ID
  3640  		}
  3641  		if props.Key != "" {
  3642  			rprops.Key = props.Key
  3643  		}
  3644  		if props.OnChange != nil {
  3645  			rprops.o.Set("onChange", props.OnChange.OnChange)
  3646  		}
  3647  		if props.OnClick != nil {
  3648  			rprops.o.Set("onClick", props.OnClick.OnClick)
  3649  		}
  3650  		rprops.Placeholder = props.Placeholder
  3651  
  3652  		if props.Ref != nil {
  3653  			rprops.o.Set("ref", props.Ref.Ref)
  3654  		}
  3655  		rprops.Role = props.Role
  3656  
  3657  		// TODO: until we have a resolution on
  3658  		// https://github.com/gopherjs/gopherjs/issues/236
  3659  		rprops.Style = props.Style.hack()
  3660  		rprops.Value = props.Value
  3661  	}
  3662  
  3663  	return &TextAreaElem{
  3664  		Element: createElement("textarea", rprops, children...),
  3665  	}
  3666  }
  3667  
  3668  // ThElem is the React element definition corresponding to the HTML <th> element
  3669  type ThElem struct {
  3670  	Element
  3671  }
  3672  
  3673  func (a *ThElem) coreReactElement() {}
  3674  
  3675  // ThProps defines the properties for the <th> element
  3676  type ThProps struct {
  3677  	AriaExpanded            bool
  3678  	AriaHasPopup            bool
  3679  	AriaLabelledBy          string
  3680  	ClassName               string
  3681  	DangerouslySetInnerHTML *DangerousInnerHTML
  3682  	DataSet                 DataSet
  3683  	ID                      string
  3684  	Key                     string
  3685  	OnChange                OnChange
  3686  	OnClick                 OnClick
  3687  	Ref                     Ref
  3688  	Role                    string
  3689  	Style                   *CSS
  3690  }
  3691  
  3692  // Th creates a new instance of a <th> element with the provided props and
  3693  // children
  3694  func Th(props *ThProps, children ...Element) *ThElem {
  3695  	type _ThProps struct {
  3696  		o                       *js.Object
  3697  		AriaExpanded            bool                `js:"aria-expanded"`
  3698  		AriaHasPopup            bool                `js:"aria-haspopup"`
  3699  		AriaLabelledBy          string              `js:"aria-labelledby"`
  3700  		ClassName               string              `js:"className"`
  3701  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  3702  		ID                      string              `js:"id" react:"omitempty"`
  3703  		Key                     string              `js:"key" react:"omitempty"`
  3704  		OnChange                OnChange            `js:"onChange"`
  3705  		OnClick                 OnClick             `js:"onClick"`
  3706  		Ref                     Ref                 `js:"ref"`
  3707  		Role                    string              `js:"role"`
  3708  		Style                   *CSS                `js:"style"`
  3709  	}
  3710  
  3711  	rprops := &_ThProps{
  3712  		o: object.New(),
  3713  	}
  3714  
  3715  	if props != nil {
  3716  		rprops.AriaExpanded = props.AriaExpanded
  3717  
  3718  		rprops.AriaHasPopup = props.AriaHasPopup
  3719  
  3720  		rprops.AriaLabelledBy = props.AriaLabelledBy
  3721  
  3722  		rprops.ClassName = props.ClassName
  3723  
  3724  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  3725  
  3726  		if props.DataSet != nil {
  3727  			for dk, dv := range props.DataSet {
  3728  				rprops.o.Set("data-"+dk, dv)
  3729  			}
  3730  		}
  3731  		if props.ID != "" {
  3732  			rprops.ID = props.ID
  3733  		}
  3734  		if props.Key != "" {
  3735  			rprops.Key = props.Key
  3736  		}
  3737  		if props.OnChange != nil {
  3738  			rprops.o.Set("onChange", props.OnChange.OnChange)
  3739  		}
  3740  		if props.OnClick != nil {
  3741  			rprops.o.Set("onClick", props.OnClick.OnClick)
  3742  		}
  3743  		if props.Ref != nil {
  3744  			rprops.o.Set("ref", props.Ref.Ref)
  3745  		}
  3746  		rprops.Role = props.Role
  3747  
  3748  		// TODO: until we have a resolution on
  3749  		// https://github.com/gopherjs/gopherjs/issues/236
  3750  		rprops.Style = props.Style.hack()
  3751  	}
  3752  
  3753  	return &ThElem{
  3754  		Element: createElement("th", rprops, children...),
  3755  	}
  3756  }
  3757  
  3758  // TheadElem is the React element definition corresponding to the HTML <thead> element
  3759  type TheadElem struct {
  3760  	Element
  3761  }
  3762  
  3763  func (a *TheadElem) coreReactElement() {}
  3764  
  3765  // TheadProps defines the properties for the <thead> element
  3766  type TheadProps struct {
  3767  	AriaExpanded            bool
  3768  	AriaHasPopup            bool
  3769  	AriaLabelledBy          string
  3770  	ClassName               string
  3771  	DangerouslySetInnerHTML *DangerousInnerHTML
  3772  	DataSet                 DataSet
  3773  	ID                      string
  3774  	Key                     string
  3775  	OnChange                OnChange
  3776  	OnClick                 OnClick
  3777  	Ref                     Ref
  3778  	Role                    string
  3779  	Style                   *CSS
  3780  }
  3781  
  3782  // Thead creates a new instance of a <thead> element with the provided props and
  3783  // children
  3784  func Thead(props *TheadProps, children ...Element) *TheadElem {
  3785  	type _TheadProps struct {
  3786  		o                       *js.Object
  3787  		AriaExpanded            bool                `js:"aria-expanded"`
  3788  		AriaHasPopup            bool                `js:"aria-haspopup"`
  3789  		AriaLabelledBy          string              `js:"aria-labelledby"`
  3790  		ClassName               string              `js:"className"`
  3791  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  3792  		ID                      string              `js:"id" react:"omitempty"`
  3793  		Key                     string              `js:"key" react:"omitempty"`
  3794  		OnChange                OnChange            `js:"onChange"`
  3795  		OnClick                 OnClick             `js:"onClick"`
  3796  		Ref                     Ref                 `js:"ref"`
  3797  		Role                    string              `js:"role"`
  3798  		Style                   *CSS                `js:"style"`
  3799  	}
  3800  
  3801  	rprops := &_TheadProps{
  3802  		o: object.New(),
  3803  	}
  3804  
  3805  	if props != nil {
  3806  		rprops.AriaExpanded = props.AriaExpanded
  3807  
  3808  		rprops.AriaHasPopup = props.AriaHasPopup
  3809  
  3810  		rprops.AriaLabelledBy = props.AriaLabelledBy
  3811  
  3812  		rprops.ClassName = props.ClassName
  3813  
  3814  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  3815  
  3816  		if props.DataSet != nil {
  3817  			for dk, dv := range props.DataSet {
  3818  				rprops.o.Set("data-"+dk, dv)
  3819  			}
  3820  		}
  3821  		if props.ID != "" {
  3822  			rprops.ID = props.ID
  3823  		}
  3824  		if props.Key != "" {
  3825  			rprops.Key = props.Key
  3826  		}
  3827  		if props.OnChange != nil {
  3828  			rprops.o.Set("onChange", props.OnChange.OnChange)
  3829  		}
  3830  		if props.OnClick != nil {
  3831  			rprops.o.Set("onClick", props.OnClick.OnClick)
  3832  		}
  3833  		if props.Ref != nil {
  3834  			rprops.o.Set("ref", props.Ref.Ref)
  3835  		}
  3836  		rprops.Role = props.Role
  3837  
  3838  		// TODO: until we have a resolution on
  3839  		// https://github.com/gopherjs/gopherjs/issues/236
  3840  		rprops.Style = props.Style.hack()
  3841  	}
  3842  
  3843  	return &TheadElem{
  3844  		Element: createElement("thead", rprops, children...),
  3845  	}
  3846  }
  3847  
  3848  // TrElem is the React element definition corresponding to the HTML <tr> element
  3849  type TrElem struct {
  3850  	Element
  3851  }
  3852  
  3853  func (a *TrElem) coreReactElement() {}
  3854  
  3855  // TrProps defines the properties for the <tr> element
  3856  type TrProps struct {
  3857  	AriaExpanded            bool
  3858  	AriaHasPopup            bool
  3859  	AriaLabelledBy          string
  3860  	ClassName               string
  3861  	DangerouslySetInnerHTML *DangerousInnerHTML
  3862  	DataSet                 DataSet
  3863  	ID                      string
  3864  	Key                     string
  3865  	OnChange                OnChange
  3866  	OnClick                 OnClick
  3867  	Ref                     Ref
  3868  	Role                    string
  3869  	Style                   *CSS
  3870  }
  3871  
  3872  // Tr creates a new instance of a <tr> element with the provided props and
  3873  // children
  3874  func Tr(props *TrProps, children ...Element) *TrElem {
  3875  	type _TrProps struct {
  3876  		o                       *js.Object
  3877  		AriaExpanded            bool                `js:"aria-expanded"`
  3878  		AriaHasPopup            bool                `js:"aria-haspopup"`
  3879  		AriaLabelledBy          string              `js:"aria-labelledby"`
  3880  		ClassName               string              `js:"className"`
  3881  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  3882  		ID                      string              `js:"id" react:"omitempty"`
  3883  		Key                     string              `js:"key" react:"omitempty"`
  3884  		OnChange                OnChange            `js:"onChange"`
  3885  		OnClick                 OnClick             `js:"onClick"`
  3886  		Ref                     Ref                 `js:"ref"`
  3887  		Role                    string              `js:"role"`
  3888  		Style                   *CSS                `js:"style"`
  3889  	}
  3890  
  3891  	rprops := &_TrProps{
  3892  		o: object.New(),
  3893  	}
  3894  
  3895  	if props != nil {
  3896  		rprops.AriaExpanded = props.AriaExpanded
  3897  
  3898  		rprops.AriaHasPopup = props.AriaHasPopup
  3899  
  3900  		rprops.AriaLabelledBy = props.AriaLabelledBy
  3901  
  3902  		rprops.ClassName = props.ClassName
  3903  
  3904  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  3905  
  3906  		if props.DataSet != nil {
  3907  			for dk, dv := range props.DataSet {
  3908  				rprops.o.Set("data-"+dk, dv)
  3909  			}
  3910  		}
  3911  		if props.ID != "" {
  3912  			rprops.ID = props.ID
  3913  		}
  3914  		if props.Key != "" {
  3915  			rprops.Key = props.Key
  3916  		}
  3917  		if props.OnChange != nil {
  3918  			rprops.o.Set("onChange", props.OnChange.OnChange)
  3919  		}
  3920  		if props.OnClick != nil {
  3921  			rprops.o.Set("onClick", props.OnClick.OnClick)
  3922  		}
  3923  		if props.Ref != nil {
  3924  			rprops.o.Set("ref", props.Ref.Ref)
  3925  		}
  3926  		rprops.Role = props.Role
  3927  
  3928  		// TODO: until we have a resolution on
  3929  		// https://github.com/gopherjs/gopherjs/issues/236
  3930  		rprops.Style = props.Style.hack()
  3931  	}
  3932  
  3933  	return &TrElem{
  3934  		Element: createElement("tr", rprops, children...),
  3935  	}
  3936  }
  3937  
  3938  // UlElem is the React element definition corresponding to the HTML <ul> element
  3939  type UlElem struct {
  3940  	Element
  3941  }
  3942  
  3943  func (a *UlElem) coreReactElement() {}
  3944  
  3945  // UlProps defines the properties for the <ul> element
  3946  type UlProps struct {
  3947  	AriaExpanded            bool
  3948  	AriaHasPopup            bool
  3949  	AriaLabelledBy          string
  3950  	ClassName               string
  3951  	DangerouslySetInnerHTML *DangerousInnerHTML
  3952  	DataSet                 DataSet
  3953  	ID                      string
  3954  	Key                     string
  3955  	OnChange                OnChange
  3956  	OnClick                 OnClick
  3957  	Ref                     Ref
  3958  	Role                    string
  3959  	Style                   *CSS
  3960  }
  3961  
  3962  // Ul creates a new instance of a <ul> element with the provided props and
  3963  // children
  3964  func Ul(props *UlProps, children ...RendersLi) *UlElem {
  3965  	type _UlProps struct {
  3966  		o                       *js.Object
  3967  		AriaExpanded            bool                `js:"aria-expanded"`
  3968  		AriaHasPopup            bool                `js:"aria-haspopup"`
  3969  		AriaLabelledBy          string              `js:"aria-labelledby"`
  3970  		ClassName               string              `js:"className"`
  3971  		DangerouslySetInnerHTML *DangerousInnerHTML `js:"dangerouslySetInnerHTML"`
  3972  		ID                      string              `js:"id" react:"omitempty"`
  3973  		Key                     string              `js:"key" react:"omitempty"`
  3974  		OnChange                OnChange            `js:"onChange"`
  3975  		OnClick                 OnClick             `js:"onClick"`
  3976  		Ref                     Ref                 `js:"ref"`
  3977  		Role                    string              `js:"role"`
  3978  		Style                   *CSS                `js:"style"`
  3979  	}
  3980  
  3981  	var elems []Element
  3982  	for _, v := range children {
  3983  		elems = append(elems, v)
  3984  	}
  3985  
  3986  	rprops := &_UlProps{
  3987  		o: object.New(),
  3988  	}
  3989  
  3990  	if props != nil {
  3991  		rprops.AriaExpanded = props.AriaExpanded
  3992  
  3993  		rprops.AriaHasPopup = props.AriaHasPopup
  3994  
  3995  		rprops.AriaLabelledBy = props.AriaLabelledBy
  3996  
  3997  		rprops.ClassName = props.ClassName
  3998  
  3999  		rprops.DangerouslySetInnerHTML = props.DangerouslySetInnerHTML
  4000  
  4001  		if props.DataSet != nil {
  4002  			for dk, dv := range props.DataSet {
  4003  				rprops.o.Set("data-"+dk, dv)
  4004  			}
  4005  		}
  4006  		if props.ID != "" {
  4007  			rprops.ID = props.ID
  4008  		}
  4009  		if props.Key != "" {
  4010  			rprops.Key = props.Key
  4011  		}
  4012  		if props.OnChange != nil {
  4013  			rprops.o.Set("onChange", props.OnChange.OnChange)
  4014  		}
  4015  		if props.OnClick != nil {
  4016  			rprops.o.Set("onClick", props.OnClick.OnClick)
  4017  		}
  4018  		if props.Ref != nil {
  4019  			rprops.o.Set("ref", props.Ref.Ref)
  4020  		}
  4021  		rprops.Role = props.Role
  4022  
  4023  		// TODO: until we have a resolution on
  4024  		// https://github.com/gopherjs/gopherjs/issues/236
  4025  		rprops.Style = props.Style.hack()
  4026  	}
  4027  
  4028  	return &UlElem{
  4029  		Element: createElement("ul", rprops, elems...),
  4030  	}
  4031  }