001package react4j.dom;
002
003import java.util.List;
004import java.util.Objects;
005import java.util.stream.Stream;
006import javax.annotation.Generated;
007import javax.annotation.Nonnull;
008import javax.annotation.Nullable;
009import jsinterop.base.Js;
010import jsinterop.base.JsPropertyMap;
011import react4j.ReactElement;
012import react4j.ReactNode;
013import react4j.dom.proptypes.html.AnchorProps;
014import react4j.dom.proptypes.html.AudioProps;
015import react4j.dom.proptypes.html.BtnProps;
016import react4j.dom.proptypes.html.ColProps;
017import react4j.dom.proptypes.html.FormProps;
018import react4j.dom.proptypes.html.HtmlProps;
019import react4j.dom.proptypes.html.IFrameProps;
020import react4j.dom.proptypes.html.ImgProps;
021import react4j.dom.proptypes.html.InputProps;
022import react4j.dom.proptypes.html.LabelProps;
023import react4j.dom.proptypes.html.OptGroupProps;
024import react4j.dom.proptypes.html.OptionProps;
025import react4j.dom.proptypes.html.SelectProps;
026import react4j.dom.proptypes.html.SourceProps;
027import react4j.dom.proptypes.html.TdProps;
028import react4j.dom.proptypes.html.TextAreaProps;
029import react4j.dom.proptypes.html.ThProps;
030
031/**
032 * DOM provides convenience wrappers around React.createElement for DOM components.
033 */
034@Generated( "GwtReact" )
035public final class DOM
036{
037  private DOM()
038  {
039  }
040
041  // Arbitrarily large value as the time will be clamped to the expiration time of the whole tree
042  private static final int DEFAULT_TIME_TO_FALLBACK = 1000000000;
043
044  @Nonnull
045  public static ReactNode text( @Nonnull final String content )
046  {
047    return ReactNode.of( content );
048  }
049
050  @Nonnull
051  public static ReactNode fragment( @Nullable final String key, @Nonnull final ReactNode... children )
052  {
053    return ReactElement.createFragment( key, children );
054  }
055
056  @Nonnull
057  public static ReactNode fragment( @Nullable final String key, @Nonnull final Stream<? extends ReactNode> children )
058  {
059    return fragment( key, toArray( children ) );
060  }
061
062  @Nonnull
063  public static ReactNode fragment( @Nonnull final ReactNode... children )
064  {
065    return fragment( null, children );
066  }
067
068  @Nonnull
069  public static ReactNode fragment( @Nonnull final Stream<? extends ReactNode> children )
070  {
071    return fragment( null, children );
072  }
073
074  @Nonnull
075  public static ReactNode suspense( @Nullable final String key,
076                                    @Nullable final ReactNode fallback,
077                                    final int maxTimeToFallback,
078                                    @Nonnull final ReactNode... children )
079  {
080    return ReactElement.createSuspense( key, fallback, maxTimeToFallback, children );
081  }
082
083  @Nonnull
084  public static ReactNode suspense( @Nullable final String key,
085                                    @Nullable final ReactNode fallback,
086                                    final int maxTimeToFallback,
087                                    @Nonnull final Stream<? extends ReactNode> children )
088  {
089    return suspense( key, fallback, maxTimeToFallback, toArray( children ) );
090  }
091
092  @Nonnull
093  public static ReactNode suspense( @Nullable final ReactNode fallback,
094                                    final int maxTimeToFallback,
095                                    @Nonnull final ReactNode... children )
096  {
097    return suspense( null, fallback, maxTimeToFallback, children );
098  }
099
100  @Nonnull
101  public static ReactNode suspense( @Nullable final ReactNode fallback,
102                                    final int maxTimeToFallback,
103                                    @Nonnull final Stream<? extends ReactNode> children )
104  {
105    return suspense( null, fallback, maxTimeToFallback, children );
106  }
107
108  @Nonnull
109  public static ReactNode suspense( @Nullable final String key,
110                                    @Nullable final ReactNode fallback,
111                                    @Nonnull final ReactNode... children )
112  {
113    return suspense( key, fallback, DEFAULT_TIME_TO_FALLBACK, children );
114  }
115
116  @Nonnull
117  public static ReactNode suspense( @Nullable final String key,
118                                    @Nullable final ReactNode fallback,
119                                    @Nonnull final Stream<? extends ReactNode> children )
120  {
121    return suspense( key, fallback, DEFAULT_TIME_TO_FALLBACK, toArray( children ) );
122  }
123
124  @Nonnull
125  public static ReactNode suspense( @Nullable final ReactNode fallback, @Nonnull final ReactNode... children )
126  {
127    return suspense( null, fallback, DEFAULT_TIME_TO_FALLBACK, children );
128  }
129
130  @Nonnull
131  public static ReactNode suspense( @Nullable final ReactNode fallback,
132                                    @Nonnull final Stream<? extends ReactNode> children )
133  {
134    return suspense( null, fallback, DEFAULT_TIME_TO_FALLBACK, toArray( children ) );
135  }
136
137  @Nonnull
138  public static ReactNode a()
139  {
140    return createElement( "a", null, (ReactNode[]) null );
141  }
142
143  @Nonnull
144  public static ReactNode a( @Nonnull final AnchorProps props )
145  {
146    return createElement( "a", Js.asPropertyMap( props ), (ReactNode[]) null );
147  }
148
149  @Nonnull
150  public static ReactNode a( @Nonnull final AnchorProps props, @Nullable final ReactNode... children )
151  {
152    return createElement( "a", Js.asPropertyMap( props ), children );
153  }
154
155  @Nonnull
156  public static ReactNode a( @Nullable final ReactNode... children )
157  {
158    return createElement( "a", null, children );
159  }
160
161  @Nonnull
162  public static ReactNode a( @Nonnull final AnchorProps props, @Nonnull final String content )
163  {
164    return createElement( "a", Js.asPropertyMap( props ), text( content ) );
165  }
166
167  @Nonnull
168  public static ReactNode a( @Nonnull final String content )
169  {
170    return a( ReactNode.of( content ) );
171  }
172
173  @Nonnull
174  public static ReactNode a( final byte content )
175  {
176    return a( ReactNode.of( content ) );
177  }
178
179  @Nonnull
180  public static ReactNode a( final short content )
181  {
182    return a( ReactNode.of( content ) );
183  }
184
185  @Nonnull
186  public static ReactNode a( final int content )
187  {
188    return a( ReactNode.of( content ) );
189  }
190
191  @Nonnull
192  public static ReactNode a( final long content )
193  {
194    return a( ReactNode.of( content ) );
195  }
196
197  @Nonnull
198  public static ReactNode a( final float content )
199  {
200    return a( ReactNode.of( content ) );
201  }
202
203  @Nonnull
204  public static ReactNode a( final double content )
205  {
206    return a( ReactNode.of( content ) );
207  }
208
209  @Nonnull
210  public static ReactNode a( @Nonnull final AnchorProps props, @Nonnull final Stream<? extends ReactNode> children )
211  {
212    return a( props, toArray( children ) );
213  }
214
215  @Nonnull
216  public static ReactNode a( @Nonnull final Stream<? extends ReactNode> children )
217  {
218    return a( toArray( children ) );
219  }
220
221  @Nonnull
222  public static ReactNode article()
223  {
224    return createElement( "article", null, (ReactNode[]) null );
225  }
226
227  @Nonnull
228  public static ReactNode article( @Nonnull final HtmlProps props )
229  {
230    return createElement( "article", Js.asPropertyMap( props ), (ReactNode[]) null );
231  }
232
233  @Nonnull
234  public static ReactNode article( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
235  {
236    return createElement( "article", Js.asPropertyMap( props ), children );
237  }
238
239  @Nonnull
240  public static ReactNode article( @Nullable final ReactNode... children )
241  {
242    return createElement( "article", null, children );
243  }
244
245  @Nonnull
246  public static ReactNode article( @Nonnull final HtmlProps props, @Nonnull final String content )
247  {
248    return createElement( "article", Js.asPropertyMap( props ), text( content ) );
249  }
250
251  @Nonnull
252  public static ReactNode article( @Nonnull final String content )
253  {
254    return article( ReactNode.of( content ) );
255  }
256
257  @Nonnull
258  public static ReactNode article( final byte content )
259  {
260    return article( ReactNode.of( content ) );
261  }
262
263  @Nonnull
264  public static ReactNode article( final short content )
265  {
266    return article( ReactNode.of( content ) );
267  }
268
269  @Nonnull
270  public static ReactNode article( final int content )
271  {
272    return article( ReactNode.of( content ) );
273  }
274
275  @Nonnull
276  public static ReactNode article( final long content )
277  {
278    return article( ReactNode.of( content ) );
279  }
280
281  @Nonnull
282  public static ReactNode article( final float content )
283  {
284    return article( ReactNode.of( content ) );
285  }
286
287  @Nonnull
288  public static ReactNode article( final double content )
289  {
290    return article( ReactNode.of( content ) );
291  }
292
293  @Nonnull
294  public static ReactNode article( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
295  {
296    return article( props, toArray( children ) );
297  }
298
299  @Nonnull
300  public static ReactNode article( @Nonnull final Stream<? extends ReactNode> children )
301  {
302    return article( toArray( children ) );
303  }
304
305  @Nonnull
306  public static ReactNode audio()
307  {
308    return createElement( "audio", null, (ReactNode[]) null );
309  }
310
311  @Nonnull
312  public static ReactNode audio( @Nonnull final AudioProps props )
313  {
314    return createElement( "audio", Js.asPropertyMap( props ), (ReactNode[]) null );
315  }
316
317  @Nonnull
318  public static ReactNode audio( @Nonnull final AudioProps props, @Nullable final ReactNode... children )
319  {
320    return createElement( "audio", Js.asPropertyMap( props ), children );
321  }
322
323  @Nonnull
324  public static ReactNode audio( @Nullable final ReactNode... children )
325  {
326    return createElement( "audio", null, children );
327  }
328
329  @Nonnull
330  public static ReactNode audio( @Nonnull final AudioProps props, @Nonnull final String content )
331  {
332    return createElement( "audio", Js.asPropertyMap( props ), text( content ) );
333  }
334
335  @Nonnull
336  public static ReactNode audio( @Nonnull final String content )
337  {
338    return audio( ReactNode.of( content ) );
339  }
340
341  @Nonnull
342  public static ReactNode audio( final byte content )
343  {
344    return audio( ReactNode.of( content ) );
345  }
346
347  @Nonnull
348  public static ReactNode audio( final short content )
349  {
350    return audio( ReactNode.of( content ) );
351  }
352
353  @Nonnull
354  public static ReactNode audio( final int content )
355  {
356    return audio( ReactNode.of( content ) );
357  }
358
359  @Nonnull
360  public static ReactNode audio( final long content )
361  {
362    return audio( ReactNode.of( content ) );
363  }
364
365  @Nonnull
366  public static ReactNode audio( final float content )
367  {
368    return audio( ReactNode.of( content ) );
369  }
370
371  @Nonnull
372  public static ReactNode audio( final double content )
373  {
374    return audio( ReactNode.of( content ) );
375  }
376
377  @Nonnull
378  public static ReactNode audio( @Nonnull final AudioProps props, @Nonnull final Stream<? extends ReactNode> children )
379  {
380    return audio( props, toArray( children ) );
381  }
382
383  @Nonnull
384  public static ReactNode audio( @Nonnull final Stream<? extends ReactNode> children )
385  {
386    return audio( toArray( children ) );
387  }
388
389  @Nonnull
390  public static ReactNode br()
391  {
392    return createElement( "br", null, (ReactNode[]) null );
393  }
394
395  @Nonnull
396  public static ReactNode br( @Nonnull final HtmlProps props )
397  {
398    return createElement( "br", Js.asPropertyMap( props ), (ReactNode[]) null );
399  }
400
401  @Nonnull
402  public static ReactNode button()
403  {
404    return createElement( "button", null, (ReactNode[]) null );
405  }
406
407  @Nonnull
408  public static ReactNode button( @Nonnull final BtnProps props )
409  {
410    return createElement( "button", Js.asPropertyMap( props ), (ReactNode[]) null );
411  }
412
413  @Nonnull
414  public static ReactNode button( @Nonnull final BtnProps props, @Nullable final ReactNode... children )
415  {
416    return createElement( "button", Js.asPropertyMap( props ), children );
417  }
418
419  @Nonnull
420  public static ReactNode button( @Nullable final ReactNode... children )
421  {
422    return createElement( "button", null, children );
423  }
424
425  @Nonnull
426  public static ReactNode button( @Nonnull final BtnProps props, @Nonnull final String content )
427  {
428    return createElement( "button", Js.asPropertyMap( props ), text( content ) );
429  }
430
431  @Nonnull
432  public static ReactNode button( @Nonnull final String content )
433  {
434    return button( ReactNode.of( content ) );
435  }
436
437  @Nonnull
438  public static ReactNode button( final byte content )
439  {
440    return button( ReactNode.of( content ) );
441  }
442
443  @Nonnull
444  public static ReactNode button( final short content )
445  {
446    return button( ReactNode.of( content ) );
447  }
448
449  @Nonnull
450  public static ReactNode button( final int content )
451  {
452    return button( ReactNode.of( content ) );
453  }
454
455  @Nonnull
456  public static ReactNode button( final long content )
457  {
458    return button( ReactNode.of( content ) );
459  }
460
461  @Nonnull
462  public static ReactNode button( final float content )
463  {
464    return button( ReactNode.of( content ) );
465  }
466
467  @Nonnull
468  public static ReactNode button( final double content )
469  {
470    return button( ReactNode.of( content ) );
471  }
472
473  @Nonnull
474  public static ReactNode button( @Nonnull final BtnProps props, @Nonnull final Stream<? extends ReactNode> children )
475  {
476    return button( props, toArray( children ) );
477  }
478
479  @Nonnull
480  public static ReactNode button( @Nonnull final Stream<? extends ReactNode> children )
481  {
482    return button( toArray( children ) );
483  }
484
485  @Nonnull
486  public static ReactNode canvas()
487  {
488    return createElement( "canvas", null, (ReactNode[]) null );
489  }
490
491  @Nonnull
492  public static ReactNode canvas( @Nonnull final HtmlProps props )
493  {
494    return createElement( "canvas", Js.asPropertyMap( props ), (ReactNode[]) null );
495  }
496
497  @Nonnull
498  public static ReactNode canvas( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
499  {
500    return createElement( "canvas", Js.asPropertyMap( props ), children );
501  }
502
503  @Nonnull
504  public static ReactNode canvas( @Nullable final ReactNode... children )
505  {
506    return createElement( "canvas", null, children );
507  }
508
509  @Nonnull
510  public static ReactNode canvas( @Nonnull final HtmlProps props, @Nonnull final String content )
511  {
512    return createElement( "canvas", Js.asPropertyMap( props ), text( content ) );
513  }
514
515  @Nonnull
516  public static ReactNode canvas( @Nonnull final String content )
517  {
518    return canvas( ReactNode.of( content ) );
519  }
520
521  @Nonnull
522  public static ReactNode canvas( final byte content )
523  {
524    return canvas( ReactNode.of( content ) );
525  }
526
527  @Nonnull
528  public static ReactNode canvas( final short content )
529  {
530    return canvas( ReactNode.of( content ) );
531  }
532
533  @Nonnull
534  public static ReactNode canvas( final int content )
535  {
536    return canvas( ReactNode.of( content ) );
537  }
538
539  @Nonnull
540  public static ReactNode canvas( final long content )
541  {
542    return canvas( ReactNode.of( content ) );
543  }
544
545  @Nonnull
546  public static ReactNode canvas( final float content )
547  {
548    return canvas( ReactNode.of( content ) );
549  }
550
551  @Nonnull
552  public static ReactNode canvas( final double content )
553  {
554    return canvas( ReactNode.of( content ) );
555  }
556
557  @Nonnull
558  public static ReactNode canvas( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
559  {
560    return canvas( props, toArray( children ) );
561  }
562
563  @Nonnull
564  public static ReactNode canvas( @Nonnull final Stream<? extends ReactNode> children )
565  {
566    return canvas( toArray( children ) );
567  }
568
569  @Nonnull
570  public static ReactNode caption()
571  {
572    return createElement( "caption", null, (ReactNode[]) null );
573  }
574
575  @Nonnull
576  public static ReactNode caption( @Nonnull final HtmlProps props )
577  {
578    return createElement( "caption", Js.asPropertyMap( props ), (ReactNode[]) null );
579  }
580
581  @Nonnull
582  public static ReactNode caption( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
583  {
584    return createElement( "caption", Js.asPropertyMap( props ), children );
585  }
586
587  @Nonnull
588  public static ReactNode caption( @Nullable final ReactNode... children )
589  {
590    return createElement( "caption", null, children );
591  }
592
593  @Nonnull
594  public static ReactNode caption( @Nonnull final HtmlProps props, @Nonnull final String content )
595  {
596    return createElement( "caption", Js.asPropertyMap( props ), text( content ) );
597  }
598
599  @Nonnull
600  public static ReactNode caption( @Nonnull final String content )
601  {
602    return caption( ReactNode.of( content ) );
603  }
604
605  @Nonnull
606  public static ReactNode caption( final byte content )
607  {
608    return caption( ReactNode.of( content ) );
609  }
610
611  @Nonnull
612  public static ReactNode caption( final short content )
613  {
614    return caption( ReactNode.of( content ) );
615  }
616
617  @Nonnull
618  public static ReactNode caption( final int content )
619  {
620    return caption( ReactNode.of( content ) );
621  }
622
623  @Nonnull
624  public static ReactNode caption( final long content )
625  {
626    return caption( ReactNode.of( content ) );
627  }
628
629  @Nonnull
630  public static ReactNode caption( final float content )
631  {
632    return caption( ReactNode.of( content ) );
633  }
634
635  @Nonnull
636  public static ReactNode caption( final double content )
637  {
638    return caption( ReactNode.of( content ) );
639  }
640
641  @Nonnull
642  public static ReactNode caption( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
643  {
644    return caption( props, toArray( children ) );
645  }
646
647  @Nonnull
648  public static ReactNode caption( @Nonnull final Stream<? extends ReactNode> children )
649  {
650    return caption( toArray( children ) );
651  }
652
653  @Nonnull
654  public static ReactNode col()
655  {
656    return createElement( "col", null, (ReactNode[]) null );
657  }
658
659  @Nonnull
660  public static ReactNode col( @Nonnull final ColProps props )
661  {
662    return createElement( "col", Js.asPropertyMap( props ), (ReactNode[]) null );
663  }
664
665  @Nonnull
666  public static ReactNode colgroup()
667  {
668    return createElement( "colgroup", null, (ReactNode[]) null );
669  }
670
671  @Nonnull
672  public static ReactNode colgroup( @Nonnull final HtmlProps props )
673  {
674    return createElement( "colgroup", Js.asPropertyMap( props ), (ReactNode[]) null );
675  }
676
677  @Nonnull
678  public static ReactNode colgroup( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
679  {
680    return createElement( "colgroup", Js.asPropertyMap( props ), children );
681  }
682
683  @Nonnull
684  public static ReactNode colgroup( @Nullable final ReactNode... children )
685  {
686    return createElement( "colgroup", null, children );
687  }
688
689  @Nonnull
690  public static ReactNode colgroup( @Nonnull final HtmlProps props, @Nonnull final String content )
691  {
692    return createElement( "colgroup", Js.asPropertyMap( props ), text( content ) );
693  }
694
695  @Nonnull
696  public static ReactNode colgroup( @Nonnull final String content )
697  {
698    return colgroup( ReactNode.of( content ) );
699  }
700
701  @Nonnull
702  public static ReactNode colgroup( final byte content )
703  {
704    return colgroup( ReactNode.of( content ) );
705  }
706
707  @Nonnull
708  public static ReactNode colgroup( final short content )
709  {
710    return colgroup( ReactNode.of( content ) );
711  }
712
713  @Nonnull
714  public static ReactNode colgroup( final int content )
715  {
716    return colgroup( ReactNode.of( content ) );
717  }
718
719  @Nonnull
720  public static ReactNode colgroup( final long content )
721  {
722    return colgroup( ReactNode.of( content ) );
723  }
724
725  @Nonnull
726  public static ReactNode colgroup( final float content )
727  {
728    return colgroup( ReactNode.of( content ) );
729  }
730
731  @Nonnull
732  public static ReactNode colgroup( final double content )
733  {
734    return colgroup( ReactNode.of( content ) );
735  }
736
737  @Nonnull
738  public static ReactNode colgroup( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
739  {
740    return colgroup( props, toArray( children ) );
741  }
742
743  @Nonnull
744  public static ReactNode colgroup( @Nonnull final Stream<? extends ReactNode> children )
745  {
746    return colgroup( toArray( children ) );
747  }
748
749  @Nonnull
750  public static ReactNode div()
751  {
752    return createElement( "div", null, (ReactNode[]) null );
753  }
754
755  @Nonnull
756  public static ReactNode div( @Nonnull final HtmlProps props )
757  {
758    return createElement( "div", Js.asPropertyMap( props ), (ReactNode[]) null );
759  }
760
761  @Nonnull
762  public static ReactNode div( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
763  {
764    return createElement( "div", Js.asPropertyMap( props ), children );
765  }
766
767  @Nonnull
768  public static ReactNode div( @Nullable final ReactNode... children )
769  {
770    return createElement( "div", null, children );
771  }
772
773  @Nonnull
774  public static ReactNode div( @Nonnull final HtmlProps props, @Nonnull final String content )
775  {
776    return createElement( "div", Js.asPropertyMap( props ), text( content ) );
777  }
778
779  @Nonnull
780  public static ReactNode div( @Nonnull final String content )
781  {
782    return div( ReactNode.of( content ) );
783  }
784
785  @Nonnull
786  public static ReactNode div( final byte content )
787  {
788    return div( ReactNode.of( content ) );
789  }
790
791  @Nonnull
792  public static ReactNode div( final short content )
793  {
794    return div( ReactNode.of( content ) );
795  }
796
797  @Nonnull
798  public static ReactNode div( final int content )
799  {
800    return div( ReactNode.of( content ) );
801  }
802
803  @Nonnull
804  public static ReactNode div( final long content )
805  {
806    return div( ReactNode.of( content ) );
807  }
808
809  @Nonnull
810  public static ReactNode div( final float content )
811  {
812    return div( ReactNode.of( content ) );
813  }
814
815  @Nonnull
816  public static ReactNode div( final double content )
817  {
818    return div( ReactNode.of( content ) );
819  }
820
821  @Nonnull
822  public static ReactNode div( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
823  {
824    return div( props, toArray( children ) );
825  }
826
827  @Nonnull
828  public static ReactNode div( @Nonnull final Stream<? extends ReactNode> children )
829  {
830    return div( toArray( children ) );
831  }
832
833  @Nonnull
834  public static ReactNode footer()
835  {
836    return createElement( "footer", null, (ReactNode[]) null );
837  }
838
839  @Nonnull
840  public static ReactNode footer( @Nonnull final HtmlProps props )
841  {
842    return createElement( "footer", Js.asPropertyMap( props ), (ReactNode[]) null );
843  }
844
845  @Nonnull
846  public static ReactNode footer( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
847  {
848    return createElement( "footer", Js.asPropertyMap( props ), children );
849  }
850
851  @Nonnull
852  public static ReactNode footer( @Nullable final ReactNode... children )
853  {
854    return createElement( "footer", null, children );
855  }
856
857  @Nonnull
858  public static ReactNode footer( @Nonnull final HtmlProps props, @Nonnull final String content )
859  {
860    return createElement( "footer", Js.asPropertyMap( props ), text( content ) );
861  }
862
863  @Nonnull
864  public static ReactNode footer( @Nonnull final String content )
865  {
866    return footer( ReactNode.of( content ) );
867  }
868
869  @Nonnull
870  public static ReactNode footer( final byte content )
871  {
872    return footer( ReactNode.of( content ) );
873  }
874
875  @Nonnull
876  public static ReactNode footer( final short content )
877  {
878    return footer( ReactNode.of( content ) );
879  }
880
881  @Nonnull
882  public static ReactNode footer( final int content )
883  {
884    return footer( ReactNode.of( content ) );
885  }
886
887  @Nonnull
888  public static ReactNode footer( final long content )
889  {
890    return footer( ReactNode.of( content ) );
891  }
892
893  @Nonnull
894  public static ReactNode footer( final float content )
895  {
896    return footer( ReactNode.of( content ) );
897  }
898
899  @Nonnull
900  public static ReactNode footer( final double content )
901  {
902    return footer( ReactNode.of( content ) );
903  }
904
905  @Nonnull
906  public static ReactNode footer( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
907  {
908    return footer( props, toArray( children ) );
909  }
910
911  @Nonnull
912  public static ReactNode footer( @Nonnull final Stream<? extends ReactNode> children )
913  {
914    return footer( toArray( children ) );
915  }
916
917  @Nonnull
918  public static ReactNode form()
919  {
920    return createElement( "form", null, (ReactNode[]) null );
921  }
922
923  @Nonnull
924  public static ReactNode form( @Nonnull final FormProps props )
925  {
926    return createElement( "form", Js.asPropertyMap( props ), (ReactNode[]) null );
927  }
928
929  @Nonnull
930  public static ReactNode form( @Nonnull final FormProps props, @Nullable final ReactNode... children )
931  {
932    return createElement( "form", Js.asPropertyMap( props ), children );
933  }
934
935  @Nonnull
936  public static ReactNode form( @Nullable final ReactNode... children )
937  {
938    return createElement( "form", null, children );
939  }
940
941  @Nonnull
942  public static ReactNode form( @Nonnull final FormProps props, @Nonnull final String content )
943  {
944    return createElement( "form", Js.asPropertyMap( props ), text( content ) );
945  }
946
947  @Nonnull
948  public static ReactNode form( @Nonnull final String content )
949  {
950    return form( ReactNode.of( content ) );
951  }
952
953  @Nonnull
954  public static ReactNode form( final byte content )
955  {
956    return form( ReactNode.of( content ) );
957  }
958
959  @Nonnull
960  public static ReactNode form( final short content )
961  {
962    return form( ReactNode.of( content ) );
963  }
964
965  @Nonnull
966  public static ReactNode form( final int content )
967  {
968    return form( ReactNode.of( content ) );
969  }
970
971  @Nonnull
972  public static ReactNode form( final long content )
973  {
974    return form( ReactNode.of( content ) );
975  }
976
977  @Nonnull
978  public static ReactNode form( final float content )
979  {
980    return form( ReactNode.of( content ) );
981  }
982
983  @Nonnull
984  public static ReactNode form( final double content )
985  {
986    return form( ReactNode.of( content ) );
987  }
988
989  @Nonnull
990  public static ReactNode form( @Nonnull final FormProps props, @Nonnull final Stream<? extends ReactNode> children )
991  {
992    return form( props, toArray( children ) );
993  }
994
995  @Nonnull
996  public static ReactNode form( @Nonnull final Stream<? extends ReactNode> children )
997  {
998    return form( toArray( children ) );
999  }
1000
1001  @Nonnull
1002  public static ReactNode header()
1003  {
1004    return createElement( "header", null, (ReactNode[]) null );
1005  }
1006
1007  @Nonnull
1008  public static ReactNode header( @Nonnull final HtmlProps props )
1009  {
1010    return createElement( "header", Js.asPropertyMap( props ), (ReactNode[]) null );
1011  }
1012
1013  @Nonnull
1014  public static ReactNode header( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
1015  {
1016    return createElement( "header", Js.asPropertyMap( props ), children );
1017  }
1018
1019  @Nonnull
1020  public static ReactNode header( @Nullable final ReactNode... children )
1021  {
1022    return createElement( "header", null, children );
1023  }
1024
1025  @Nonnull
1026  public static ReactNode header( @Nonnull final HtmlProps props, @Nonnull final String content )
1027  {
1028    return createElement( "header", Js.asPropertyMap( props ), text( content ) );
1029  }
1030
1031  @Nonnull
1032  public static ReactNode header( @Nonnull final String content )
1033  {
1034    return header( ReactNode.of( content ) );
1035  }
1036
1037  @Nonnull
1038  public static ReactNode header( final byte content )
1039  {
1040    return header( ReactNode.of( content ) );
1041  }
1042
1043  @Nonnull
1044  public static ReactNode header( final short content )
1045  {
1046    return header( ReactNode.of( content ) );
1047  }
1048
1049  @Nonnull
1050  public static ReactNode header( final int content )
1051  {
1052    return header( ReactNode.of( content ) );
1053  }
1054
1055  @Nonnull
1056  public static ReactNode header( final long content )
1057  {
1058    return header( ReactNode.of( content ) );
1059  }
1060
1061  @Nonnull
1062  public static ReactNode header( final float content )
1063  {
1064    return header( ReactNode.of( content ) );
1065  }
1066
1067  @Nonnull
1068  public static ReactNode header( final double content )
1069  {
1070    return header( ReactNode.of( content ) );
1071  }
1072
1073  @Nonnull
1074  public static ReactNode header( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
1075  {
1076    return header( props, toArray( children ) );
1077  }
1078
1079  @Nonnull
1080  public static ReactNode header( @Nonnull final Stream<? extends ReactNode> children )
1081  {
1082    return header( toArray( children ) );
1083  }
1084
1085  @Nonnull
1086  public static ReactNode h1()
1087  {
1088    return createElement( "h1", null, (ReactNode[]) null );
1089  }
1090
1091  @Nonnull
1092  public static ReactNode h1( @Nonnull final HtmlProps props )
1093  {
1094    return createElement( "h1", Js.asPropertyMap( props ), (ReactNode[]) null );
1095  }
1096
1097  @Nonnull
1098  public static ReactNode h1( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
1099  {
1100    return createElement( "h1", Js.asPropertyMap( props ), children );
1101  }
1102
1103  @Nonnull
1104  public static ReactNode h1( @Nullable final ReactNode... children )
1105  {
1106    return createElement( "h1", null, children );
1107  }
1108
1109  @Nonnull
1110  public static ReactNode h1( @Nonnull final HtmlProps props, @Nonnull final String content )
1111  {
1112    return createElement( "h1", Js.asPropertyMap( props ), text( content ) );
1113  }
1114
1115  @Nonnull
1116  public static ReactNode h1( @Nonnull final String content )
1117  {
1118    return h1( ReactNode.of( content ) );
1119  }
1120
1121  @Nonnull
1122  public static ReactNode h1( final byte content )
1123  {
1124    return h1( ReactNode.of( content ) );
1125  }
1126
1127  @Nonnull
1128  public static ReactNode h1( final short content )
1129  {
1130    return h1( ReactNode.of( content ) );
1131  }
1132
1133  @Nonnull
1134  public static ReactNode h1( final int content )
1135  {
1136    return h1( ReactNode.of( content ) );
1137  }
1138
1139  @Nonnull
1140  public static ReactNode h1( final long content )
1141  {
1142    return h1( ReactNode.of( content ) );
1143  }
1144
1145  @Nonnull
1146  public static ReactNode h1( final float content )
1147  {
1148    return h1( ReactNode.of( content ) );
1149  }
1150
1151  @Nonnull
1152  public static ReactNode h1( final double content )
1153  {
1154    return h1( ReactNode.of( content ) );
1155  }
1156
1157  @Nonnull
1158  public static ReactNode h1( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
1159  {
1160    return h1( props, toArray( children ) );
1161  }
1162
1163  @Nonnull
1164  public static ReactNode h1( @Nonnull final Stream<? extends ReactNode> children )
1165  {
1166    return h1( toArray( children ) );
1167  }
1168
1169  @Nonnull
1170  public static ReactNode h2()
1171  {
1172    return createElement( "h2", null, (ReactNode[]) null );
1173  }
1174
1175  @Nonnull
1176  public static ReactNode h2( @Nonnull final HtmlProps props )
1177  {
1178    return createElement( "h2", Js.asPropertyMap( props ), (ReactNode[]) null );
1179  }
1180
1181  @Nonnull
1182  public static ReactNode h2( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
1183  {
1184    return createElement( "h2", Js.asPropertyMap( props ), children );
1185  }
1186
1187  @Nonnull
1188  public static ReactNode h2( @Nullable final ReactNode... children )
1189  {
1190    return createElement( "h2", null, children );
1191  }
1192
1193  @Nonnull
1194  public static ReactNode h2( @Nonnull final HtmlProps props, @Nonnull final String content )
1195  {
1196    return createElement( "h2", Js.asPropertyMap( props ), text( content ) );
1197  }
1198
1199  @Nonnull
1200  public static ReactNode h2( @Nonnull final String content )
1201  {
1202    return h2( ReactNode.of( content ) );
1203  }
1204
1205  @Nonnull
1206  public static ReactNode h2( final byte content )
1207  {
1208    return h2( ReactNode.of( content ) );
1209  }
1210
1211  @Nonnull
1212  public static ReactNode h2( final short content )
1213  {
1214    return h2( ReactNode.of( content ) );
1215  }
1216
1217  @Nonnull
1218  public static ReactNode h2( final int content )
1219  {
1220    return h2( ReactNode.of( content ) );
1221  }
1222
1223  @Nonnull
1224  public static ReactNode h2( final long content )
1225  {
1226    return h2( ReactNode.of( content ) );
1227  }
1228
1229  @Nonnull
1230  public static ReactNode h2( final float content )
1231  {
1232    return h2( ReactNode.of( content ) );
1233  }
1234
1235  @Nonnull
1236  public static ReactNode h2( final double content )
1237  {
1238    return h2( ReactNode.of( content ) );
1239  }
1240
1241  @Nonnull
1242  public static ReactNode h2( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
1243  {
1244    return h2( props, toArray( children ) );
1245  }
1246
1247  @Nonnull
1248  public static ReactNode h2( @Nonnull final Stream<? extends ReactNode> children )
1249  {
1250    return h2( toArray( children ) );
1251  }
1252
1253  @Nonnull
1254  public static ReactNode h3()
1255  {
1256    return createElement( "h3", null, (ReactNode[]) null );
1257  }
1258
1259  @Nonnull
1260  public static ReactNode h3( @Nonnull final HtmlProps props )
1261  {
1262    return createElement( "h3", Js.asPropertyMap( props ), (ReactNode[]) null );
1263  }
1264
1265  @Nonnull
1266  public static ReactNode h3( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
1267  {
1268    return createElement( "h3", Js.asPropertyMap( props ), children );
1269  }
1270
1271  @Nonnull
1272  public static ReactNode h3( @Nullable final ReactNode... children )
1273  {
1274    return createElement( "h3", null, children );
1275  }
1276
1277  @Nonnull
1278  public static ReactNode h3( @Nonnull final HtmlProps props, @Nonnull final String content )
1279  {
1280    return createElement( "h3", Js.asPropertyMap( props ), text( content ) );
1281  }
1282
1283  @Nonnull
1284  public static ReactNode h3( @Nonnull final String content )
1285  {
1286    return h3( ReactNode.of( content ) );
1287  }
1288
1289  @Nonnull
1290  public static ReactNode h3( final byte content )
1291  {
1292    return h3( ReactNode.of( content ) );
1293  }
1294
1295  @Nonnull
1296  public static ReactNode h3( final short content )
1297  {
1298    return h3( ReactNode.of( content ) );
1299  }
1300
1301  @Nonnull
1302  public static ReactNode h3( final int content )
1303  {
1304    return h3( ReactNode.of( content ) );
1305  }
1306
1307  @Nonnull
1308  public static ReactNode h3( final long content )
1309  {
1310    return h3( ReactNode.of( content ) );
1311  }
1312
1313  @Nonnull
1314  public static ReactNode h3( final float content )
1315  {
1316    return h3( ReactNode.of( content ) );
1317  }
1318
1319  @Nonnull
1320  public static ReactNode h3( final double content )
1321  {
1322    return h3( ReactNode.of( content ) );
1323  }
1324
1325  @Nonnull
1326  public static ReactNode h3( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
1327  {
1328    return h3( props, toArray( children ) );
1329  }
1330
1331  @Nonnull
1332  public static ReactNode h3( @Nonnull final Stream<? extends ReactNode> children )
1333  {
1334    return h3( toArray( children ) );
1335  }
1336
1337  @Nonnull
1338  public static ReactNode h4()
1339  {
1340    return createElement( "h4", null, (ReactNode[]) null );
1341  }
1342
1343  @Nonnull
1344  public static ReactNode h4( @Nonnull final HtmlProps props )
1345  {
1346    return createElement( "h4", Js.asPropertyMap( props ), (ReactNode[]) null );
1347  }
1348
1349  @Nonnull
1350  public static ReactNode h4( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
1351  {
1352    return createElement( "h4", Js.asPropertyMap( props ), children );
1353  }
1354
1355  @Nonnull
1356  public static ReactNode h4( @Nullable final ReactNode... children )
1357  {
1358    return createElement( "h4", null, children );
1359  }
1360
1361  @Nonnull
1362  public static ReactNode h4( @Nonnull final HtmlProps props, @Nonnull final String content )
1363  {
1364    return createElement( "h4", Js.asPropertyMap( props ), text( content ) );
1365  }
1366
1367  @Nonnull
1368  public static ReactNode h4( @Nonnull final String content )
1369  {
1370    return h4( ReactNode.of( content ) );
1371  }
1372
1373  @Nonnull
1374  public static ReactNode h4( final byte content )
1375  {
1376    return h4( ReactNode.of( content ) );
1377  }
1378
1379  @Nonnull
1380  public static ReactNode h4( final short content )
1381  {
1382    return h4( ReactNode.of( content ) );
1383  }
1384
1385  @Nonnull
1386  public static ReactNode h4( final int content )
1387  {
1388    return h4( ReactNode.of( content ) );
1389  }
1390
1391  @Nonnull
1392  public static ReactNode h4( final long content )
1393  {
1394    return h4( ReactNode.of( content ) );
1395  }
1396
1397  @Nonnull
1398  public static ReactNode h4( final float content )
1399  {
1400    return h4( ReactNode.of( content ) );
1401  }
1402
1403  @Nonnull
1404  public static ReactNode h4( final double content )
1405  {
1406    return h4( ReactNode.of( content ) );
1407  }
1408
1409  @Nonnull
1410  public static ReactNode h4( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
1411  {
1412    return h4( props, toArray( children ) );
1413  }
1414
1415  @Nonnull
1416  public static ReactNode h4( @Nonnull final Stream<? extends ReactNode> children )
1417  {
1418    return h4( toArray( children ) );
1419  }
1420
1421  @Nonnull
1422  public static ReactNode h5()
1423  {
1424    return createElement( "h5", null, (ReactNode[]) null );
1425  }
1426
1427  @Nonnull
1428  public static ReactNode h5( @Nonnull final HtmlProps props )
1429  {
1430    return createElement( "h5", Js.asPropertyMap( props ), (ReactNode[]) null );
1431  }
1432
1433  @Nonnull
1434  public static ReactNode h5( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
1435  {
1436    return createElement( "h5", Js.asPropertyMap( props ), children );
1437  }
1438
1439  @Nonnull
1440  public static ReactNode h5( @Nullable final ReactNode... children )
1441  {
1442    return createElement( "h5", null, children );
1443  }
1444
1445  @Nonnull
1446  public static ReactNode h5( @Nonnull final HtmlProps props, @Nonnull final String content )
1447  {
1448    return createElement( "h5", Js.asPropertyMap( props ), text( content ) );
1449  }
1450
1451  @Nonnull
1452  public static ReactNode h5( @Nonnull final String content )
1453  {
1454    return h5( ReactNode.of( content ) );
1455  }
1456
1457  @Nonnull
1458  public static ReactNode h5( final byte content )
1459  {
1460    return h5( ReactNode.of( content ) );
1461  }
1462
1463  @Nonnull
1464  public static ReactNode h5( final short content )
1465  {
1466    return h5( ReactNode.of( content ) );
1467  }
1468
1469  @Nonnull
1470  public static ReactNode h5( final int content )
1471  {
1472    return h5( ReactNode.of( content ) );
1473  }
1474
1475  @Nonnull
1476  public static ReactNode h5( final long content )
1477  {
1478    return h5( ReactNode.of( content ) );
1479  }
1480
1481  @Nonnull
1482  public static ReactNode h5( final float content )
1483  {
1484    return h5( ReactNode.of( content ) );
1485  }
1486
1487  @Nonnull
1488  public static ReactNode h5( final double content )
1489  {
1490    return h5( ReactNode.of( content ) );
1491  }
1492
1493  @Nonnull
1494  public static ReactNode h5( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
1495  {
1496    return h5( props, toArray( children ) );
1497  }
1498
1499  @Nonnull
1500  public static ReactNode h5( @Nonnull final Stream<? extends ReactNode> children )
1501  {
1502    return h5( toArray( children ) );
1503  }
1504
1505  @Nonnull
1506  public static ReactNode h6()
1507  {
1508    return createElement( "h6", null, (ReactNode[]) null );
1509  }
1510
1511  @Nonnull
1512  public static ReactNode h6( @Nonnull final HtmlProps props )
1513  {
1514    return createElement( "h6", Js.asPropertyMap( props ), (ReactNode[]) null );
1515  }
1516
1517  @Nonnull
1518  public static ReactNode h6( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
1519  {
1520    return createElement( "h6", Js.asPropertyMap( props ), children );
1521  }
1522
1523  @Nonnull
1524  public static ReactNode h6( @Nullable final ReactNode... children )
1525  {
1526    return createElement( "h6", null, children );
1527  }
1528
1529  @Nonnull
1530  public static ReactNode h6( @Nonnull final HtmlProps props, @Nonnull final String content )
1531  {
1532    return createElement( "h6", Js.asPropertyMap( props ), text( content ) );
1533  }
1534
1535  @Nonnull
1536  public static ReactNode h6( @Nonnull final String content )
1537  {
1538    return h6( ReactNode.of( content ) );
1539  }
1540
1541  @Nonnull
1542  public static ReactNode h6( final byte content )
1543  {
1544    return h6( ReactNode.of( content ) );
1545  }
1546
1547  @Nonnull
1548  public static ReactNode h6( final short content )
1549  {
1550    return h6( ReactNode.of( content ) );
1551  }
1552
1553  @Nonnull
1554  public static ReactNode h6( final int content )
1555  {
1556    return h6( ReactNode.of( content ) );
1557  }
1558
1559  @Nonnull
1560  public static ReactNode h6( final long content )
1561  {
1562    return h6( ReactNode.of( content ) );
1563  }
1564
1565  @Nonnull
1566  public static ReactNode h6( final float content )
1567  {
1568    return h6( ReactNode.of( content ) );
1569  }
1570
1571  @Nonnull
1572  public static ReactNode h6( final double content )
1573  {
1574    return h6( ReactNode.of( content ) );
1575  }
1576
1577  @Nonnull
1578  public static ReactNode h6( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
1579  {
1580    return h6( props, toArray( children ) );
1581  }
1582
1583  @Nonnull
1584  public static ReactNode h6( @Nonnull final Stream<? extends ReactNode> children )
1585  {
1586    return h6( toArray( children ) );
1587  }
1588
1589  @Nonnull
1590  public static ReactNode i()
1591  {
1592    return createElement( "i", null, (ReactNode[]) null );
1593  }
1594
1595  @Nonnull
1596  public static ReactNode i( @Nonnull final HtmlProps props )
1597  {
1598    return createElement( "i", Js.asPropertyMap( props ), (ReactNode[]) null );
1599  }
1600
1601  @Nonnull
1602  public static ReactNode i( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
1603  {
1604    return createElement( "i", Js.asPropertyMap( props ), children );
1605  }
1606
1607  @Nonnull
1608  public static ReactNode i( @Nullable final ReactNode... children )
1609  {
1610    return createElement( "i", null, children );
1611  }
1612
1613  @Nonnull
1614  public static ReactNode i( @Nonnull final HtmlProps props, @Nonnull final String content )
1615  {
1616    return createElement( "i", Js.asPropertyMap( props ), text( content ) );
1617  }
1618
1619  @Nonnull
1620  public static ReactNode i( @Nonnull final String content )
1621  {
1622    return i( ReactNode.of( content ) );
1623  }
1624
1625  @Nonnull
1626  public static ReactNode i( final byte content )
1627  {
1628    return i( ReactNode.of( content ) );
1629  }
1630
1631  @Nonnull
1632  public static ReactNode i( final short content )
1633  {
1634    return i( ReactNode.of( content ) );
1635  }
1636
1637  @Nonnull
1638  public static ReactNode i( final int content )
1639  {
1640    return i( ReactNode.of( content ) );
1641  }
1642
1643  @Nonnull
1644  public static ReactNode i( final long content )
1645  {
1646    return i( ReactNode.of( content ) );
1647  }
1648
1649  @Nonnull
1650  public static ReactNode i( final float content )
1651  {
1652    return i( ReactNode.of( content ) );
1653  }
1654
1655  @Nonnull
1656  public static ReactNode i( final double content )
1657  {
1658    return i( ReactNode.of( content ) );
1659  }
1660
1661  @Nonnull
1662  public static ReactNode i( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
1663  {
1664    return i( props, toArray( children ) );
1665  }
1666
1667  @Nonnull
1668  public static ReactNode i( @Nonnull final Stream<? extends ReactNode> children )
1669  {
1670    return i( toArray( children ) );
1671  }
1672
1673  @Nonnull
1674  public static ReactNode iframe()
1675  {
1676    return createElement( "iframe", null, (ReactNode[]) null );
1677  }
1678
1679  @Nonnull
1680  public static ReactNode iframe( @Nonnull final IFrameProps props )
1681  {
1682    return createElement( "iframe", Js.asPropertyMap( props ), (ReactNode[]) null );
1683  }
1684
1685  @Nonnull
1686  public static ReactNode iframe( @Nonnull final IFrameProps props, @Nullable final ReactNode... children )
1687  {
1688    return createElement( "iframe", Js.asPropertyMap( props ), children );
1689  }
1690
1691  @Nonnull
1692  public static ReactNode iframe( @Nullable final ReactNode... children )
1693  {
1694    return createElement( "iframe", null, children );
1695  }
1696
1697  @Nonnull
1698  public static ReactNode iframe( @Nonnull final IFrameProps props, @Nonnull final String content )
1699  {
1700    return createElement( "iframe", Js.asPropertyMap( props ), text( content ) );
1701  }
1702
1703  @Nonnull
1704  public static ReactNode iframe( @Nonnull final String content )
1705  {
1706    return iframe( ReactNode.of( content ) );
1707  }
1708
1709  @Nonnull
1710  public static ReactNode iframe( final byte content )
1711  {
1712    return iframe( ReactNode.of( content ) );
1713  }
1714
1715  @Nonnull
1716  public static ReactNode iframe( final short content )
1717  {
1718    return iframe( ReactNode.of( content ) );
1719  }
1720
1721  @Nonnull
1722  public static ReactNode iframe( final int content )
1723  {
1724    return iframe( ReactNode.of( content ) );
1725  }
1726
1727  @Nonnull
1728  public static ReactNode iframe( final long content )
1729  {
1730    return iframe( ReactNode.of( content ) );
1731  }
1732
1733  @Nonnull
1734  public static ReactNode iframe( final float content )
1735  {
1736    return iframe( ReactNode.of( content ) );
1737  }
1738
1739  @Nonnull
1740  public static ReactNode iframe( final double content )
1741  {
1742    return iframe( ReactNode.of( content ) );
1743  }
1744
1745  @Nonnull
1746  public static ReactNode iframe( @Nonnull final IFrameProps props, @Nonnull final Stream<? extends ReactNode> children )
1747  {
1748    return iframe( props, toArray( children ) );
1749  }
1750
1751  @Nonnull
1752  public static ReactNode iframe( @Nonnull final Stream<? extends ReactNode> children )
1753  {
1754    return iframe( toArray( children ) );
1755  }
1756
1757  @Nonnull
1758  public static ReactNode img()
1759  {
1760    return createElement( "img", null, (ReactNode[]) null );
1761  }
1762
1763  @Nonnull
1764  public static ReactNode img( @Nonnull final ImgProps props )
1765  {
1766    return createElement( "img", Js.asPropertyMap( props ), (ReactNode[]) null );
1767  }
1768
1769  @Nonnull
1770  public static ReactNode input()
1771  {
1772    return createElement( "input", null, (ReactNode[]) null );
1773  }
1774
1775  @Nonnull
1776  public static ReactNode input( @Nonnull final InputProps props )
1777  {
1778    return createElement( "input", Js.asPropertyMap( props ), (ReactNode[]) null );
1779  }
1780
1781  @Nonnull
1782  public static ReactNode label()
1783  {
1784    return createElement( "label", null, (ReactNode[]) null );
1785  }
1786
1787  @Nonnull
1788  public static ReactNode label( @Nonnull final LabelProps props )
1789  {
1790    return createElement( "label", Js.asPropertyMap( props ), (ReactNode[]) null );
1791  }
1792
1793  @Nonnull
1794  public static ReactNode label( @Nonnull final LabelProps props, @Nullable final ReactNode... children )
1795  {
1796    return createElement( "label", Js.asPropertyMap( props ), children );
1797  }
1798
1799  @Nonnull
1800  public static ReactNode label( @Nullable final ReactNode... children )
1801  {
1802    return createElement( "label", null, children );
1803  }
1804
1805  @Nonnull
1806  public static ReactNode label( @Nonnull final LabelProps props, @Nonnull final String content )
1807  {
1808    return createElement( "label", Js.asPropertyMap( props ), text( content ) );
1809  }
1810
1811  @Nonnull
1812  public static ReactNode label( @Nonnull final String content )
1813  {
1814    return label( ReactNode.of( content ) );
1815  }
1816
1817  @Nonnull
1818  public static ReactNode label( final byte content )
1819  {
1820    return label( ReactNode.of( content ) );
1821  }
1822
1823  @Nonnull
1824  public static ReactNode label( final short content )
1825  {
1826    return label( ReactNode.of( content ) );
1827  }
1828
1829  @Nonnull
1830  public static ReactNode label( final int content )
1831  {
1832    return label( ReactNode.of( content ) );
1833  }
1834
1835  @Nonnull
1836  public static ReactNode label( final long content )
1837  {
1838    return label( ReactNode.of( content ) );
1839  }
1840
1841  @Nonnull
1842  public static ReactNode label( final float content )
1843  {
1844    return label( ReactNode.of( content ) );
1845  }
1846
1847  @Nonnull
1848  public static ReactNode label( final double content )
1849  {
1850    return label( ReactNode.of( content ) );
1851  }
1852
1853  @Nonnull
1854  public static ReactNode label( @Nonnull final LabelProps props, @Nonnull final Stream<? extends ReactNode> children )
1855  {
1856    return label( props, toArray( children ) );
1857  }
1858
1859  @Nonnull
1860  public static ReactNode label( @Nonnull final Stream<? extends ReactNode> children )
1861  {
1862    return label( toArray( children ) );
1863  }
1864
1865  @Nonnull
1866  public static ReactNode li()
1867  {
1868    return createElement( "li", null, (ReactNode[]) null );
1869  }
1870
1871  @Nonnull
1872  public static ReactNode li( @Nonnull final HtmlProps props )
1873  {
1874    return createElement( "li", Js.asPropertyMap( props ), (ReactNode[]) null );
1875  }
1876
1877  @Nonnull
1878  public static ReactNode li( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
1879  {
1880    return createElement( "li", Js.asPropertyMap( props ), children );
1881  }
1882
1883  @Nonnull
1884  public static ReactNode li( @Nullable final ReactNode... children )
1885  {
1886    return createElement( "li", null, children );
1887  }
1888
1889  @Nonnull
1890  public static ReactNode li( @Nonnull final HtmlProps props, @Nonnull final String content )
1891  {
1892    return createElement( "li", Js.asPropertyMap( props ), text( content ) );
1893  }
1894
1895  @Nonnull
1896  public static ReactNode li( @Nonnull final String content )
1897  {
1898    return li( ReactNode.of( content ) );
1899  }
1900
1901  @Nonnull
1902  public static ReactNode li( final byte content )
1903  {
1904    return li( ReactNode.of( content ) );
1905  }
1906
1907  @Nonnull
1908  public static ReactNode li( final short content )
1909  {
1910    return li( ReactNode.of( content ) );
1911  }
1912
1913  @Nonnull
1914  public static ReactNode li( final int content )
1915  {
1916    return li( ReactNode.of( content ) );
1917  }
1918
1919  @Nonnull
1920  public static ReactNode li( final long content )
1921  {
1922    return li( ReactNode.of( content ) );
1923  }
1924
1925  @Nonnull
1926  public static ReactNode li( final float content )
1927  {
1928    return li( ReactNode.of( content ) );
1929  }
1930
1931  @Nonnull
1932  public static ReactNode li( final double content )
1933  {
1934    return li( ReactNode.of( content ) );
1935  }
1936
1937  @Nonnull
1938  public static ReactNode li( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
1939  {
1940    return li( props, toArray( children ) );
1941  }
1942
1943  @Nonnull
1944  public static ReactNode li( @Nonnull final Stream<? extends ReactNode> children )
1945  {
1946    return li( toArray( children ) );
1947  }
1948
1949  @Nonnull
1950  public static ReactNode ol()
1951  {
1952    return createElement( "ol", null, (ReactNode[]) null );
1953  }
1954
1955  @Nonnull
1956  public static ReactNode ol( @Nonnull final HtmlProps props )
1957  {
1958    return createElement( "ol", Js.asPropertyMap( props ), (ReactNode[]) null );
1959  }
1960
1961  @Nonnull
1962  public static ReactNode ol( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
1963  {
1964    return createElement( "ol", Js.asPropertyMap( props ), children );
1965  }
1966
1967  @Nonnull
1968  public static ReactNode ol( @Nullable final ReactNode... children )
1969  {
1970    return createElement( "ol", null, children );
1971  }
1972
1973  @Nonnull
1974  public static ReactNode ol( @Nonnull final HtmlProps props, @Nonnull final String content )
1975  {
1976    return createElement( "ol", Js.asPropertyMap( props ), text( content ) );
1977  }
1978
1979  @Nonnull
1980  public static ReactNode ol( @Nonnull final String content )
1981  {
1982    return ol( ReactNode.of( content ) );
1983  }
1984
1985  @Nonnull
1986  public static ReactNode ol( final byte content )
1987  {
1988    return ol( ReactNode.of( content ) );
1989  }
1990
1991  @Nonnull
1992  public static ReactNode ol( final short content )
1993  {
1994    return ol( ReactNode.of( content ) );
1995  }
1996
1997  @Nonnull
1998  public static ReactNode ol( final int content )
1999  {
2000    return ol( ReactNode.of( content ) );
2001  }
2002
2003  @Nonnull
2004  public static ReactNode ol( final long content )
2005  {
2006    return ol( ReactNode.of( content ) );
2007  }
2008
2009  @Nonnull
2010  public static ReactNode ol( final float content )
2011  {
2012    return ol( ReactNode.of( content ) );
2013  }
2014
2015  @Nonnull
2016  public static ReactNode ol( final double content )
2017  {
2018    return ol( ReactNode.of( content ) );
2019  }
2020
2021  @Nonnull
2022  public static ReactNode ol( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
2023  {
2024    return ol( props, toArray( children ) );
2025  }
2026
2027  @Nonnull
2028  public static ReactNode ol( @Nonnull final Stream<? extends ReactNode> children )
2029  {
2030    return ol( toArray( children ) );
2031  }
2032
2033  @Nonnull
2034  public static ReactNode option()
2035  {
2036    return createElement( "option", null, (ReactNode[]) null );
2037  }
2038
2039  @Nonnull
2040  public static ReactNode option( @Nonnull final OptionProps props )
2041  {
2042    return createElement( "option", Js.asPropertyMap( props ), (ReactNode[]) null );
2043  }
2044
2045  @Nonnull
2046  public static ReactNode option( @Nonnull final OptionProps props, @Nullable final ReactNode... children )
2047  {
2048    return createElement( "option", Js.asPropertyMap( props ), children );
2049  }
2050
2051  @Nonnull
2052  public static ReactNode option( @Nullable final ReactNode... children )
2053  {
2054    return createElement( "option", null, children );
2055  }
2056
2057  @Nonnull
2058  public static ReactNode option( @Nonnull final OptionProps props, @Nonnull final String content )
2059  {
2060    return createElement( "option", Js.asPropertyMap( props ), text( content ) );
2061  }
2062
2063  @Nonnull
2064  public static ReactNode option( @Nonnull final String content )
2065  {
2066    return option( ReactNode.of( content ) );
2067  }
2068
2069  @Nonnull
2070  public static ReactNode option( final byte content )
2071  {
2072    return option( ReactNode.of( content ) );
2073  }
2074
2075  @Nonnull
2076  public static ReactNode option( final short content )
2077  {
2078    return option( ReactNode.of( content ) );
2079  }
2080
2081  @Nonnull
2082  public static ReactNode option( final int content )
2083  {
2084    return option( ReactNode.of( content ) );
2085  }
2086
2087  @Nonnull
2088  public static ReactNode option( final long content )
2089  {
2090    return option( ReactNode.of( content ) );
2091  }
2092
2093  @Nonnull
2094  public static ReactNode option( final float content )
2095  {
2096    return option( ReactNode.of( content ) );
2097  }
2098
2099  @Nonnull
2100  public static ReactNode option( final double content )
2101  {
2102    return option( ReactNode.of( content ) );
2103  }
2104
2105  @Nonnull
2106  public static ReactNode option( @Nonnull final OptionProps props, @Nonnull final Stream<? extends ReactNode> children )
2107  {
2108    return option( props, toArray( children ) );
2109  }
2110
2111  @Nonnull
2112  public static ReactNode option( @Nonnull final Stream<? extends ReactNode> children )
2113  {
2114    return option( toArray( children ) );
2115  }
2116
2117  @Nonnull
2118  public static ReactNode optgroup()
2119  {
2120    return createElement( "optgroup", null, (ReactNode[]) null );
2121  }
2122
2123  @Nonnull
2124  public static ReactNode optgroup( @Nonnull final OptGroupProps props )
2125  {
2126    return createElement( "optgroup", Js.asPropertyMap( props ), (ReactNode[]) null );
2127  }
2128
2129  @Nonnull
2130  public static ReactNode optgroup( @Nonnull final OptGroupProps props, @Nullable final ReactNode... children )
2131  {
2132    return createElement( "optgroup", Js.asPropertyMap( props ), children );
2133  }
2134
2135  @Nonnull
2136  public static ReactNode optgroup( @Nullable final ReactNode... children )
2137  {
2138    return createElement( "optgroup", null, children );
2139  }
2140
2141  @Nonnull
2142  public static ReactNode optgroup( @Nonnull final OptGroupProps props, @Nonnull final String content )
2143  {
2144    return createElement( "optgroup", Js.asPropertyMap( props ), text( content ) );
2145  }
2146
2147  @Nonnull
2148  public static ReactNode optgroup( @Nonnull final String content )
2149  {
2150    return optgroup( ReactNode.of( content ) );
2151  }
2152
2153  @Nonnull
2154  public static ReactNode optgroup( final byte content )
2155  {
2156    return optgroup( ReactNode.of( content ) );
2157  }
2158
2159  @Nonnull
2160  public static ReactNode optgroup( final short content )
2161  {
2162    return optgroup( ReactNode.of( content ) );
2163  }
2164
2165  @Nonnull
2166  public static ReactNode optgroup( final int content )
2167  {
2168    return optgroup( ReactNode.of( content ) );
2169  }
2170
2171  @Nonnull
2172  public static ReactNode optgroup( final long content )
2173  {
2174    return optgroup( ReactNode.of( content ) );
2175  }
2176
2177  @Nonnull
2178  public static ReactNode optgroup( final float content )
2179  {
2180    return optgroup( ReactNode.of( content ) );
2181  }
2182
2183  @Nonnull
2184  public static ReactNode optgroup( final double content )
2185  {
2186    return optgroup( ReactNode.of( content ) );
2187  }
2188
2189  @Nonnull
2190  public static ReactNode optgroup( @Nonnull final OptGroupProps props, @Nonnull final Stream<? extends ReactNode> children )
2191  {
2192    return optgroup( props, toArray( children ) );
2193  }
2194
2195  @Nonnull
2196  public static ReactNode optgroup( @Nonnull final Stream<? extends ReactNode> children )
2197  {
2198    return optgroup( toArray( children ) );
2199  }
2200
2201  @Nonnull
2202  public static ReactNode p()
2203  {
2204    return createElement( "p", null, (ReactNode[]) null );
2205  }
2206
2207  @Nonnull
2208  public static ReactNode p( @Nonnull final HtmlProps props )
2209  {
2210    return createElement( "p", Js.asPropertyMap( props ), (ReactNode[]) null );
2211  }
2212
2213  @Nonnull
2214  public static ReactNode p( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
2215  {
2216    return createElement( "p", Js.asPropertyMap( props ), children );
2217  }
2218
2219  @Nonnull
2220  public static ReactNode p( @Nullable final ReactNode... children )
2221  {
2222    return createElement( "p", null, children );
2223  }
2224
2225  @Nonnull
2226  public static ReactNode p( @Nonnull final HtmlProps props, @Nonnull final String content )
2227  {
2228    return createElement( "p", Js.asPropertyMap( props ), text( content ) );
2229  }
2230
2231  @Nonnull
2232  public static ReactNode p( @Nonnull final String content )
2233  {
2234    return p( ReactNode.of( content ) );
2235  }
2236
2237  @Nonnull
2238  public static ReactNode p( final byte content )
2239  {
2240    return p( ReactNode.of( content ) );
2241  }
2242
2243  @Nonnull
2244  public static ReactNode p( final short content )
2245  {
2246    return p( ReactNode.of( content ) );
2247  }
2248
2249  @Nonnull
2250  public static ReactNode p( final int content )
2251  {
2252    return p( ReactNode.of( content ) );
2253  }
2254
2255  @Nonnull
2256  public static ReactNode p( final long content )
2257  {
2258    return p( ReactNode.of( content ) );
2259  }
2260
2261  @Nonnull
2262  public static ReactNode p( final float content )
2263  {
2264    return p( ReactNode.of( content ) );
2265  }
2266
2267  @Nonnull
2268  public static ReactNode p( final double content )
2269  {
2270    return p( ReactNode.of( content ) );
2271  }
2272
2273  @Nonnull
2274  public static ReactNode p( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
2275  {
2276    return p( props, toArray( children ) );
2277  }
2278
2279  @Nonnull
2280  public static ReactNode p( @Nonnull final Stream<? extends ReactNode> children )
2281  {
2282    return p( toArray( children ) );
2283  }
2284
2285  @Nonnull
2286  public static ReactNode span()
2287  {
2288    return createElement( "span", null, (ReactNode[]) null );
2289  }
2290
2291  @Nonnull
2292  public static ReactNode span( @Nonnull final HtmlProps props )
2293  {
2294    return createElement( "span", Js.asPropertyMap( props ), (ReactNode[]) null );
2295  }
2296
2297  @Nonnull
2298  public static ReactNode span( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
2299  {
2300    return createElement( "span", Js.asPropertyMap( props ), children );
2301  }
2302
2303  @Nonnull
2304  public static ReactNode span( @Nullable final ReactNode... children )
2305  {
2306    return createElement( "span", null, children );
2307  }
2308
2309  @Nonnull
2310  public static ReactNode span( @Nonnull final HtmlProps props, @Nonnull final String content )
2311  {
2312    return createElement( "span", Js.asPropertyMap( props ), text( content ) );
2313  }
2314
2315  @Nonnull
2316  public static ReactNode span( @Nonnull final String content )
2317  {
2318    return span( ReactNode.of( content ) );
2319  }
2320
2321  @Nonnull
2322  public static ReactNode span( final byte content )
2323  {
2324    return span( ReactNode.of( content ) );
2325  }
2326
2327  @Nonnull
2328  public static ReactNode span( final short content )
2329  {
2330    return span( ReactNode.of( content ) );
2331  }
2332
2333  @Nonnull
2334  public static ReactNode span( final int content )
2335  {
2336    return span( ReactNode.of( content ) );
2337  }
2338
2339  @Nonnull
2340  public static ReactNode span( final long content )
2341  {
2342    return span( ReactNode.of( content ) );
2343  }
2344
2345  @Nonnull
2346  public static ReactNode span( final float content )
2347  {
2348    return span( ReactNode.of( content ) );
2349  }
2350
2351  @Nonnull
2352  public static ReactNode span( final double content )
2353  {
2354    return span( ReactNode.of( content ) );
2355  }
2356
2357  @Nonnull
2358  public static ReactNode span( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
2359  {
2360    return span( props, toArray( children ) );
2361  }
2362
2363  @Nonnull
2364  public static ReactNode span( @Nonnull final Stream<? extends ReactNode> children )
2365  {
2366    return span( toArray( children ) );
2367  }
2368
2369  @Nonnull
2370  public static ReactNode select()
2371  {
2372    return createElement( "select", null, (ReactNode[]) null );
2373  }
2374
2375  @Nonnull
2376  public static ReactNode select( @Nonnull final SelectProps props )
2377  {
2378    return createElement( "select", Js.asPropertyMap( props ), (ReactNode[]) null );
2379  }
2380
2381  @Nonnull
2382  public static ReactNode select( @Nonnull final SelectProps props, @Nullable final ReactNode... children )
2383  {
2384    return createElement( "select", Js.asPropertyMap( props ), children );
2385  }
2386
2387  @Nonnull
2388  public static ReactNode select( @Nullable final ReactNode... children )
2389  {
2390    return createElement( "select", null, children );
2391  }
2392
2393  @Nonnull
2394  public static ReactNode select( @Nonnull final SelectProps props, @Nonnull final String content )
2395  {
2396    return createElement( "select", Js.asPropertyMap( props ), text( content ) );
2397  }
2398
2399  @Nonnull
2400  public static ReactNode select( @Nonnull final String content )
2401  {
2402    return select( ReactNode.of( content ) );
2403  }
2404
2405  @Nonnull
2406  public static ReactNode select( final byte content )
2407  {
2408    return select( ReactNode.of( content ) );
2409  }
2410
2411  @Nonnull
2412  public static ReactNode select( final short content )
2413  {
2414    return select( ReactNode.of( content ) );
2415  }
2416
2417  @Nonnull
2418  public static ReactNode select( final int content )
2419  {
2420    return select( ReactNode.of( content ) );
2421  }
2422
2423  @Nonnull
2424  public static ReactNode select( final long content )
2425  {
2426    return select( ReactNode.of( content ) );
2427  }
2428
2429  @Nonnull
2430  public static ReactNode select( final float content )
2431  {
2432    return select( ReactNode.of( content ) );
2433  }
2434
2435  @Nonnull
2436  public static ReactNode select( final double content )
2437  {
2438    return select( ReactNode.of( content ) );
2439  }
2440
2441  @Nonnull
2442  public static ReactNode select( @Nonnull final SelectProps props, @Nonnull final Stream<? extends ReactNode> children )
2443  {
2444    return select( props, toArray( children ) );
2445  }
2446
2447  @Nonnull
2448  public static ReactNode select( @Nonnull final Stream<? extends ReactNode> children )
2449  {
2450    return select( toArray( children ) );
2451  }
2452
2453  @Nonnull
2454  public static ReactNode section()
2455  {
2456    return createElement( "section", null, (ReactNode[]) null );
2457  }
2458
2459  @Nonnull
2460  public static ReactNode section( @Nonnull final HtmlProps props )
2461  {
2462    return createElement( "section", Js.asPropertyMap( props ), (ReactNode[]) null );
2463  }
2464
2465  @Nonnull
2466  public static ReactNode section( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
2467  {
2468    return createElement( "section", Js.asPropertyMap( props ), children );
2469  }
2470
2471  @Nonnull
2472  public static ReactNode section( @Nullable final ReactNode... children )
2473  {
2474    return createElement( "section", null, children );
2475  }
2476
2477  @Nonnull
2478  public static ReactNode section( @Nonnull final HtmlProps props, @Nonnull final String content )
2479  {
2480    return createElement( "section", Js.asPropertyMap( props ), text( content ) );
2481  }
2482
2483  @Nonnull
2484  public static ReactNode section( @Nonnull final String content )
2485  {
2486    return section( ReactNode.of( content ) );
2487  }
2488
2489  @Nonnull
2490  public static ReactNode section( final byte content )
2491  {
2492    return section( ReactNode.of( content ) );
2493  }
2494
2495  @Nonnull
2496  public static ReactNode section( final short content )
2497  {
2498    return section( ReactNode.of( content ) );
2499  }
2500
2501  @Nonnull
2502  public static ReactNode section( final int content )
2503  {
2504    return section( ReactNode.of( content ) );
2505  }
2506
2507  @Nonnull
2508  public static ReactNode section( final long content )
2509  {
2510    return section( ReactNode.of( content ) );
2511  }
2512
2513  @Nonnull
2514  public static ReactNode section( final float content )
2515  {
2516    return section( ReactNode.of( content ) );
2517  }
2518
2519  @Nonnull
2520  public static ReactNode section( final double content )
2521  {
2522    return section( ReactNode.of( content ) );
2523  }
2524
2525  @Nonnull
2526  public static ReactNode section( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
2527  {
2528    return section( props, toArray( children ) );
2529  }
2530
2531  @Nonnull
2532  public static ReactNode section( @Nonnull final Stream<? extends ReactNode> children )
2533  {
2534    return section( toArray( children ) );
2535  }
2536
2537  @Nonnull
2538  public static ReactNode strong()
2539  {
2540    return createElement( "strong", null, (ReactNode[]) null );
2541  }
2542
2543  @Nonnull
2544  public static ReactNode strong( @Nonnull final HtmlProps props )
2545  {
2546    return createElement( "strong", Js.asPropertyMap( props ), (ReactNode[]) null );
2547  }
2548
2549  @Nonnull
2550  public static ReactNode strong( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
2551  {
2552    return createElement( "strong", Js.asPropertyMap( props ), children );
2553  }
2554
2555  @Nonnull
2556  public static ReactNode strong( @Nullable final ReactNode... children )
2557  {
2558    return createElement( "strong", null, children );
2559  }
2560
2561  @Nonnull
2562  public static ReactNode strong( @Nonnull final HtmlProps props, @Nonnull final String content )
2563  {
2564    return createElement( "strong", Js.asPropertyMap( props ), text( content ) );
2565  }
2566
2567  @Nonnull
2568  public static ReactNode strong( @Nonnull final String content )
2569  {
2570    return strong( ReactNode.of( content ) );
2571  }
2572
2573  @Nonnull
2574  public static ReactNode strong( final byte content )
2575  {
2576    return strong( ReactNode.of( content ) );
2577  }
2578
2579  @Nonnull
2580  public static ReactNode strong( final short content )
2581  {
2582    return strong( ReactNode.of( content ) );
2583  }
2584
2585  @Nonnull
2586  public static ReactNode strong( final int content )
2587  {
2588    return strong( ReactNode.of( content ) );
2589  }
2590
2591  @Nonnull
2592  public static ReactNode strong( final long content )
2593  {
2594    return strong( ReactNode.of( content ) );
2595  }
2596
2597  @Nonnull
2598  public static ReactNode strong( final float content )
2599  {
2600    return strong( ReactNode.of( content ) );
2601  }
2602
2603  @Nonnull
2604  public static ReactNode strong( final double content )
2605  {
2606    return strong( ReactNode.of( content ) );
2607  }
2608
2609  @Nonnull
2610  public static ReactNode strong( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
2611  {
2612    return strong( props, toArray( children ) );
2613  }
2614
2615  @Nonnull
2616  public static ReactNode strong( @Nonnull final Stream<? extends ReactNode> children )
2617  {
2618    return strong( toArray( children ) );
2619  }
2620
2621  @Nonnull
2622  public static ReactNode source()
2623  {
2624    return createElement( "source", null, (ReactNode[]) null );
2625  }
2626
2627  @Nonnull
2628  public static ReactNode source( @Nonnull final SourceProps props )
2629  {
2630    return createElement( "source", Js.asPropertyMap( props ), (ReactNode[]) null );
2631  }
2632
2633  @Nonnull
2634  public static ReactNode table()
2635  {
2636    return createElement( "table", null, (ReactNode[]) null );
2637  }
2638
2639  @Nonnull
2640  public static ReactNode table( @Nonnull final HtmlProps props )
2641  {
2642    return createElement( "table", Js.asPropertyMap( props ), (ReactNode[]) null );
2643  }
2644
2645  @Nonnull
2646  public static ReactNode table( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
2647  {
2648    return createElement( "table", Js.asPropertyMap( props ), children );
2649  }
2650
2651  @Nonnull
2652  public static ReactNode table( @Nullable final ReactNode... children )
2653  {
2654    return createElement( "table", null, children );
2655  }
2656
2657  @Nonnull
2658  public static ReactNode table( @Nonnull final HtmlProps props, @Nonnull final String content )
2659  {
2660    return createElement( "table", Js.asPropertyMap( props ), text( content ) );
2661  }
2662
2663  @Nonnull
2664  public static ReactNode table( @Nonnull final String content )
2665  {
2666    return table( ReactNode.of( content ) );
2667  }
2668
2669  @Nonnull
2670  public static ReactNode table( final byte content )
2671  {
2672    return table( ReactNode.of( content ) );
2673  }
2674
2675  @Nonnull
2676  public static ReactNode table( final short content )
2677  {
2678    return table( ReactNode.of( content ) );
2679  }
2680
2681  @Nonnull
2682  public static ReactNode table( final int content )
2683  {
2684    return table( ReactNode.of( content ) );
2685  }
2686
2687  @Nonnull
2688  public static ReactNode table( final long content )
2689  {
2690    return table( ReactNode.of( content ) );
2691  }
2692
2693  @Nonnull
2694  public static ReactNode table( final float content )
2695  {
2696    return table( ReactNode.of( content ) );
2697  }
2698
2699  @Nonnull
2700  public static ReactNode table( final double content )
2701  {
2702    return table( ReactNode.of( content ) );
2703  }
2704
2705  @Nonnull
2706  public static ReactNode table( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
2707  {
2708    return table( props, toArray( children ) );
2709  }
2710
2711  @Nonnull
2712  public static ReactNode table( @Nonnull final Stream<? extends ReactNode> children )
2713  {
2714    return table( toArray( children ) );
2715  }
2716
2717  @Nonnull
2718  public static ReactNode textarea()
2719  {
2720    return createElement( "textarea", null, (ReactNode[]) null );
2721  }
2722
2723  @Nonnull
2724  public static ReactNode textarea( @Nonnull final TextAreaProps props )
2725  {
2726    return createElement( "textarea", Js.asPropertyMap( props ), (ReactNode[]) null );
2727  }
2728
2729  @Nonnull
2730  public static ReactNode tbody()
2731  {
2732    return createElement( "tbody", null, (ReactNode[]) null );
2733  }
2734
2735  @Nonnull
2736  public static ReactNode tbody( @Nonnull final HtmlProps props )
2737  {
2738    return createElement( "tbody", Js.asPropertyMap( props ), (ReactNode[]) null );
2739  }
2740
2741  @Nonnull
2742  public static ReactNode tbody( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
2743  {
2744    return createElement( "tbody", Js.asPropertyMap( props ), children );
2745  }
2746
2747  @Nonnull
2748  public static ReactNode tbody( @Nullable final ReactNode... children )
2749  {
2750    return createElement( "tbody", null, children );
2751  }
2752
2753  @Nonnull
2754  public static ReactNode tbody( @Nonnull final HtmlProps props, @Nonnull final String content )
2755  {
2756    return createElement( "tbody", Js.asPropertyMap( props ), text( content ) );
2757  }
2758
2759  @Nonnull
2760  public static ReactNode tbody( @Nonnull final String content )
2761  {
2762    return tbody( ReactNode.of( content ) );
2763  }
2764
2765  @Nonnull
2766  public static ReactNode tbody( final byte content )
2767  {
2768    return tbody( ReactNode.of( content ) );
2769  }
2770
2771  @Nonnull
2772  public static ReactNode tbody( final short content )
2773  {
2774    return tbody( ReactNode.of( content ) );
2775  }
2776
2777  @Nonnull
2778  public static ReactNode tbody( final int content )
2779  {
2780    return tbody( ReactNode.of( content ) );
2781  }
2782
2783  @Nonnull
2784  public static ReactNode tbody( final long content )
2785  {
2786    return tbody( ReactNode.of( content ) );
2787  }
2788
2789  @Nonnull
2790  public static ReactNode tbody( final float content )
2791  {
2792    return tbody( ReactNode.of( content ) );
2793  }
2794
2795  @Nonnull
2796  public static ReactNode tbody( final double content )
2797  {
2798    return tbody( ReactNode.of( content ) );
2799  }
2800
2801  @Nonnull
2802  public static ReactNode tbody( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
2803  {
2804    return tbody( props, toArray( children ) );
2805  }
2806
2807  @Nonnull
2808  public static ReactNode tbody( @Nonnull final Stream<? extends ReactNode> children )
2809  {
2810    return tbody( toArray( children ) );
2811  }
2812
2813  @Nonnull
2814  public static ReactNode td()
2815  {
2816    return createElement( "td", null, (ReactNode[]) null );
2817  }
2818
2819  @Nonnull
2820  public static ReactNode td( @Nonnull final TdProps props )
2821  {
2822    return createElement( "td", Js.asPropertyMap( props ), (ReactNode[]) null );
2823  }
2824
2825  @Nonnull
2826  public static ReactNode td( @Nonnull final TdProps props, @Nullable final ReactNode... children )
2827  {
2828    return createElement( "td", Js.asPropertyMap( props ), children );
2829  }
2830
2831  @Nonnull
2832  public static ReactNode td( @Nullable final ReactNode... children )
2833  {
2834    return createElement( "td", null, children );
2835  }
2836
2837  @Nonnull
2838  public static ReactNode td( @Nonnull final TdProps props, @Nonnull final String content )
2839  {
2840    return createElement( "td", Js.asPropertyMap( props ), text( content ) );
2841  }
2842
2843  @Nonnull
2844  public static ReactNode td( @Nonnull final String content )
2845  {
2846    return td( ReactNode.of( content ) );
2847  }
2848
2849  @Nonnull
2850  public static ReactNode td( final byte content )
2851  {
2852    return td( ReactNode.of( content ) );
2853  }
2854
2855  @Nonnull
2856  public static ReactNode td( final short content )
2857  {
2858    return td( ReactNode.of( content ) );
2859  }
2860
2861  @Nonnull
2862  public static ReactNode td( final int content )
2863  {
2864    return td( ReactNode.of( content ) );
2865  }
2866
2867  @Nonnull
2868  public static ReactNode td( final long content )
2869  {
2870    return td( ReactNode.of( content ) );
2871  }
2872
2873  @Nonnull
2874  public static ReactNode td( final float content )
2875  {
2876    return td( ReactNode.of( content ) );
2877  }
2878
2879  @Nonnull
2880  public static ReactNode td( final double content )
2881  {
2882    return td( ReactNode.of( content ) );
2883  }
2884
2885  @Nonnull
2886  public static ReactNode td( @Nonnull final TdProps props, @Nonnull final Stream<? extends ReactNode> children )
2887  {
2888    return td( props, toArray( children ) );
2889  }
2890
2891  @Nonnull
2892  public static ReactNode td( @Nonnull final Stream<? extends ReactNode> children )
2893  {
2894    return td( toArray( children ) );
2895  }
2896
2897  @Nonnull
2898  public static ReactNode th()
2899  {
2900    return createElement( "th", null, (ReactNode[]) null );
2901  }
2902
2903  @Nonnull
2904  public static ReactNode th( @Nonnull final ThProps props )
2905  {
2906    return createElement( "th", Js.asPropertyMap( props ), (ReactNode[]) null );
2907  }
2908
2909  @Nonnull
2910  public static ReactNode th( @Nonnull final ThProps props, @Nullable final ReactNode... children )
2911  {
2912    return createElement( "th", Js.asPropertyMap( props ), children );
2913  }
2914
2915  @Nonnull
2916  public static ReactNode th( @Nullable final ReactNode... children )
2917  {
2918    return createElement( "th", null, children );
2919  }
2920
2921  @Nonnull
2922  public static ReactNode th( @Nonnull final ThProps props, @Nonnull final String content )
2923  {
2924    return createElement( "th", Js.asPropertyMap( props ), text( content ) );
2925  }
2926
2927  @Nonnull
2928  public static ReactNode th( @Nonnull final String content )
2929  {
2930    return th( ReactNode.of( content ) );
2931  }
2932
2933  @Nonnull
2934  public static ReactNode th( final byte content )
2935  {
2936    return th( ReactNode.of( content ) );
2937  }
2938
2939  @Nonnull
2940  public static ReactNode th( final short content )
2941  {
2942    return th( ReactNode.of( content ) );
2943  }
2944
2945  @Nonnull
2946  public static ReactNode th( final int content )
2947  {
2948    return th( ReactNode.of( content ) );
2949  }
2950
2951  @Nonnull
2952  public static ReactNode th( final long content )
2953  {
2954    return th( ReactNode.of( content ) );
2955  }
2956
2957  @Nonnull
2958  public static ReactNode th( final float content )
2959  {
2960    return th( ReactNode.of( content ) );
2961  }
2962
2963  @Nonnull
2964  public static ReactNode th( final double content )
2965  {
2966    return th( ReactNode.of( content ) );
2967  }
2968
2969  @Nonnull
2970  public static ReactNode th( @Nonnull final ThProps props, @Nonnull final Stream<? extends ReactNode> children )
2971  {
2972    return th( props, toArray( children ) );
2973  }
2974
2975  @Nonnull
2976  public static ReactNode th( @Nonnull final Stream<? extends ReactNode> children )
2977  {
2978    return th( toArray( children ) );
2979  }
2980
2981  @Nonnull
2982  public static ReactNode thead()
2983  {
2984    return createElement( "thead", null, (ReactNode[]) null );
2985  }
2986
2987  @Nonnull
2988  public static ReactNode thead( @Nonnull final HtmlProps props )
2989  {
2990    return createElement( "thead", Js.asPropertyMap( props ), (ReactNode[]) null );
2991  }
2992
2993  @Nonnull
2994  public static ReactNode thead( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
2995  {
2996    return createElement( "thead", Js.asPropertyMap( props ), children );
2997  }
2998
2999  @Nonnull
3000  public static ReactNode thead( @Nullable final ReactNode... children )
3001  {
3002    return createElement( "thead", null, children );
3003  }
3004
3005  @Nonnull
3006  public static ReactNode thead( @Nonnull final HtmlProps props, @Nonnull final String content )
3007  {
3008    return createElement( "thead", Js.asPropertyMap( props ), text( content ) );
3009  }
3010
3011  @Nonnull
3012  public static ReactNode thead( @Nonnull final String content )
3013  {
3014    return thead( ReactNode.of( content ) );
3015  }
3016
3017  @Nonnull
3018  public static ReactNode thead( final byte content )
3019  {
3020    return thead( ReactNode.of( content ) );
3021  }
3022
3023  @Nonnull
3024  public static ReactNode thead( final short content )
3025  {
3026    return thead( ReactNode.of( content ) );
3027  }
3028
3029  @Nonnull
3030  public static ReactNode thead( final int content )
3031  {
3032    return thead( ReactNode.of( content ) );
3033  }
3034
3035  @Nonnull
3036  public static ReactNode thead( final long content )
3037  {
3038    return thead( ReactNode.of( content ) );
3039  }
3040
3041  @Nonnull
3042  public static ReactNode thead( final float content )
3043  {
3044    return thead( ReactNode.of( content ) );
3045  }
3046
3047  @Nonnull
3048  public static ReactNode thead( final double content )
3049  {
3050    return thead( ReactNode.of( content ) );
3051  }
3052
3053  @Nonnull
3054  public static ReactNode thead( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
3055  {
3056    return thead( props, toArray( children ) );
3057  }
3058
3059  @Nonnull
3060  public static ReactNode thead( @Nonnull final Stream<? extends ReactNode> children )
3061  {
3062    return thead( toArray( children ) );
3063  }
3064
3065  @Nonnull
3066  public static ReactNode tr()
3067  {
3068    return createElement( "tr", null, (ReactNode[]) null );
3069  }
3070
3071  @Nonnull
3072  public static ReactNode tr( @Nonnull final HtmlProps props )
3073  {
3074    return createElement( "tr", Js.asPropertyMap( props ), (ReactNode[]) null );
3075  }
3076
3077  @Nonnull
3078  public static ReactNode tr( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
3079  {
3080    return createElement( "tr", Js.asPropertyMap( props ), children );
3081  }
3082
3083  @Nonnull
3084  public static ReactNode tr( @Nullable final ReactNode... children )
3085  {
3086    return createElement( "tr", null, children );
3087  }
3088
3089  @Nonnull
3090  public static ReactNode tr( @Nonnull final HtmlProps props, @Nonnull final String content )
3091  {
3092    return createElement( "tr", Js.asPropertyMap( props ), text( content ) );
3093  }
3094
3095  @Nonnull
3096  public static ReactNode tr( @Nonnull final String content )
3097  {
3098    return tr( ReactNode.of( content ) );
3099  }
3100
3101  @Nonnull
3102  public static ReactNode tr( final byte content )
3103  {
3104    return tr( ReactNode.of( content ) );
3105  }
3106
3107  @Nonnull
3108  public static ReactNode tr( final short content )
3109  {
3110    return tr( ReactNode.of( content ) );
3111  }
3112
3113  @Nonnull
3114  public static ReactNode tr( final int content )
3115  {
3116    return tr( ReactNode.of( content ) );
3117  }
3118
3119  @Nonnull
3120  public static ReactNode tr( final long content )
3121  {
3122    return tr( ReactNode.of( content ) );
3123  }
3124
3125  @Nonnull
3126  public static ReactNode tr( final float content )
3127  {
3128    return tr( ReactNode.of( content ) );
3129  }
3130
3131  @Nonnull
3132  public static ReactNode tr( final double content )
3133  {
3134    return tr( ReactNode.of( content ) );
3135  }
3136
3137  @Nonnull
3138  public static ReactNode tr( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
3139  {
3140    return tr( props, toArray( children ) );
3141  }
3142
3143  @Nonnull
3144  public static ReactNode tr( @Nonnull final Stream<? extends ReactNode> children )
3145  {
3146    return tr( toArray( children ) );
3147  }
3148
3149  @Nonnull
3150  public static ReactNode ul()
3151  {
3152    return createElement( "ul", null, (ReactNode[]) null );
3153  }
3154
3155  @Nonnull
3156  public static ReactNode ul( @Nonnull final HtmlProps props )
3157  {
3158    return createElement( "ul", Js.asPropertyMap( props ), (ReactNode[]) null );
3159  }
3160
3161  @Nonnull
3162  public static ReactNode ul( @Nonnull final HtmlProps props, @Nullable final ReactNode... children )
3163  {
3164    return createElement( "ul", Js.asPropertyMap( props ), children );
3165  }
3166
3167  @Nonnull
3168  public static ReactNode ul( @Nullable final ReactNode... children )
3169  {
3170    return createElement( "ul", null, children );
3171  }
3172
3173  @Nonnull
3174  public static ReactNode ul( @Nonnull final HtmlProps props, @Nonnull final String content )
3175  {
3176    return createElement( "ul", Js.asPropertyMap( props ), text( content ) );
3177  }
3178
3179  @Nonnull
3180  public static ReactNode ul( @Nonnull final String content )
3181  {
3182    return ul( ReactNode.of( content ) );
3183  }
3184
3185  @Nonnull
3186  public static ReactNode ul( final byte content )
3187  {
3188    return ul( ReactNode.of( content ) );
3189  }
3190
3191  @Nonnull
3192  public static ReactNode ul( final short content )
3193  {
3194    return ul( ReactNode.of( content ) );
3195  }
3196
3197  @Nonnull
3198  public static ReactNode ul( final int content )
3199  {
3200    return ul( ReactNode.of( content ) );
3201  }
3202
3203  @Nonnull
3204  public static ReactNode ul( final long content )
3205  {
3206    return ul( ReactNode.of( content ) );
3207  }
3208
3209  @Nonnull
3210  public static ReactNode ul( final float content )
3211  {
3212    return ul( ReactNode.of( content ) );
3213  }
3214
3215  @Nonnull
3216  public static ReactNode ul( final double content )
3217  {
3218    return ul( ReactNode.of( content ) );
3219  }
3220
3221  @Nonnull
3222  public static ReactNode ul( @Nonnull final HtmlProps props, @Nonnull final Stream<? extends ReactNode> children )
3223  {
3224    return ul( props, toArray( children ) );
3225  }
3226
3227  @Nonnull
3228  public static ReactNode ul( @Nonnull final Stream<? extends ReactNode> children )
3229  {
3230    return ul( toArray( children ) );
3231  }
3232
3233  /**
3234   * Create and return a new ReactElement of the given type with specified children.
3235   *
3236   * @param type     A HTML tag name (eg. 'div', 'span', etc)
3237   * @param props    The props to pass to the element.
3238   * @param children The child elements.
3239   * @return the created ReactElement
3240   */
3241  @Nonnull
3242  private static ReactElement createElement( @Nonnull final String type, @Nullable final JsPropertyMap<Object> props, @Nullable final ReactNode... children )
3243  {
3244    final JsPropertyMap<Object> actual = JsPropertyMap.of();
3245    String key = null;
3246    Object ref = null;
3247    if ( null != props )
3248    {
3249      key = props.has( "key" ) ? Js.asString( props.get( "key" ) ) : null;
3250      ref = props.has( "ref" ) ? props.get( "ref" ) : null;
3251      props.forEach( p -> {
3252        // In future we can probably remove this check when/if components are creating elements directly
3253        // and can thus guarantee that these keys are not part of props.
3254        if ( !p.equals( "key" ) && !p.equals( "ref" ) )
3255        {
3256          actual.set( p, props.get( p ) );
3257        }
3258      } );
3259    }
3260    // In a future iteration if we re-write the reconciler we should probably ensure that shape of ReactElement
3261    // is always consistent and is either null or always an array element.
3262    if ( null != children && children.length > 0 )
3263    {
3264      if ( 1 == children.length )
3265      {
3266        actual.set( "children", children[ 0 ] );
3267      }
3268      else
3269      {
3270        actual.set( "children", children );
3271      }
3272    }
3273    return ReactElement.createHostElement( type, key, ref, actual );
3274  }
3275
3276  @Nonnull
3277  private static ReactNode[] toArray( @Nonnull final Stream<? extends ReactNode> children )
3278  {
3279    return Objects.requireNonNull( children ).toArray( ReactNode[]::new );
3280  }
3281}