@datocms/svelte 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +51 -0
  3. package/components/Head/Head.svelte +14 -0
  4. package/components/Head/Head.svelte.d.ts +61 -0
  5. package/components/Head/README.md +68 -0
  6. package/components/Head/__tests__/Head.test.d.ts +1 -0
  7. package/components/Head/__tests__/Head.test.js +11 -0
  8. package/components/Head/__tests__/__fixtures__/head.d.ts +2 -0
  9. package/components/Head/__tests__/__fixtures__/head.js +280 -0
  10. package/components/Head/__tests__/__snapshots__/Head.test.ts.snap +221 -0
  11. package/components/Image/Image.svelte +172 -0
  12. package/components/Image/Image.svelte.d.ts +83 -0
  13. package/components/Image/Placeholder.svelte +31 -0
  14. package/components/Image/Placeholder.svelte.d.ts +22 -0
  15. package/components/Image/README.md +167 -0
  16. package/components/Image/Sizer.svelte +17 -0
  17. package/components/Image/Sizer.svelte.d.ts +19 -0
  18. package/components/Image/Source.svelte +6 -0
  19. package/components/Image/Source.svelte.d.ts +18 -0
  20. package/components/Image/__tests__/Image.svelte.test.d.ts +1 -0
  21. package/components/Image/__tests__/Image.svelte.test.js +44 -0
  22. package/components/Image/__tests__/__fixtures__/image.d.ts +40 -0
  23. package/components/Image/__tests__/__fixtures__/image.js +40 -0
  24. package/components/Image/__tests__/__snapshots__/Image.svelte.test.ts.snap +927 -0
  25. package/components/StructuredText/Node.svelte +112 -0
  26. package/components/StructuredText/Node.svelte.d.ts +22 -0
  27. package/components/StructuredText/README.md +201 -0
  28. package/components/StructuredText/StructuredText.svelte +15 -0
  29. package/components/StructuredText/StructuredText.svelte.d.ts +19 -0
  30. package/components/StructuredText/__tests__/StructuredText.svelte.test.d.ts +1 -0
  31. package/components/StructuredText/__tests__/StructuredText.svelte.test.js +163 -0
  32. package/components/StructuredText/__tests__/__fixtures__/Block.svelte +11 -0
  33. package/components/StructuredText/__tests__/__fixtures__/Block.svelte.d.ts +19 -0
  34. package/components/StructuredText/__tests__/__fixtures__/CustomSpan.svelte +49 -0
  35. package/components/StructuredText/__tests__/__fixtures__/CustomSpan.svelte.d.ts +19 -0
  36. package/components/StructuredText/__tests__/__fixtures__/IncreasedLevelHeading.svelte +8 -0
  37. package/components/StructuredText/__tests__/__fixtures__/IncreasedLevelHeading.svelte.d.ts +19 -0
  38. package/components/StructuredText/__tests__/__fixtures__/InlineItem.svelte +8 -0
  39. package/components/StructuredText/__tests__/__fixtures__/InlineItem.svelte.d.ts +19 -0
  40. package/components/StructuredText/__tests__/__fixtures__/ItemLink.svelte +15 -0
  41. package/components/StructuredText/__tests__/__fixtures__/ItemLink.svelte.d.ts +21 -0
  42. package/components/StructuredText/__tests__/__fixtures__/structuredText.d.ts +6 -0
  43. package/components/StructuredText/__tests__/__fixtures__/structuredText.js +537 -0
  44. package/components/StructuredText/__tests__/__fixtures__/types.d.ts +27 -0
  45. package/components/StructuredText/__tests__/__fixtures__/types.js +1 -0
  46. package/components/StructuredText/__tests__/__snapshots__/StructuredText.svelte.test.ts.snap +463 -0
  47. package/components/StructuredText/nodes/Blockquote.svelte +5 -0
  48. package/components/StructuredText/nodes/Blockquote.svelte.d.ts +19 -0
  49. package/components/StructuredText/nodes/Code.svelte +6 -0
  50. package/components/StructuredText/nodes/Code.svelte.d.ts +17 -0
  51. package/components/StructuredText/nodes/Heading.svelte +8 -0
  52. package/components/StructuredText/nodes/Heading.svelte.d.ts +19 -0
  53. package/components/StructuredText/nodes/Link.svelte +6 -0
  54. package/components/StructuredText/nodes/Link.svelte.d.ts +19 -0
  55. package/components/StructuredText/nodes/List.svelte +10 -0
  56. package/components/StructuredText/nodes/List.svelte.d.ts +19 -0
  57. package/components/StructuredText/nodes/ListItem.svelte +5 -0
  58. package/components/StructuredText/nodes/ListItem.svelte.d.ts +19 -0
  59. package/components/StructuredText/nodes/Paragraph.svelte +5 -0
  60. package/components/StructuredText/nodes/Paragraph.svelte.d.ts +19 -0
  61. package/components/StructuredText/nodes/Root.svelte +5 -0
  62. package/components/StructuredText/nodes/Root.svelte.d.ts +19 -0
  63. package/components/StructuredText/nodes/Span.svelte +49 -0
  64. package/components/StructuredText/nodes/Span.svelte.d.ts +19 -0
  65. package/components/StructuredText/nodes/ThematicBreak.svelte +5 -0
  66. package/components/StructuredText/nodes/ThematicBreak.svelte.d.ts +17 -0
  67. package/components/StructuredText/utils/Lines.svelte +11 -0
  68. package/components/StructuredText/utils/Lines.svelte.d.ts +16 -0
  69. package/index.d.ts +9 -0
  70. package/index.js +3 -0
  71. package/package.json +61 -0
