@codingame/monaco-vscode-media-preview-default-extension 29.1.1 → 30.0.0

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.
package/index.js CHANGED
@@ -11,9 +11,9 @@ registerFileUrl('icon.png', new URL('./resources/icon.png', import.meta.url).toS
11
11
  registerFileUrl('media/audioPreview', new URL('./resources/audioPreview.js', import.meta.url).toString(), {"mimeType":"text/javascript","size":1722});
12
12
  registerFileUrl('media/audioPreview.css', new URL('./resources/audioPreview.css.txt', import.meta.url).toString(), {"mimeType":"text/css","size":1183});
13
13
  registerFileUrl('media/audioPreview.js', new URL('./resources/audioPreview.js', import.meta.url).toString(), {"mimeType":"text/javascript","size":1722});
14
- registerFileUrl('media/imagePreview', new URL('./resources/imagePreview.js', import.meta.url).toString(), {"mimeType":"text/javascript","size":8577});
15
- registerFileUrl('media/imagePreview.css', new URL('./resources/imagePreview.css.txt', import.meta.url).toString(), {"mimeType":"text/css","size":2471});
16
- registerFileUrl('media/imagePreview.js', new URL('./resources/imagePreview.js', import.meta.url).toString(), {"mimeType":"text/javascript","size":8577});
14
+ registerFileUrl('media/imagePreview', new URL('./resources/imagePreview.js', import.meta.url).toString(), {"mimeType":"text/javascript","size":9397});
15
+ registerFileUrl('media/imagePreview.css', new URL('./resources/imagePreview.css.txt', import.meta.url).toString(), {"mimeType":"text/css","size":2147});
16
+ registerFileUrl('media/imagePreview.js', new URL('./resources/imagePreview.js', import.meta.url).toString(), {"mimeType":"text/javascript","size":9397});
17
17
  registerFileUrl('media/loading-dark.svg', new URL('./resources/loading-dark.svg', import.meta.url).toString(), {"mimeType":"image/svg+xml","size":1163});
18
18
  registerFileUrl('media/loading-hc.svg', new URL('./resources/loading-hc.svg', import.meta.url).toString(), {"mimeType":"image/svg+xml","size":1164});
19
19
  registerFileUrl('media/loading.svg', new URL('./resources/loading.svg', import.meta.url).toString(), {"mimeType":"image/svg+xml","size":1144});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-media-preview-default-extension",
3
- "version": "29.1.1",
3
+ "version": "30.0.0",
4
4
  "keywords": [],
5
5
  "author": {
6
6
  "name": "CodinGame",
@@ -18,6 +18,6 @@
18
18
  "module": "index.js",
19
19
  "types": "index.d.ts",
20
20
  "dependencies": {
21
- "@codingame/monaco-vscode-api": "29.1.1"
21
+ "@codingame/monaco-vscode-api": "30.0.0"
22
22
  }
23
23
  }
@@ -33,21 +33,16 @@ body img {
33
33
 
34
34
  .container.image img {
35
35
  padding: 0;
36
- background-position: 0 0, 8px 8px;
37
36
  background-size: 16px 16px;
38
37
  border: 1px solid var(--vscode-imagePreview-border);
39
38
  }
40
39
 
41
40
  .container.image img {
42
- background-image:
43
- linear-gradient(45deg, rgb(230, 230, 230) 25%, transparent 25%, transparent 75%, rgb(230, 230, 230) 75%, rgb(230, 230, 230)),
44
- linear-gradient(45deg, rgb(230, 230, 230) 25%, transparent 25%, transparent 75%, rgb(230, 230, 230) 75%, rgb(230, 230, 230));
41
+ background-image: conic-gradient(rgb(230, 230, 230) 25%, transparent 25% 50%, rgb(230, 230, 230) 50% 75%, transparent 75%);
45
42
  }
46
43
 
47
44
  .vscode-dark.container.image img {
48
- background-image:
49
- linear-gradient(45deg, rgb(20, 20, 20) 25%, transparent 25%, transparent 75%, rgb(20, 20, 20) 75%, rgb(20, 20, 20)),
50
- linear-gradient(45deg, rgb(20, 20, 20) 25%, transparent 25%, transparent 75%, rgb(20, 20, 20) 75%, rgb(20, 20, 20));
45
+ background-image: conic-gradient(rgb(20, 20, 20) 25%, transparent 25% 50%, rgb(20, 20, 20) 50% 75%, transparent 75%);
51
46
  }
52
47
 
53
48
  .container img.pixelated {
@@ -89,6 +89,9 @@
89
89
  image.classList.remove('pixelated');
90
90
  // @ts-ignore Non-standard CSS property
91
91
  image.style.zoom = 'normal';
92
+ // Clear explicit dimensions so the image can scale-to-fit naturally
93
+ image.style.minWidth = '';
94
+ image.style.minHeight = '';
92
95
  vscode.setState(undefined);
93
96
  } else {
94
97
  scale = clamp(newScale, MIN_SCALE, MAX_SCALE);
@@ -102,6 +105,17 @@
102
105
  const dy = (window.scrollY + container.clientHeight / 2) / container.scrollHeight;
103
106
 
104
107
  image.classList.remove('scale-to-fit');
108
+
109
+ // For images without intrinsic dimensions (e.g. SVGs with only
110
+ // a viewBox), set explicit pixel dimensions so that CSS zoom has
111
+ // something concrete to scale.
112
+ if (!image.naturalWidth || !image.naturalHeight) {
113
+ const baseWidth = image.clientWidth || container.clientWidth;
114
+ const baseHeight = image.clientHeight || container.clientHeight;
115
+ image.style.minWidth = baseWidth + 'px';
116
+ image.style.minHeight = baseHeight + 'px';
117
+ }
118
+
105
119
  // @ts-ignore Non-standard CSS property
106
120
  image.style.zoom = scale;
107
121
 
@@ -142,7 +156,14 @@
142
156
  return;
143
157
  }
144
158
 
145
- scale = image.clientWidth / image.naturalWidth;
159
+ if (image.naturalWidth) {
160
+ scale = image.clientWidth / image.naturalWidth;
161
+ } else {
162
+ // For images without intrinsic dimensions (e.g. SVGs with
163
+ // only a viewBox), start at 1x since there is no meaningful
164
+ // natural size to compute a ratio from.
165
+ scale = 1;
166
+ }
146
167
  updateScale(scale);
147
168
  }
148
169