Test hydration behavior across React versions and build modes
This container shows the live DOM state during hydration
// server <div />
// client <span />
// server <> <span key="a" /> </>
// client <> <span key="a" /> <span key="b" /> </>
// server <div id="foo" />
// client <div />
// server <div />
// client <div id="foo" />
// server <div id="foo" />
// client <div id="bar" />
// server <div><div id="foo" /></div>
// client <div suppressHydrationWarning><div id="bar" /></div>
// server
<div style={{width: '1px'}} />// client <div />
// server <div />
// client
<div style={{width: '1px'}} />// server
<div style={{width: '1px'}} />// client
<div style={{}} />// server
<div style={{}} />// client
<div style={{width: '1px'}} />// server
<div style={{width: '1px'}} />// client
<div style={{width: '2px'}} />// server
<div style={{width: '1px', fontSize: '2px'}} />// client
<div style={{fontSize: '2px', width: '1px'}} />// server <div>Text</div>
// client <div>Other Text</div>
// server
<div>{2}</div>// client
<div>{3}</div>// server
<div>{2}</div>// client <div>3</div>
// server
<div>{'Text1'}{'Text2'}</div>// client
<div>{'Text1'}{'Text3'}</div>// server <div><div /></div>
// client <div />
// server <div />
// client <div><div /></div>
// server <div><div /></div>
// client <div><div /><div /></div>
// server <div><div /><div /></div>
// client <div><div /></div>
// server <div><div /><span /></div>
// client <div><span /><div /></div>
// server <div id="parent"><div id="child1" /><div id="child2" /></div>
// client <div id="parent"><div id="child1" /> <div id="child2" /></div>
// server <div id="parent"><div id="child1" /> <div id="child2" /></div>
// client <div id="parent"><div id="child1" /><div id="child2" /></div>
// server <div id="parent"><div id="child1" /> <div id="child2" /></div>
// client <div id="parent"><div id="child1" /> <div id="child2" /></div>
// server <div><span /></div>
// client <div><EmptyComponent /></div>
// server <div suppressHydrationWarning><div><div /><span /></div></div>
// client <div suppressHydrationWarning><div><span /><div /></div></div>
// server
<div dangerouslySetInnerHTML={{__html: "<span id='child1'/>"}} />// client
<div dangerouslySetInnerHTML={{__html: "<span id='child2'/>"}} />// server
<div dangerouslySetInnerHTML={{__html: 'foo'}} />// client
<div dangerouslySetInnerHTML={{__html: 'bar'}} />// server
<div dangerouslySetInnerHTML={{__html: 10}} />// client
<div dangerouslySetInnerHTML={{__html: 20}} />// server
<div dangerouslySetInnerHTML={{__html: {toString(){return 'hi'}}}} />// client
<div dangerouslySetInnerHTML={{__html: {toString(){return 'bye'}}}} />