@@ -0,0 +1,927 @@
1
+ // Vitest Snapshot v1
2
+
3
+ exports[`Image > layout=fill > data=completeData > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
4
+ <body>
5
+ <div>
6
+ <div
7
+ data-testid="image"
8
+ style="overflow: hidden; position: absolute; width: 100%; height: 100%;"
9
+ >
10
+
11
+ <img
12
+ alt=""
13
+ aria-hidden="true"
14
+ class="placeholder s-kV5qgkA-B6lQ"
15
+ role="presentation"
16
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
17
+ style="transition: opacity 500ms; opacity: 1;"
18
+ />
19
+ <!--&lt;Placeholder&gt;-->
20
+
21
+ </div>
22
+ <!--&lt;IntersectionObserver&gt;-->
23
+ <!--&lt;Image&gt;-->
24
+ </div>
25
+ </body>
26
+ `;
27
+
28
+ exports[`Image > layout=fill > data=completeData > when the component intersects the viewport > shows the image 1`] = `
29
+ <body>
30
+ <div>
31
+ <div
32
+ data-testid="image"
33
+ style="overflow: hidden; position: absolute; width: 100%; height: 100%;"
34
+ >
35
+
36
+ <img
37
+ alt=""
38
+ aria-hidden="true"
39
+ class="placeholder s-kV5qgkA-B6lQ"
40
+ role="presentation"
41
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
42
+ style="transition: opacity 500ms; opacity: 1;"
43
+ />
44
+ <!--&lt;Placeholder&gt;-->
45
+
46
+ <picture
47
+ data-testid="picture"
48
+ >
49
+
50
+ <source
51
+ sizes="(max-width: 750px) 100vw, 750px"
52
+ srcset="https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.25&fit=crop&w=750 187w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.5&fit=crop&w=750 375w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.75&fit=crop&w=750 562w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=1&fit=crop&w=750 750w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=1.5&fit=crop&w=750 1125w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=2&fit=crop&w=750 1500w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=3&fit=crop&w=750 2250w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=4&fit=crop&w=750 3000w"
53
+ />
54
+ <!--&lt;Source&gt;-->
55
+
56
+ <img
57
+ alt="DatoCMS swag"
58
+ data-testid="img"
59
+ src="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750"
60
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
61
+ title="These are awesome, we know that."
62
+ />
63
+ </picture>
64
+ </div>
65
+ <!--&lt;IntersectionObserver&gt;-->
66
+ <!--&lt;Image&gt;-->
67
+ </div>
68
+ </body>
69
+ `;
70
+
71
+ exports[`Image > layout=fill > data=minimalData > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
72
+ <body>
73
+ <div>
74
+ <div
75
+ data-testid="image"
76
+ style="overflow: hidden; position: absolute; width: 100%; height: 100%;"
77
+ >
78
+
79
+ <img
80
+ alt=""
81
+ aria-hidden="true"
82
+ class="placeholder s-kV5qgkA-B6lQ"
83
+ role="presentation"
84
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
85
+ style="transition: opacity 500ms; opacity: 1;"
86
+ />
87
+ <!--&lt;Placeholder&gt;-->
88
+
89
+ </div>
90
+ <!--&lt;IntersectionObserver&gt;-->
91
+ <!--&lt;Image&gt;-->
92
+ </div>
93
+ </body>
94
+ `;
95
+
96
+ exports[`Image > layout=fill > data=minimalData > when the component intersects the viewport > shows the image 1`] = `
97
+ <body>
98
+ <div>
99
+ <div
100
+ data-testid="image"
101
+ style="overflow: hidden; position: absolute; width: 100%; height: 100%;"
102
+ >
103
+
104
+ <img
105
+ alt=""
106
+ aria-hidden="true"
107
+ class="placeholder s-kV5qgkA-B6lQ"
108
+ role="presentation"
109
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
110
+ style="transition: opacity 500ms; opacity: 1;"
111
+ />
112
+ <!--&lt;Placeholder&gt;-->
113
+
114
+ <picture
115
+ data-testid="picture"
116
+ >
117
+
118
+ <source
119
+ srcset="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.25 187w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.5 375w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.75 562w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750 750w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=1.5 1125w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=2 1500w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=3 2250w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=4 3000w"
120
+ />
121
+ <!--&lt;Source&gt;-->
122
+
123
+ <img
124
+ alt=""
125
+ data-testid="img"
126
+ src="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750"
127
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
128
+ />
129
+ </picture>
130
+ </div>
131
+ <!--&lt;IntersectionObserver&gt;-->
132
+ <!--&lt;Image&gt;-->
133
+ </div>
134
+ </body>
135
+ `;
136
+
137
+ exports[`Image > layout=fill > data=minimalDataWithRelativeUrl > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
138
+ <body>
139
+ <div>
140
+ <div
141
+ data-testid="image"
142
+ style="overflow: hidden; position: absolute; width: 100%; height: 100%;"
143
+ >
144
+
145
+ <img
146
+ alt=""
147
+ aria-hidden="true"
148
+ class="placeholder s-kV5qgkA-B6lQ"
149
+ role="presentation"
150
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
151
+ style="transition: opacity 500ms; opacity: 1;"
152
+ />
153
+ <!--&lt;Placeholder&gt;-->
154
+
155
+ </div>
156
+ <!--&lt;IntersectionObserver&gt;-->
157
+ <!--&lt;Image&gt;-->
158
+ </div>
159
+ </body>
160
+ `;
161
+
162
+ exports[`Image > layout=fill > data=minimalDataWithRelativeUrl > when the component intersects the viewport > shows the image 1`] = `
163
+ <body>
164
+ <div>
165
+ <div
166
+ data-testid="image"
167
+ style="overflow: hidden; position: absolute; width: 100%; height: 100%;"
168
+ >
169
+
170
+ <img
171
+ alt=""
172
+ aria-hidden="true"
173
+ class="placeholder s-kV5qgkA-B6lQ"
174
+ role="presentation"
175
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
176
+ style="transition: opacity 500ms; opacity: 1;"
177
+ />
178
+ <!--&lt;Placeholder&gt;-->
179
+
180
+ <picture
181
+ data-testid="picture"
182
+ >
183
+
184
+ <source
185
+ srcset="/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.25 187w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.5 375w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.75 562w,/205/image.png?ar=16%3A9&fit=crop&w=750 750w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=1.5 1125w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=2 1500w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=3 2250w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=4 3000w"
186
+ />
187
+ <!--&lt;Source&gt;-->
188
+
189
+ <img
190
+ alt=""
191
+ data-testid="img"
192
+ src="/205/image.png?ar=16%3A9&fit=crop&w=750"
193
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
194
+ />
195
+ </picture>
196
+ </div>
197
+ <!--&lt;IntersectionObserver&gt;-->
198
+ <!--&lt;Image&gt;-->
199
+ </div>
200
+ </body>
201
+ `;
202
+
203
+ exports[`Image > layout=fixed > data=completeData > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
204
+ <body>
205
+ <div>
206
+ <div
207
+ data-testid="image"
208
+ style="overflow: hidden; position: relative;"
209
+ >
210
+ <img
211
+ alt=""
212
+ aria-hidden="true"
213
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
214
+ style="display: block; width: 100%;"
215
+ />
216
+ <!--&lt;Sizer&gt;-->
217
+
218
+ <img
219
+ alt=""
220
+ aria-hidden="true"
221
+ class="placeholder s-kV5qgkA-B6lQ"
222
+ role="presentation"
223
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
224
+ style="transition: opacity 500ms; opacity: 1;"
225
+ />
226
+ <!--&lt;Placeholder&gt;-->
227
+
228
+ </div>
229
+ <!--&lt;IntersectionObserver&gt;-->
230
+ <!--&lt;Image&gt;-->
231
+ </div>
232
+ </body>
233
+ `;
234
+
235
+ exports[`Image > layout=fixed > data=completeData > when the component intersects the viewport > shows the image 1`] = `
236
+ <body>
237
+ <div>
238
+ <div
239
+ data-testid="image"
240
+ style="overflow: hidden; position: relative;"
241
+ >
242
+ <img
243
+ alt=""
244
+ aria-hidden="true"
245
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
246
+ style="display: block; width: 100%;"
247
+ />
248
+ <!--&lt;Sizer&gt;-->
249
+
250
+ <img
251
+ alt=""
252
+ aria-hidden="true"
253
+ class="placeholder s-kV5qgkA-B6lQ"
254
+ role="presentation"
255
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
256
+ style="transition: opacity 500ms; opacity: 1;"
257
+ />
258
+ <!--&lt;Placeholder&gt;-->
259
+
260
+ <picture
261
+ data-testid="picture"
262
+ >
263
+
264
+ <source
265
+ sizes="(max-width: 750px) 100vw, 750px"
266
+ srcset="https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.25&fit=crop&w=750 187w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.5&fit=crop&w=750 375w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.75&fit=crop&w=750 562w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=1&fit=crop&w=750 750w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=1.5&fit=crop&w=750 1125w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=2&fit=crop&w=750 1500w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=3&fit=crop&w=750 2250w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=4&fit=crop&w=750 3000w"
267
+ />
268
+ <!--&lt;Source&gt;-->
269
+
270
+ <img
271
+ alt="DatoCMS swag"
272
+ data-testid="img"
273
+ src="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750"
274
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
275
+ title="These are awesome, we know that."
276
+ />
277
+ </picture>
278
+ </div>
279
+ <!--&lt;IntersectionObserver&gt;-->
280
+ <!--&lt;Image&gt;-->
281
+ </div>
282
+ </body>
283
+ `;
284
+
285
+ exports[`Image > layout=fixed > data=minimalData > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
286
+ <body>
287
+ <div>
288
+ <div
289
+ data-testid="image"
290
+ style="overflow: hidden; position: relative;"
291
+ >
292
+ <img
293
+ alt=""
294
+ aria-hidden="true"
295
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
296
+ style="display: block; width: 100%;"
297
+ />
298
+ <!--&lt;Sizer&gt;-->
299
+
300
+ <img
301
+ alt=""
302
+ aria-hidden="true"
303
+ class="placeholder s-kV5qgkA-B6lQ"
304
+ role="presentation"
305
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
306
+ style="transition: opacity 500ms; opacity: 1;"
307
+ />
308
+ <!--&lt;Placeholder&gt;-->
309
+
310
+ </div>
311
+ <!--&lt;IntersectionObserver&gt;-->
312
+ <!--&lt;Image&gt;-->
313
+ </div>
314
+ </body>
315
+ `;
316
+
317
+ exports[`Image > layout=fixed > data=minimalData > when the component intersects the viewport > shows the image 1`] = `
318
+ <body>
319
+ <div>
320
+ <div
321
+ data-testid="image"
322
+ style="overflow: hidden; position: relative;"
323
+ >
324
+ <img
325
+ alt=""
326
+ aria-hidden="true"
327
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
328
+ style="display: block; width: 100%;"
329
+ />
330
+ <!--&lt;Sizer&gt;-->
331
+
332
+ <img
333
+ alt=""
334
+ aria-hidden="true"
335
+ class="placeholder s-kV5qgkA-B6lQ"
336
+ role="presentation"
337
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
338
+ style="transition: opacity 500ms; opacity: 1;"
339
+ />
340
+ <!--&lt;Placeholder&gt;-->
341
+
342
+ <picture
343
+ data-testid="picture"
344
+ >
345
+
346
+ <source
347
+ srcset="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.25 187w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.5 375w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.75 562w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750 750w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=1.5 1125w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=2 1500w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=3 2250w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=4 3000w"
348
+ />
349
+ <!--&lt;Source&gt;-->
350
+
351
+ <img
352
+ alt=""
353
+ data-testid="img"
354
+ src="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750"
355
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
356
+ />
357
+ </picture>
358
+ </div>
359
+ <!--&lt;IntersectionObserver&gt;-->
360
+ <!--&lt;Image&gt;-->
361
+ </div>
362
+ </body>
363
+ `;
364
+
365
+ exports[`Image > layout=fixed > data=minimalDataWithRelativeUrl > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
366
+ <body>
367
+ <div>
368
+ <div
369
+ data-testid="image"
370
+ style="overflow: hidden; position: relative;"
371
+ >
372
+ <img
373
+ alt=""
374
+ aria-hidden="true"
375
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
376
+ style="display: block; width: 100%;"
377
+ />
378
+ <!--&lt;Sizer&gt;-->
379
+
380
+ <img
381
+ alt=""
382
+ aria-hidden="true"
383
+ class="placeholder s-kV5qgkA-B6lQ"
384
+ role="presentation"
385
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
386
+ style="transition: opacity 500ms; opacity: 1;"
387
+ />
388
+ <!--&lt;Placeholder&gt;-->
389
+
390
+ </div>
391
+ <!--&lt;IntersectionObserver&gt;-->
392
+ <!--&lt;Image&gt;-->
393
+ </div>
394
+ </body>
395
+ `;
396
+
397
+ exports[`Image > layout=fixed > data=minimalDataWithRelativeUrl > when the component intersects the viewport > shows the image 1`] = `
398
+ <body>
399
+ <div>
400
+ <div
401
+ data-testid="image"
402
+ style="overflow: hidden; position: relative;"
403
+ >
404
+ <img
405
+ alt=""
406
+ aria-hidden="true"
407
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
408
+ style="display: block; width: 100%;"
409
+ />
410
+ <!--&lt;Sizer&gt;-->
411
+
412
+ <img
413
+ alt=""
414
+ aria-hidden="true"
415
+ class="placeholder s-kV5qgkA-B6lQ"
416
+ role="presentation"
417
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
418
+ style="transition: opacity 500ms; opacity: 1;"
419
+ />
420
+ <!--&lt;Placeholder&gt;-->
421
+
422
+ <picture
423
+ data-testid="picture"
424
+ >
425
+
426
+ <source
427
+ srcset="/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.25 187w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.5 375w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.75 562w,/205/image.png?ar=16%3A9&fit=crop&w=750 750w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=1.5 1125w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=2 1500w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=3 2250w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=4 3000w"
428
+ />
429
+ <!--&lt;Source&gt;-->
430
+
431
+ <img
432
+ alt=""
433
+ data-testid="img"
434
+ src="/205/image.png?ar=16%3A9&fit=crop&w=750"
435
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
436
+ />
437
+ </picture>
438
+ </div>
439
+ <!--&lt;IntersectionObserver&gt;-->
440
+ <!--&lt;Image&gt;-->
441
+ </div>
442
+ </body>
443
+ `;
444
+
445
+ exports[`Image > layout=intrinsic > data=completeData > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
446
+ <body>
447
+ <div>
448
+ <div
449
+ data-testid="image"
450
+ style="overflow: hidden; position: relative; width: 100%;"
451
+ >
452
+ <img
453
+ alt=""
454
+ aria-hidden="true"
455
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
456
+ style="display: block; width: 100%;"
457
+ />
458
+ <!--&lt;Sizer&gt;-->
459
+
460
+ <img
461
+ alt=""
462
+ aria-hidden="true"
463
+ class="placeholder s-kV5qgkA-B6lQ"
464
+ role="presentation"
465
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
466
+ style="transition: opacity 500ms; opacity: 1;"
467
+ />
468
+ <!--&lt;Placeholder&gt;-->
469
+
470
+ </div>
471
+ <!--&lt;IntersectionObserver&gt;-->
472
+ <!--&lt;Image&gt;-->
473
+ </div>
474
+ </body>
475
+ `;
476
+
477
+ exports[`Image > layout=intrinsic > data=completeData > when the component intersects the viewport > shows the image 1`] = `
478
+ <body>
479
+ <div>
480
+ <div
481
+ data-testid="image"
482
+ style="overflow: hidden; position: relative; width: 100%;"
483
+ >
484
+ <img
485
+ alt=""
486
+ aria-hidden="true"
487
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
488
+ style="display: block; width: 100%;"
489
+ />
490
+ <!--&lt;Sizer&gt;-->
491
+
492
+ <img
493
+ alt=""
494
+ aria-hidden="true"
495
+ class="placeholder s-kV5qgkA-B6lQ"
496
+ role="presentation"
497
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
498
+ style="transition: opacity 500ms; opacity: 1;"
499
+ />
500
+ <!--&lt;Placeholder&gt;-->
501
+
502
+ <picture
503
+ data-testid="picture"
504
+ >
505
+
506
+ <source
507
+ sizes="(max-width: 750px) 100vw, 750px"
508
+ srcset="https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.25&fit=crop&w=750 187w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.5&fit=crop&w=750 375w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.75&fit=crop&w=750 562w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=1&fit=crop&w=750 750w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=1.5&fit=crop&w=750 1125w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=2&fit=crop&w=750 1500w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=3&fit=crop&w=750 2250w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=4&fit=crop&w=750 3000w"
509
+ />
510
+ <!--&lt;Source&gt;-->
511
+
512
+ <img
513
+ alt="DatoCMS swag"
514
+ data-testid="img"
515
+ src="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750"
516
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
517
+ title="These are awesome, we know that."
518
+ />
519
+ </picture>
520
+ </div>
521
+ <!--&lt;IntersectionObserver&gt;-->
522
+ <!--&lt;Image&gt;-->
523
+ </div>
524
+ </body>
525
+ `;
526
+
527
+ exports[`Image > layout=intrinsic > data=minimalData > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
528
+ <body>
529
+ <div>
530
+ <div
531
+ data-testid="image"
532
+ style="overflow: hidden; position: relative; width: 100%;"
533
+ >
534
+ <img
535
+ alt=""
536
+ aria-hidden="true"
537
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
538
+ style="display: block; width: 100%;"
539
+ />
540
+ <!--&lt;Sizer&gt;-->
541
+
542
+ <img
543
+ alt=""
544
+ aria-hidden="true"
545
+ class="placeholder s-kV5qgkA-B6lQ"
546
+ role="presentation"
547
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
548
+ style="transition: opacity 500ms; opacity: 1;"
549
+ />
550
+ <!--&lt;Placeholder&gt;-->
551
+
552
+ </div>
553
+ <!--&lt;IntersectionObserver&gt;-->
554
+ <!--&lt;Image&gt;-->
555
+ </div>
556
+ </body>
557
+ `;
558
+
559
+ exports[`Image > layout=intrinsic > data=minimalData > when the component intersects the viewport > shows the image 1`] = `
560
+ <body>
561
+ <div>
562
+ <div
563
+ data-testid="image"
564
+ style="overflow: hidden; position: relative; width: 100%;"
565
+ >
566
+ <img
567
+ alt=""
568
+ aria-hidden="true"
569
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
570
+ style="display: block; width: 100%;"
571
+ />
572
+ <!--&lt;Sizer&gt;-->
573
+
574
+ <img
575
+ alt=""
576
+ aria-hidden="true"
577
+ class="placeholder s-kV5qgkA-B6lQ"
578
+ role="presentation"
579
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
580
+ style="transition: opacity 500ms; opacity: 1;"
581
+ />
582
+ <!--&lt;Placeholder&gt;-->
583
+
584
+ <picture
585
+ data-testid="picture"
586
+ >
587
+
588
+ <source
589
+ srcset="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.25 187w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.5 375w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.75 562w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750 750w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=1.5 1125w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=2 1500w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=3 2250w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=4 3000w"
590
+ />
591
+ <!--&lt;Source&gt;-->
592
+
593
+ <img
594
+ alt=""
595
+ data-testid="img"
596
+ src="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750"
597
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
598
+ />
599
+ </picture>
600
+ </div>
601
+ <!--&lt;IntersectionObserver&gt;-->
602
+ <!--&lt;Image&gt;-->
603
+ </div>
604
+ </body>
605
+ `;
606
+
607
+ exports[`Image > layout=intrinsic > data=minimalDataWithRelativeUrl > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
608
+ <body>
609
+ <div>
610
+ <div
611
+ data-testid="image"
612
+ style="overflow: hidden; position: relative; width: 100%;"
613
+ >
614
+ <img
615
+ alt=""
616
+ aria-hidden="true"
617
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
618
+ style="display: block; width: 100%;"
619
+ />
620
+ <!--&lt;Sizer&gt;-->
621
+
622
+ <img
623
+ alt=""
624
+ aria-hidden="true"
625
+ class="placeholder s-kV5qgkA-B6lQ"
626
+ role="presentation"
627
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
628
+ style="transition: opacity 500ms; opacity: 1;"
629
+ />
630
+ <!--&lt;Placeholder&gt;-->
631
+
632
+ </div>
633
+ <!--&lt;IntersectionObserver&gt;-->
634
+ <!--&lt;Image&gt;-->
635
+ </div>
636
+ </body>
637
+ `;
638
+
639
+ exports[`Image > layout=intrinsic > data=minimalDataWithRelativeUrl > when the component intersects the viewport > shows the image 1`] = `
640
+ <body>
641
+ <div>
642
+ <div
643
+ data-testid="image"
644
+ style="overflow: hidden; position: relative; width: 100%;"
645
+ >
646
+ <img
647
+ alt=""
648
+ aria-hidden="true"
649
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
650
+ style="display: block; width: 100%;"
651
+ />
652
+ <!--&lt;Sizer&gt;-->
653
+
654
+ <img
655
+ alt=""
656
+ aria-hidden="true"
657
+ class="placeholder s-kV5qgkA-B6lQ"
658
+ role="presentation"
659
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
660
+ style="transition: opacity 500ms; opacity: 1;"
661
+ />
662
+ <!--&lt;Placeholder&gt;-->
663
+
664
+ <picture
665
+ data-testid="picture"
666
+ >
667
+
668
+ <source
669
+ srcset="/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.25 187w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.5 375w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.75 562w,/205/image.png?ar=16%3A9&fit=crop&w=750 750w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=1.5 1125w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=2 1500w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=3 2250w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=4 3000w"
670
+ />
671
+ <!--&lt;Source&gt;-->
672
+
673
+ <img
674
+ alt=""
675
+ data-testid="img"
676
+ src="/205/image.png?ar=16%3A9&fit=crop&w=750"
677
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
678
+ />
679
+ </picture>
680
+ </div>
681
+ <!--&lt;IntersectionObserver&gt;-->
682
+ <!--&lt;Image&gt;-->
683
+ </div>
684
+ </body>
685
+ `;
686
+
687
+ exports[`Image > layout=responsive > data=completeData > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
688
+ <body>
689
+ <div>
690
+ <div
691
+ data-testid="image"
692
+ style="overflow: hidden; position: relative; width: 100%;"
693
+ >
694
+ <img
695
+ alt=""
696
+ aria-hidden="true"
697
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
698
+ style="display: block; width: 100%;"
699
+ />
700
+ <!--&lt;Sizer&gt;-->
701
+
702
+ <img
703
+ alt=""
704
+ aria-hidden="true"
705
+ class="placeholder s-kV5qgkA-B6lQ"
706
+ role="presentation"
707
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
708
+ style="transition: opacity 500ms; opacity: 1;"
709
+ />
710
+ <!--&lt;Placeholder&gt;-->
711
+
712
+ </div>
713
+ <!--&lt;IntersectionObserver&gt;-->
714
+ <!--&lt;Image&gt;-->
715
+ </div>
716
+ </body>
717
+ `;
718
+
719
+ exports[`Image > layout=responsive > data=completeData > when the component intersects the viewport > shows the image 1`] = `
720
+ <body>
721
+ <div>
722
+ <div
723
+ data-testid="image"
724
+ style="overflow: hidden; position: relative; width: 100%;"
725
+ >
726
+ <img
727
+ alt=""
728
+ aria-hidden="true"
729
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
730
+ style="display: block; width: 100%;"
731
+ />
732
+ <!--&lt;Sizer&gt;-->
733
+
734
+ <img
735
+ alt=""
736
+ aria-hidden="true"
737
+ class="placeholder s-kV5qgkA-B6lQ"
738
+ role="presentation"
739
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
740
+ style="transition: opacity 500ms; opacity: 1;"
741
+ />
742
+ <!--&lt;Placeholder&gt;-->
743
+
744
+ <picture
745
+ data-testid="picture"
746
+ >
747
+
748
+ <source
749
+ sizes="(max-width: 750px) 100vw, 750px"
750
+ srcset="https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.25&fit=crop&w=750 187w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.5&fit=crop&w=750 375w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=0.75&fit=crop&w=750 562w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=1&fit=crop&w=750 750w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=1.5&fit=crop&w=750 1125w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=2&fit=crop&w=750 1500w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=3&fit=crop&w=750 2250w,↵https://www.datocms-assets.com/205/image.png?ar=16%3A9&dpr=4&fit=crop&w=750 3000w"
751
+ />
752
+ <!--&lt;Source&gt;-->
753
+
754
+ <img
755
+ alt="DatoCMS swag"
756
+ data-testid="img"
757
+ src="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750"
758
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
759
+ title="These are awesome, we know that."
760
+ />
761
+ </picture>
762
+ </div>
763
+ <!--&lt;IntersectionObserver&gt;-->
764
+ <!--&lt;Image&gt;-->
765
+ </div>
766
+ </body>
767
+ `;
768
+
769
+ exports[`Image > layout=responsive > data=minimalData > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
770
+ <body>
771
+ <div>
772
+ <div
773
+ data-testid="image"
774
+ style="overflow: hidden; position: relative; width: 100%;"
775
+ >
776
+ <img
777
+ alt=""
778
+ aria-hidden="true"
779
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
780
+ style="display: block; width: 100%;"
781
+ />
782
+ <!--&lt;Sizer&gt;-->
783
+
784
+ <img
785
+ alt=""
786
+ aria-hidden="true"
787
+ class="placeholder s-kV5qgkA-B6lQ"
788
+ role="presentation"
789
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
790
+ style="transition: opacity 500ms; opacity: 1;"
791
+ />
792
+ <!--&lt;Placeholder&gt;-->
793
+
794
+ </div>
795
+ <!--&lt;IntersectionObserver&gt;-->
796
+ <!--&lt;Image&gt;-->
797
+ </div>
798
+ </body>
799
+ `;
800
+
801
+ exports[`Image > layout=responsive > data=minimalData > when the component intersects the viewport > shows the image 1`] = `
802
+ <body>
803
+ <div>
804
+ <div
805
+ data-testid="image"
806
+ style="overflow: hidden; position: relative; width: 100%;"
807
+ >
808
+ <img
809
+ alt=""
810
+ aria-hidden="true"
811
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
812
+ style="display: block; width: 100%;"
813
+ />
814
+ <!--&lt;Sizer&gt;-->
815
+
816
+ <img
817
+ alt=""
818
+ aria-hidden="true"
819
+ class="placeholder s-kV5qgkA-B6lQ"
820
+ role="presentation"
821
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
822
+ style="transition: opacity 500ms; opacity: 1;"
823
+ />
824
+ <!--&lt;Placeholder&gt;-->
825
+
826
+ <picture
827
+ data-testid="picture"
828
+ >
829
+
830
+ <source
831
+ srcset="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.25 187w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.5 375w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.75 562w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750 750w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=1.5 1125w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=2 1500w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=3 2250w,https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=4 3000w"
832
+ />
833
+ <!--&lt;Source&gt;-->
834
+
835
+ <img
836
+ alt=""
837
+ data-testid="img"
838
+ src="https://www.datocms-assets.com/205/image.png?ar=16%3A9&fit=crop&w=750"
839
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
840
+ />
841
+ </picture>
842
+ </div>
843
+ <!--&lt;IntersectionObserver&gt;-->
844
+ <!--&lt;Image&gt;-->
845
+ </div>
846
+ </body>
847
+ `;
848
+
849
+ exports[`Image > layout=responsive > data=minimalDataWithRelativeUrl > when the component doesn't intersect the viewport > only renders the placeholder elements 1`] = `
850
+ <body>
851
+ <div>
852
+ <div
853
+ data-testid="image"
854
+ style="overflow: hidden; position: relative; width: 100%;"
855
+ >
856
+ <img
857
+ alt=""
858
+ aria-hidden="true"
859
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
860
+ style="display: block; width: 100%;"
861
+ />
862
+ <!--&lt;Sizer&gt;-->
863
+
864
+ <img
865
+ alt=""
866
+ aria-hidden="true"
867
+ class="placeholder s-kV5qgkA-B6lQ"
868
+ role="presentation"
869
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
870
+ style="transition: opacity 500ms; opacity: 1;"
871
+ />
872
+ <!--&lt;Placeholder&gt;-->
873
+
874
+ </div>
875
+ <!--&lt;IntersectionObserver&gt;-->
876
+ <!--&lt;Image&gt;-->
877
+ </div>
878
+ </body>
879
+ `;
880
+
881
+ exports[`Image > layout=responsive > data=minimalDataWithRelativeUrl > when the component intersects the viewport > shows the image 1`] = `
882
+ <body>
883
+ <div>
884
+ <div
885
+ data-testid="image"
886
+ style="overflow: hidden; position: relative; width: 100%;"
887
+ >
888
+ <img
889
+ alt=""
890
+ aria-hidden="true"
891
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3NTAiIGhlaWdodD0iNDIxIj48L3N2Zz4="
892
+ style="display: block; width: 100%;"
893
+ />
894
+ <!--&lt;Sizer&gt;-->
895
+
896
+ <img
897
+ alt=""
898
+ aria-hidden="true"
899
+ class="placeholder s-kV5qgkA-B6lQ"
900
+ role="presentation"
901
+ src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHBwgHBgoICAgLFQoLDhgQDg0NDh0eHREYIx8lJCIrHB0dLSs7GikyKSEuKjUlKDk1MjIyHyo4PTc+PDcxPjUBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7OzsvOzs7Ozs7Ozs7Lzs7Ozs7Ozs7OzsvOzs7NTsvLy87NTU1Ly8vLzsvL//AABEIAA0AGAMBIgACEQEDEQH/xAAYAAACAwAAAAAAAAAAAAAAAAAGBwABBP/EACEQAAEEAAYDAAAAAAAAAAAAAAEAAgMEBQYHESEiFWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAZEQADAAMAAAAAAAAAAAAAAAAAAQIRITH/2gAMAwEAAhEDEQA/AFxLgDWTsAd1J5TGy7hEYqNAaNgECX7sjLMQAHJTEy1Zcarfia4lJMauAxqBhLY6ZlaOzDurWvUOd3jZPfCiEh4xs//Z"
902
+ style="transition: opacity 500ms; opacity: 1;"
903
+ />
904
+ <!--&lt;Placeholder&gt;-->
905
+
906
+ <picture
907
+ data-testid="picture"
908
+ >
909
+
910
+ <source
911
+ srcset="/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.25 187w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.5 375w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=0.75 562w,/205/image.png?ar=16%3A9&fit=crop&w=750 750w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=1.5 1125w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=2 1500w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=3 2250w,/205/image.png?ar=16%3A9&fit=crop&w=750&dpr=4 3000w"
912
+ />
913
+ <!--&lt;Source&gt;-->
914
+
915
+ <img
916
+ alt=""
917
+ data-testid="img"
918
+ src="/205/image.png?ar=16%3A9&fit=crop&w=750"
919
+ style="opacity: 0; transition: opacity 500ms; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
920
+ />
921
+ </picture>
922
+ </div>
923
+ <!--&lt;IntersectionObserver&gt;-->
924
+ <!--&lt;Image&gt;-->
925
+ </div>
926
+ </body>
927
+ `;